Как автоматизировать AdGuard для Android

Многие пользователи выбирают Android именно потому, что эта ОС позволяет настроить мобильное устройство под свои вкусы и держать всё под контролем. И это абсолютно в порядке вещей, когда пользователей AdGuard по какой-то причине не устраивает его поведение по умолчанию. Допустим, вы хотите, чтобы защита отключалась при старте определённого приложения и снова включалась при его остановке. Это задача для так называемого "таскера".

Интерфейс AdGuard

Существует множество приложений-таскеров, например, Tasker, AutomateIt и другие. AdGuard предоставляет интерфейс, с помощью которого такие приложения могут задавать всевозможные правила автоматизации.

Благодаря этому интерфейсу любое приложение может послать специальное сообщение (также называемое "intent", или "интент"), которое содержит имя действия и какую-либо дополнительную информацию. AdGuard увидит этот интент и выполнит запрашиваемое действие.

Вопросы безопасности

"А не слишком ли это опасно" — спросите вы — "предоставлять случайным приложениям доступ к функциям AdGuard?" И будете правы, именно поэтому вместе с интентом пересылается пароль. Этот пароль генерируется автоматически, но вы, конечно, можете поменять его самостоятельно в расширенных настройках AdGuard.

Доступные действия

Итак, готовы немного запачкать руки? Вот список действий, которые, будучи включёнными в интент, будут понятны AdGuard:

start — стартует защиту, дополнительные данные не нужны;

stop — останавливает защиту, дополнительные параметры не нужны;

pause — ставит защиту на паузу. Отличие от stop в том, что появится уведомление, тап по которому возобновит защиту. Дополнительные параметры не нужны;

update — проверяет наличие обновлений фильтров и приложения, дополнительные данные не нужны;


dns_filtering — включает и выключает DNS-фильтрацию. Требуется дополнительный флаг:

enable:true или enable:false — соответственно, включает или выключает DNS-фильтрацию.


dns_server — переключается между DNS-серверами, вам нужно указать дополнительные параметры:

server: adguard dns — переключается на сервер провайдера AdGuard DNS;

Полный список имен провайдеров доступен во вкладке "Свои настройки DNS" на экране DNS фильтрации

server: custom — переключается на добавленный ранее сервер с именем custom;

server: tls://dns.adguard.com — создает новый сервер и переключается на него, если добавленные ранее серверы и провайдеры не содержат сервер с таким же адресом. В противном случае переключается на соответствующий сервер. Адреса серверов можно добавлять в виде IP (обычный DNS), sdns://… (DNSCrypt или DNS-over-HTTPS), https://… (DNS-over-HTTPS) или tls://... (DNS-over-TLS);

server: 1.1.1.1, tls://1.1.1.1 — создает и переключается на сервер с адресами, указанными через запятую. При добавлении сервера через server: 1.1.1.1, tls://1.1.1.1, ранее добавленный сервер удаляется.

server:system — сбрасывает настройки DNS на "по умолчанию" (т.е. используются системные DNS серверы).


proxy_state – включает и выключает исходящий прокси. Требуется установка флага:

enable:true или enable:false — активирует и деактивирует исходящий прокси соответственно.


proxy_default – по умолчанию устанавливает прокси из списка уже существующих.

Дополнительно необходимо указать следующие параметры:

server:[name], где [name] – это имя исходящего прокси из списка.


Не забудьте включить пароль как доп.параметр, а также упомянуть имя пакета и класс! Это необходимо делать для каждого интента!

Параметр: password:*******

Имя пакета: com.adguard.android

Класс: com.adguard.android.receivers.AutomationReceiver

Пример интента