AdAway 中文文档 下载 App

AdAway 与 Tasker 自动化 —— 用广播 API 实现定时开关、按应用启停等场景

为什么要自动化

AdAway 绝大多数场景是"开着就一直开着",但有些场景需要动态开关:

AdAway 的自动化 API 长什么样

AdAway v5/v6 暴露了两个 Broadcast Intent 命令:

有两种调用模式:默认权限模式 和 兼容模式。

默认权限模式(需要自定义权限)

步骤

  1. Tasker 或其他自动化 APP 声明自定义权限 org.adaway.permission.SEND_COMMAND
  2. 发送广播 Intent:
   action: org.adaway.action.SEND_COMMAND
   extra:  COMMAND = START 或 STOP
   package: org.adaway

问题

Tasker 等自动化 APP 的 Manifest 里没有声明这个权限(开发者不一定会为了 AdAway 特意加一条)。所以这种模式在实际使用中很受限——除非你用的自动化 APP 刚好声明了这个权限。

兼容模式(安装 AdAway Automation 辅助 APP)

这是 推荐的、绝大多数人用的路径。原理:

  1. AdAway 提供了一个很小的辅助 APP(AdAway Automation)
  2. 辅助 APP 的 Manifest 里声明了权限 org.adaway.permission.SEND_COMMAND
  3. Tasker 发送命令给辅助 APP → 辅助 APP 转发给主 APP

操作步骤

第一步:安装 AdAway Automation 辅助 APP

从 GitHub Release 下载 AdAway Automation 的 APK(在 AdAway 项目的 Releases 里和主 APP 一起发布)。

第二步:在 Tasker 里创建任务

任务 1:启用 AdAway(Enable Adblock)

  1. 新建一个 Task,叫"启用 AdAway"
  2. 添加 Send Intent 动作
  3. 配置:

任务 2:禁用 AdAway(Disable Adblock)

和上面几乎一样,只改两处:

第三步:创建配置文件(按触发条件组合)

几个常用场景:

场景 A:回家开 / 出门关

场景 B:指定时间自动更新

场景 C:游戏 APP 运行时临时关

源码仓库里的官方示例

AdAway GitHub 仓库的 Resources/tasker/ 目录里有官方发布的 Tasker 配置截图和说明:

这些截图可以直接对照着配置。

除了 Tasker 还能用什么

任何支持"发送 Broadcast Intent"的自动化工具都可以:

可扩展的命令

AdAway 的 Broadcast API 目前只有 START 和 STOP 两个命令,但源码里的 Command.java 是可扩展的——理论上可以加 UPDATE_HOSTS 等命令。如果以后有新命令,调用方式不变,只是 COMMAND 字段换值。

安全注意事项

AdAway Automation 辅助 APP 本身非常简单(就是一个 Intent 转发器),但依然需要注意:

Tasker 创建任务
Tasker 里新建两个任务:一个启用一个禁用,对应 AdAway 的 START 和 STOP 命令
Tasker Intent 配置
Send Intent 动作的详细配置,Action、Extra、Package 三个关键字段