저는 AdGuard DNS를 사용 중입니다.
이 AdGuard DNS를 이용한 광고차단이 문제가 되는 경우가 있는데, 무료 게임에서 광고를 보고 보상을 받는 경우 등에 광고가 막히니 제대로 진행이 안 되는 경우등이 그렇습니다.
해서 특정앱을 실행하는 경우 프라이빗 DNS를 자동으로 켜고 끄는 프로필을 안내합니다.
https://www.reddit.com/r/tasker/comments/9yvo2h/android_p_private_dns_setting_access_in_tasker/
참고한 원문은 위에 있습니다.
먼저 DNS를 켜거나 끌 앱을 설정해 줍니다.
본문에서는 끄는 것을 기준으로 작업합니다.
이후 'New Task'를 눌러 새로운 액션을 지정해 주는데 'Custom Setting' Action으로 들어갑니다.
이후 Custom Setting 액션에서 'Type'은 'Global'로 두고 'Name' 부분의 돋보기 아이콘을 눌러 열리는 팝업에서 'SELECT SETTING'을 선택합니다.
이후 목록에서 dns를 검색해 보면 위와 같이 두 가지가 나옵니다.
dns를 켜고 끄는 기능의 Name은 'private_dns_mode'입니다.
'Value'를 'opportunistic'으로 설정하면 프라이빗 DNS 구성이 자동이 됩니다.
자동이니까 기본구성인 꺼짐이 됩니다.
opportunistic
이후 해당 상황이 종료될 때 다시 애드가드 DNS를 켜주어야 하니 생성된 액션 부분을 길게 꾹 눌러 'Add Exit Task'로 상황종료 시 실행할 액션을 지정해 줍니다.
DNS를 끌 때와는 다르게 DNS를 켰을 때 사용할 DNS 주소를 지정해 주는 과정이 하나 추가됩니다.
'Custom Setting'에서 첫 번째 갈무리와 같이 'Type'은 'Global', 'Name'은 'private_dns_specifier' 'Value'는 사용할 DNS 주소를 입력합니다.
이후 DNS를 끌 때와 같이 'private_dns_mode'에서 'Value'를 'hostname'으로 지정하면, DNS 설정이 바로 직전에 설정한 DNS 주소의 수동모드로 변경됩니다.
세 번째 사진은 흐름을 보시라고 덧붙입니다.
이제 해당 액션을 실행해 보면 위와 같이 에러 메시지가 나옵니다.
알림을 눌러봅니다.
설명을 보니 ADB로 어찌어찌 블라블라라고 되어 있습니다.
휴대전화를 PC에 연결 후 ADB로 아래의 명령어를 입력해 줍니다.
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
ADB 사용법은 이전 글을 참고하시기 바랍니다.
이후 설정한 앱을 실행해 보면 위와 같이 제대로 DNS 변경이 동작하는 것을 확인할 수 있습니다.
왼쪽이 변경 전, 오른쪽이 태스커 프로필 적용 후 갈무리입니다.