AdAway 与 Tasker 自动化 —— 用广播 API 实现定时开关、按应用启停等场景
为什么要自动化
AdAway 绝大多数场景是"开着就一直开着",但有些场景需要动态开关:
- 回家自动开 AdAway(家里 WiFi 环境,DNS 不受限,开着就好)
- 出门切移动网络自动关 AdAway(移动网络 APN 可能有代理,AdAway 拦不住)
- 跑测速前关 AdAway(hosts 拦截可能影响测速准确性)
- 游戏时段关 AdAway(某些游戏在 AdAway 下加载慢)
- 每天凌晨自动更新 hosts(配合 Cron 定时)
AdAway 的自动化 API 长什么样
AdAway v5/v6 暴露了两个 Broadcast Intent 命令:
START— 启用广告拦截STOP— 禁用广告拦截
有两种调用模式:默认权限模式 和 兼容模式。
默认权限模式(需要自定义权限)
步骤
- Tasker 或其他自动化 APP 声明自定义权限
org.adaway.permission.SEND_COMMAND - 发送广播 Intent:
action: org.adaway.action.SEND_COMMAND
extra: COMMAND = START 或 STOP
package: org.adaway
问题
Tasker 等自动化 APP 的 Manifest 里没有声明这个权限(开发者不一定会为了 AdAway 特意加一条)。所以这种模式在实际使用中很受限——除非你用的自动化 APP 刚好声明了这个权限。
兼容模式(安装 AdAway Automation 辅助 APP)
这是 推荐的、绝大多数人用的路径。原理:
- AdAway 提供了一个很小的辅助 APP(AdAway Automation)
- 辅助 APP 的 Manifest 里声明了权限
org.adaway.permission.SEND_COMMAND - Tasker 发送命令给辅助 APP → 辅助 APP 转发给主 APP
操作步骤
第一步:安装 AdAway Automation 辅助 APP
从 GitHub Release 下载 AdAway Automation 的 APK(在 AdAway 项目的 Releases 里和主 APP 一起发布)。
第二步:在 Tasker 里创建任务
任务 1:启用 AdAway(Enable Adblock)
- 新建一个 Task,叫"启用 AdAway"
- 添加 Send Intent 动作
- 配置:
- Action:
org.adaway.action.SEND_COMMAND_INSECURE - Extra:
COMMAND:START - Package:
org.adaway.automation - Target: Broadcast Receiver
任务 2:禁用 AdAway(Disable Adblock)
和上面几乎一样,只改两处:
- Extra:
COMMAND:STOP
第三步:创建配置文件(按触发条件组合)
几个常用场景:
场景 A:回家开 / 出门关
- Profile:State → WiFi Connected → SSID = 家里 WiFi 的名字
- Task:启用 AdAway
- Exit Task(离开 WiFi):禁用 AdAway
场景 B:指定时间自动更新
- Profile:Time → 每天 02:00
- Task:先发 STOP → 等 5 秒 → 主界面 Hosts 更新 → 再发 START
- (更新 hosts 这一步没有 API,只能手动或通过 Tasker 的 AutoInput 模拟界面点击)
场景 C:游戏 APP 运行时临时关
- Profile:Application → 选中你的游戏 APP
- Task:禁用 AdAway
- Exit Task(退出游戏):启用 AdAway
源码仓库里的官方示例
AdAway GitHub 仓库的 Resources/tasker/ 目录里有官方发布的 Tasker 配置截图和说明:
1-create-tasks.jpg— 创建任务的入口2-enable-adblock-task.jpg— 启用 AdAway 任务3-enable-adblock-task-details1.jpg— Send Intent 配置详情第一部分4-enable-adblock-task-details2.jpg— Send Intent 配置详情第二部分5-disable-adblock-task.jpg— 禁用任务6-disable-adblock-task-details1.jpg— 禁用任务配置详情7-disable-adblock-task-details2.jpg— 禁用任务配置详情
这些截图可以直接对照着配置。
除了 Tasker 还能用什么
任何支持"发送 Broadcast Intent"的自动化工具都可以:
- Macrodroid(免费版不支持 Send Intent,但付费版可以)
- Automate(Flow 里加 Send Broadcast 节点)
- 其他 Tasker 替代品:MacroDroid、Join、AutoTools 等
可扩展的命令
AdAway 的 Broadcast API 目前只有 START 和 STOP 两个命令,但源码里的 Command.java 是可扩展的——理论上可以加 UPDATE_HOSTS 等命令。如果以后有新命令,调用方式不变,只是 COMMAND 字段换值。
安全注意事项
AdAway Automation 辅助 APP 本身非常简单(就是一个 Intent 转发器),但依然需要注意:
- 只从 AdAway GitHub Release 页面下载官方的辅助 APP APK
- 不要从第三方下载站拿"AdAway Automation"——可能被改包注入恶意 Intent

