android-ad-cleaner:无需 Root的开源国产安卓手机系统广告一键清理工具
android-ad-cleaner 是 MIT 协议开源的国产安卓手机去广告工具,无需 root、不解锁、不刷机,通过 ADB 批量关闭系统个性化广告、下拉热搜、负一屏资讯、应用商店推广位、营销通知渠道和快应用,支持小米 HyperOS、OPPO ColorOS、vivo OriginOS、荣耀 MagicOS 等主流定制系统。
android-ad-cleaner 是什么
android-ad-cleaner 是一个 MIT 协议开源的安卓手机去广告项目,它要解决的问题非常具体:国产定制安卓系统(HyperOS、ColorOS、OriginOS、MagicOS、氧OS 等)自带的系统广告、下拉搜索热搜、负一屏资讯、应用商店轮播推广位、开屏活动弹窗,以及各个 App 的"内容与营销""活动优惠"类通知推送。
它的做法不是装广告拦截器,也不是改 hosts,而是通过电脑上的 ADB 调试连接手机,直接拨动系统和厂商 App 自己提供的设置开关。遇到实在关不掉的广告组件(比如 OPPO 的 com.opos.ads、小米的 com.miui.systemAdSolution),用 pm suspend 把它挂起,全程不 root、不解锁、不刷机、不动 system 分区,系统更新和保修都不受影响。

它能处理哪些东西
项目把要关的内容分成了六类,每一类都有明确的处理手段:
| 类别 | 典型例子 | 处理方式 |
|---|---|---|
| 系统广告 | 个性化广告、广告跟踪(OAID)、智能推荐服务 | 拨系统设置里的原生开关 |
| 热搜和资讯 | 下拉搜索热榜、负一屏资讯流、浏览器信息流 | 各 App 设置里的开关,浏览器切到简洁首页 |
| 推广位 | 应用商店轮播图、开屏广告、悬浮活动、签到福利 | 商店"服务管理"里的开关逐项关闭 |
| 营销推送 | 各 App 的"内容与营销""活动优惠"通知 | 按通知渠道单独关,订单、快递、更新提醒保留 |
| 广告组件 | com.opos.ads、com.miui.systemAdSolution 等 | pm suspend 挂起,需要机主确认 |
| 快应用 | 广告里点一下就跳进去的"免安装小程序" | quickapp 检测后执行 quickapp off 关闭 |
需要特别说明的是,营销通知是按渠道粒度关的。同一个天气 App,"天气预警"渠道保留,"内容与营销"渠道关掉;同一个商店,"版本更新提醒"保留,"活动优惠"渠道关掉。不会把整个 App 的通知一刀切禁掉。
它明确不做的事
开源项目的边界感很重要,这个项目在 README 里专门列了"不做的事":
不卸载、不停用任何系统应用,pm uninstall 和 pm disable-user 都不用;
不改 system 分区,不装 Xposed 模块;
不替你同意任何 App 的用户协议,遇到协议页会让你点"取消"或"以后再说";
不截取账号页和手机号页;
不处理 App 内部的信息流广告(短视频、浏览器里的视频广告等)。
这些边界决定了它的安全性:你手机上的微信、支付宝、银行 App 完全不会被碰。
功能特色
1. 四种用法,从纯小白到极客都能覆盖
| 用法 | 适合谁 | 需要准备什么 |
|---|---|---|
| AI 智能体替你跑 | 有电脑、想省事 | 电脑、数据线、一个能执行命令的 AI 工具(Claude Code、Cursor、Trae、Codex 等) |
| 聊天 AI 带你点 | 只有手机 | DeepSeek、豆包、ChatGPT 任意一个,照着提示词一步步点 |
| 照清单手动关 | 想自己掌握每一步 | 只要手机,按 docs/清单/ 里的图文清单手动进设置关 |
| 桌面客户端 | 不想敲命令 | Mac(Apple/Intel 芯片)或 Windows 10/11、数据线,双击安装包点按钮 |
用法一的开场白作者都帮你写好了,直接复制给 AI:
请克隆 https://github.com/rddmwmddr/android-ad-cleaner ,读仓库里的 AGENTS.md, 然后帮我给连着电脑的这台手机去广告。每一步改之前告诉我要改什么。
2. 完全可逆,改动前自动快照
执行前会先跑 backup 命令,把品牌型号、系统应用列表、自装应用列表、系统设置项全量、通知渠道全量、插电常亮原值、将要挂起的包、将要关闭的营销渠道全部存到 backups/ 目录下。
还原也是一条命令:
python3 tool/run.py -s <序列号> unsuspend # 解除全部挂起 python3 tool/run.py -s <序列号> chan-on backups/<型号>-<时间>/channels.tsv # 恢复通知渠道 python3 tool/run.py -s <序列号> quickapp on # 恢复快应用
App 内部拨过的开关,按清单文档里的路径手动打开即可。
3. 机型脚本机制,按型号和系统版本精确适配
项目把"打开哪个 App、点哪几个字进设置页、关哪几个开关、留哪几个"这种操作步骤录成一份份 recipe.py,放在 recipes/<品牌>-<型号>/ 目录下。因为设置页随型号和系统版本变化,所以每个机型一份。
引擎跑的时候会先检测手机型号和系统版本,版本对不上就提示,找不到入口的步骤直接跳过,不会乱点一通。
4. 营销通知按渠道粒度关闭
这是这个项目和其他"一键去广告"工具最大的区别。它会先用 chan-scan 命令列出当前手机上所有 App 的通知渠道,让你按渠道勾选要关哪些。服务类通知(快递、天气预警、软件更新)默认不勾选,营销类(内容推荐、活动优惠、福利签到)才列入候选。
5. 桌面客户端图形化操作
不需要装 Python,不需要敲命令。Windows 和 Mac 都有安装包,插上手机自动识别,分五步走:连接手机 → 检测型号和广告组件 → 勾选要关的营销通知 → 执行 → 完成提示。左下角有"反馈问题"按钮,自动附上诊断信息打开 GitHub Issue 提交页。
Mac 版已经过苹果签名和公证,双击就能打开;Windows 版弹"已保护你的电脑"时点"更多信息 → 仍要运行"即可。
6. 数据不出本机
脚本在你自己电脑上跑,不联网上传任何东西。本地快照目录 backups/ 已经被 .gitignore 排除,不会被误传到公开仓库。错误日志上报时,序列号、用户目录、邮箱、手机号、IP 都会被替换,服务器只存 90 天,IP 只存哈希。

使用方法
前置准备
手机进入设置 → 关于手机 → 连续点版本号 7 次,开启开发者模式;
进开发者选项,打开"USB 调试";小米/Redmi 还需要额外打开"USB 调试(安全设置)",这一项要插 SIM 卡并登录小米账号;
用数据线把手机连到电脑,手机弹窗勾选"始终允许这台电脑调试",点允许;
荣耀、华为还要在开发者选项里打开"仅充电模式下允许 ADB 调试"。
方式一:用桌面客户端(推荐新手)
到 Releases 页面下载对应系统的安装包:
Mac Apple 芯片:AndroidAdCleaner-0.2.6-mac-arm64.dmg
Mac Intel 芯片:AndroidAdCleaner-0.2.6-mac-intel.dmg
Windows 安装版:AndroidAdCleaner-0.2.6-windows-setup.exe
Windows 免安装:AndroidAdCleaner-0.2.6-windows-portable.zip
安装并打开客户端;
插上线,客户端自动识别手机型号;
点"检测",它会列出机型脚本、快应用、广告组件情况;
在营销通知页按渠道勾选要关的项;
点"执行",等进度条跑完;
完成后按提示关闭开发者模式,断开数据线。
不知道自己 Mac 是哪种芯片:左上角苹果图标 → 关于本机,"芯片"写 Apple M 开头的选 Apple 芯片。
方式二:从源码用命令行跑
git clone https://github.com/rddmwmddr/android-ad-cleaner cd android-ad-cleaner pip3 install -r requirements.txt python3 tool/run.py devices # 看序列号、型号、有没有机型脚本 python3 tool/run.py -s <序列号> check # 只读检查,不动任何东西 python3 tool/run.py -s <序列号> backup # 改动前快照 python3 tool/run.py -s <序列号> recipe # 跑对应机型的脚本 python3 tool/run.py -s <序列号> chan-scan # 列营销通知渠道 python3 tool/run.py -s <序列号> chan-off backups/<型号>-<时间>/channels.tsv python3 tool/run.py -s <序列号> quickapp # 检测快应用;quickapp off 关闭 python3 tool/run.py -s <序列号> finish # 收尾,提醒关闭开发者模式 python3 tool/run.py -s <序列号> dev-off --yes # 从电脑关闭开发者模式
方式三:让 AI 智能体代跑
把这段开场白复制给支持命令执行的 AI 编程工具:
请克隆 https://github.com/rddmwmddr/android-ad-cleaner ,读仓库里的 AGENTS.md, 然后帮我给连着电脑的这台手机去广告。每一步改之前告诉我要改什么。
AI 会读仓库里的操作规范文档 AGENTS.md,然后一步步帮你执行。每一步改之前都会先告诉你要改什么,你确认后再动手。

实测过的机型
项目维护了一份真机实测表,下面是当前已经跑通完整流程的部分机型:
| 品牌 | 代表机型 | 系统 | 验证状态 |
|---|---|---|---|
| 荣耀 | PNM-AN10 | MagicOS 10 | 实测通过,重跑 4 分钟,26 个营销通知渠道 |
| 小米 | 18 Pro Max | HyperOS 4.0.24 | 九段通过 |
| 小米 | REDMI K80 至尊版 | HyperOS 2 / Android 16 | 真机九段通过,重跑 3 分钟 |
| 小米 | REDMI K90 Pro Max | HyperOS OS4.0.2.0 / Android 17 | 九段实测通过,重跑 169 秒 |
| Redmi | Note 14 Pro | HyperOS 3.0.309 / Android 16 | 八段实测通过,整轮约 5 分钟 |
| Redmi | Note 12 Turbo | HyperOS OS3.0.5.0 | 实测通过,九段 3.5 分钟 |
| OPPO | Find N6 | ColorOS 16.0.9 | 路径实测,30 个通知渠道 |
| vivo | X300 Ultra | OriginOS 7 | 实测通过,重跑 126 秒 |
| vivo iQOO | V2324HA | 原系统 Android 16 | 七段全通,重跑 2.5 分钟 |
| 一加 | Ace 2 | ColorOS 16.0.5 / Android 16 | 路径实测,整段约 85 秒 |
| 一加 | Ace 2 Pro | ColorOS 14 / Android 14 | 6 项商店推广位关闭并回读 |
机型不在表里也能用。先跑通用检测,找不到入口的步骤会自动跳过,不会乱点。你也可以照 docs/04-给新机型写脚本.md 自己录一份,然后提 PR。
项目地址
常见问题解答
Q:这个工具会影响手机系统更新吗?
A:不会。它不 root、不解锁、不改 system 分区。挂起(pm suspend)只是临时暂停一个 App 的运行,系统更新的接收和安装流程完全不受影响,该更还是更。
Q:会影响手机保修吗?
A:不会。它用到的只是开发者选项里的 USB 调试和系统自带的设置项,没有解锁 bootloader,没有修改系统分区,厂商售后检测不到任何改动痕迹。
Q:关完以后还有广告吗?
A:会剩一部分。浏览器搜索框里的轮播热词系统没给开关;OPPO 软件商店的"开机必备"弹窗在服务管理全关后仍可能弹;国行手机下拉搜索只能用百度,不 root 改不了搜索引擎;部分 App 停在"同意协议"页因为项目不替你同意,没进去就关不到;新装的 App 广告跟踪和营销通知默认是打开的,重跑一次通用部分就行。
Q:系统大版本更新以后需要重新跑一遍吗?
A:建议重跑。大版本更新会把部分开关恢复默认,也可能改设置页的入口位置。重跑前先跑一次 check 命令,看机型脚本版本和当前系统版本对不对得上。
Q:为什么不直接卸载广告 App?
A:国行系统应用不 root 卸不掉。pm disable-user 大多被系统拒绝,少数能停用的停了以后会连带把相关功能搞坏。挂起是可逆的,一条命令就能恢复,所以项目只用挂起,不做不可逆的停用。
Q:挂起哪些包会把正常功能搞坏?
A:项目实测过,com.heytap.quicksearchbox(OPPO 下拉搜索)挂了搜索就打不开,com.coloros.assistantscreen(OPPO 负一屏)挂了卡片全没,这两个不能挂。com.opos.ads(OPPO 广告服务)、com.heytap.pictorial(乐划锁屏)、com.miui.systemAdSolution(小米系统广告)、com.hihonor.quickengine(荣耀快应用引擎)挂了都正常,只是对应广告或锁屏杂志消失。
Q:脚本报"没找到"怎么办?
A:说明你的系统版本和录制机型脚本时不一样,设置页改了名字或位置。三种处理办法:让 AI 照清单单步做完存成新脚本;或者自己照 docs/清单/ 里的图文清单手动关;或者去 Issues 提交,写清楚型号、系统版本、哪一段没找到。
Q:Windows 上客户端认不到手机怎么排查?
A:按顺序查:换一根能传数据的线插电脑后面的 USB 口;手机下拉通知栏把 USB 用途改成"传输文件";开发者选项里关掉再打开 USB 调试,手机弹窗勾"始终允许";荣耀华为再打开"仅充电模式下允许 ADB 调试";装手机品牌的 USB 驱动;关掉电脑上其他手机助手和安卓模拟器,它们会占用连接。
Q:小米手机跑的时候大量报"没找到",中途还会自动锁屏?
A:开发者选项里还要打开"USB 调试(安全设置)"。这一项要插 SIM 卡、登录小米账号。不开它,电脑能读屏幕但发出的点击会被系统拒绝,设置也写不进去,跑一会儿就锁屏。0.2.4 版本开始检测页会先试发一个空按键,被拒就直接提示你去开这一项。
Q:执行到一半报 device not found 是什么情况?
A:手机和电脑的 ADB 连接中途断了。最常见原因是电脑上同时开着应用宝、360 手机助手、豌豆荚、刷机工具或安卓模拟器,它们自带另一个版本的 adb 会互相顶掉连接。也可能是数据线、接口或扩展坞接触不良。把其他手机助手全退了再试。
Q:运行的时候手机能拿来用吗?
A:不能。脚本正在自动点屏幕,你一碰屏幕坐标就乱了。全程保持亮屏、解锁、插线,等它跑完。
Q:vivo 手机提示"这个开关会影响整个 App"是什么意思?
A:vivo 的应用通知总页和单个渠道页是同一个系统页面。总开关"允许通知"一关,整个 App 的通知就全没了,订单、聊天提醒也一起消失。项目不点总开关,只在从总页点进来、顶栏显示渠道名的页面上操作,点完还会回头核对应用总开关没动过。渠道名和 App 名相同时无法区分,会跳过让你手动关。
Q:折叠屏手机跑得动吗?
A:把手机合上用外屏跑。展开后是左右分栏布局、底部有任务栏,引擎会找错位置。0.2.1 开始读屏时会刷新屏幕尺寸,丢掉屏幕外的节点,但折叠屏还是建议合上跑最稳。
Q:运行时会不会把我手机里的数据上传到网上?
A:不会。脚本在你自己电脑上跑,不联网。本地快照存在 backups/ 目录,里面有应用列表和通知记录,别自己传到公开仓库就行。错误日志只在你点"反馈问题"时才发送,而且序列号、手机号、IP 都会被替换掉。
Q:原生鸿蒙手机能用吗?
A:不能。项目目前只操作通过 adb 连接的安卓设备,没有实现原生鸿蒙的 HDC 调试和界面自动化。华为新出的纯血鸿蒙手机装安卓驱动、借荣耀脚本都没用,不要把"荣耀安卓"和"原生鸿蒙"当成同一套系统。
Q:扫描出来没有营销通知渠道,是不是说明手机已经没广告了?
A:不是。它只能扫描 App 已经创建出来的通知渠道,新手机或刚恢复出厂的手机渠道本来就少。App 要先创建渠道才会发通知,创建时机不一定在第一次发通知时。正常用一段时间后再扫一次,数量会变多。
Q:万一出问题了怎么还原?
A:挂起的包跑 python3 tool/run.py -s <序列号> unsuspend 全部解除;营销通知渠道跑 chan-on backups/对应时间目录/channels.tsv 恢复;快应用跑 quickapp on 恢复;App 内部的开关按清单文档路径手动打开。还原需要电脑,开发者模式如果关了要重新打开。没有电脑的话,恢复出厂设置也能解除挂起,但会清空数据,一定要先备份。
总结
android-ad-cleaner 是一个把"国产安卓系统去广告"这件事从纯手动翻设置变成可自动执行、可批量复跑、可一键还原的开源工具。它不追求拦截一切广告,而是老老实实调用系统和厂商 App 自己暴露的开关,把个性化广告、OAID 跟踪、下拉热搜、负一屏资讯、应用商店推广位、各 App 的营销通知渠道和快应用这几类最烦人的系统级推广逐项关掉,同时保留搜索、负一屏卡片、应用商店安装更新、天气预警、快递提醒这些正经功能。
提供桌面客户端、AI 智能体代跑、聊天 AI 引导、手动清单四种用法,覆盖小白和极客两类用户;每一步改动前自动快照,挂起和通知渠道都有对应还原命令,不 root 不刷机不动系统分区,系统更新和保修都不受影响。对受够了国产定制系统弹窗和营销推送、又不想冒 root 风险的普通用户来说,这是目前可见范围内门槛最低、可逆性最强的一条清理路径。

