如果你用的是小米、OPPO、vivo 或荣耀等国产安卓手机,大概率每天都要面对这样的日常:解锁先看三秒应用开屏广告,下拉通知栏混着"猜你喜欢",负一屏塞满热搜榜单,天气 App 里还夹着购物节推送。这些广告并非无法关闭,只是开关分散在几十层菜单里,找全它们的成本高到大多数人选择放弃。
android-ad-cleaner做的事情很直接:把这些开关整理成机器可读的规则清单,让人------或者 AI Agent------照着清单批量执行。不 Root、不刷机、一条命令即可还原。
核心信息速览
| 项目 | 详情 |
|---|---|
| 项目名称 | android-ad-cleaner |
| GitHub 仓库 | https://github.com/rddmwmddr/android-ad-cleaner |
| 开源协议 | MIT License |
| GitHub Star | 约 3.2k--4.8k(2026 年 10 月开源后数日内飙升,不同源快照存在差异) |
| 项目定位 | 国产安卓系统广告、热搜、资讯推荐、营销推送的批量关闭工具 |
| 支持系统 | HyperOS、ColorOS、OriginOS、MagicOS 等主流国产定制安卓 |
| 核心机制 | ADB + 机型规则脚本(基于 uiautomator2),只拨动系统和 App 官方暴露的开关 |
| 是否 Root | ❌ 不需要,不解锁 Bootloader、不刷机、不改 system 分区 |
| 是否可还原 | ✅ 全部操作可逆,支持快照备份与一键恢复 |
| AI Agent 支持 | ✅ 内置 AGENTS.md,Claude Code、Codex、Cursor 等可读指令自动执行 |
| 桌面客户端 | Windows / macOS,v0.2.5(2026-10-27),无需 Python 或 AI 工具 |
| 暂不支持 | 原生鸿蒙(HDC 协议) |

一、它解决的不是"广告太多",是"开关太散"
国产安卓的系统广告有一个结构性特征:单个开关关掉就能永久生效,但你需要先找到它。
天气 App 的"内容与营销"推送、应用商店的"轮播与开屏"、负一屏的"热搜榜单"、锁屏的"资讯推荐"------这些开关分布在系统设置、厂商 App 内部设置以及每个 App 自己的通知管理页里。手动逐个关闭,需要像寻宝一样在几十个菜单路径中反复摸索,而且换一台手机、换一个系统小版本,路径可能又变了。
android-ad-cleaner 的切入点不是发明新的广告拦截技术,而是把"找到并关闭开关"这件事标准化、脚本化、可复用。它维护一份按品牌和机型组织好的规则清单,通过 ADB 连接手机后,自动遍历设置界面、定位开关、代为拨动。用户要做的事情被压缩成两步:连上手机,执行命令(或交给 AI Agent)。

二、技术架构:ADB + 规则脚本 + AI Agent 调度
2.1 执行引擎:ADB + uiautomator2
项目的全流程通过 ADB 完成,核心引擎位于 tool/fast.py,基于 uiautomator2 ------ 一个通过 ADB 驱动 Android UI 自动化的 Python 库。它读取当前屏幕、定位设置页的入口按钮、执行点击和开关操作。
机型规则脚本 (recipes/<品牌>-<型号>/recipe.py)是这一层的核心资产。每个机型一份脚本,记录该机型上各个广告开关的准确路径。如果脚本找不到某个入口(比如系统小版本更新导致菜单变了),引擎会跳过该步骤并给出提示,而不是在屏幕上乱点。
2.2 处理策略:关闭开关优先,挂起组件兜底
项目处理广告的方式分为三层,按侵入性从低到高排列:
| 策略 | 实现方式 | 适用场景 |
|---|---|---|
| 拨动官方开关 | 通过 UI 自动化进入设置页,关闭广告/营销/推荐相关的官方开关 | 大多数系统广告、营销推送 |
| 按通知渠道关闭 | 针对特定 App 的通知渠道(如天气应用的"内容与营销"),保留必要通知(如天气预警) | 通知栏营销推送 |
| 挂起广告 SDK 包 | 使用 pm suspend 挂起广告 SDK 包(如 com.opos.ads、com.miui.systemAdSolution),执行前需机主确认 |
嵌入系统层的广告组件 |
关键设计原则 :项目不使用
pm uninstall或pm disable-user来卸载/停用系统应用。所有操作都是对系统本就提供的开关和接口的调用,因此不破坏保修、不引入 Root 级别的安全风险、可随时还原。
2.3 安全与可还原:快照备份 + 幂等操作
执行任何修改之前,项目会先进行只读检查和快照备份 。每一步关闭操作都有对应的恢复操作(pm enable、重新打开开关等),确保"后悔药"始终存在。这种"幂等且可逆"的设计,是它区别于传统"卸载/冻结"类工具的核心差异。
2.4 AI Agent 层:让 Claude Code 或 Codex 替你跑流程
这是项目最具差异化的设计。仓库根目录提供了一份 AGENTS.md,把完整的执行流程(检查、备份、按机型脚本执行、验证)写成 AI 编程智能体可以读取和执行的指令。
用户只需要对支持本地命令执行的 AI 工具(如 Claude Code、Codex、Cursor、Trae 等)说一句:
"请克隆 https://github.com/rddmwmddr/android-ad-cleaner,读仓库里的 AGENTS.md,然后帮我给连着电脑的这台手机去广告。每一步改之前告诉我要改什么。"
AI 就会自动完成克隆仓库、安装依赖(adb、uiautomator2)、识别机型、按规则执行的全流程。有脚本覆盖的机型,全程约 4--6 分钟。
三、核心机制:开屏广告是怎么被处理的
用户提到的"开屏广告",在项目的处理框架中通常涉及两类操作:
- 应用内开屏广告 :多数来自 App 内嵌的广告 SDK。项目通过挂起对应的广告 SDK 包(如
com.opos.ads)来阻断其加载,执行前会征得机主确认。 - 系统级开屏/营销位:如应用商店的轮播开屏、系统浏览器的启动页等,通过关闭厂商 App 内的"营销/推广"开关来处理。
需要明确的是,这不等同于全局广告拦截(如 DNS 过滤或 VPN 级拦截) 。它只处理那些系统或厂商 App 自身提供了关闭开关的广告位。对于第三方 App 完全依赖自身逻辑、不依赖可挂起 SDK 的开屏广告,这个工具的覆盖能力取决于该 App 是否暴露了可操作的开关。
四、安装与使用
4.1 前置条件
| 条件 | 说明 |
|---|---|
| 手机系统 | Android(非原生鸿蒙),主流国产定制系统 |
| 开发者模式 | 设置 → 关于本机 → 连续点击"版本号"7 次 |
| USB 调试 | 开发者选项中打开"USB 调试",连接电脑后允许授权 |
| 电脑端 | Windows 10/11 或 macOS,安装 ADB 工具(桌面客户端已内嵌) |
4.2 方式一:桌面客户端(无需命令行,推荐非开发者)
从 GitHub Releases 下载对应版本:
- Windows :安装版
.exe或免安装.zip - macOS :Apple Silicon(M1+)
.dmg或 Intel.dmg
插上手机,打开客户端,按界面提示执行检查、备份和清理。不需要 Python,也不需要 AI 工具。
4.3 方式二:AI Agent 一键执行
对 Claude Code、Codex、Cursor 等支持本地命令的 AI 工具发送上文那句指令,AI 会按 AGENTS.md 的标准流程自动完成。
4.4 方式三:命令行手动执行(开发者)
bash
git clone https://github.com/rddmwmddr/android-ad-cleaner.git
cd android-ad-cleaner
# 1. 只读检查(锁屏状态、机型脚本匹配、广告包状态)
python tool/run.py check
# 2. 备份快照(修改前必须执行)
python tool/run.py backup
# 3. 按机型规则执行清理
python tool/run.py recipe
五、客观边界:它能做什么,不能做什么
- 覆盖率取决于机型脚本的维护程度 。项目采用"每个机型一份脚本"的策略,这意味着新机型或系统小版本更新后,脚本可能尚未覆盖。官方实测覆盖的机型包括荣耀 PNM-AN10(MagicOS 10)、小米 18 Pro Max(HyperOS 4.0.24)等,部分 OPPO、vivo 机型脚本仍待真机复测。不在清单中的机型,脚本会跳过找不到的步骤,而不是强行操作。
- 它不是全局广告拦截器 。它处理的是系统和厂商 App 自身提供了关闭开关的广告位。对于完全依赖第三方 App 内部逻辑、没有暴露可操作开关的开屏广告,它的直接干预能力有限。挂起广告 SDK 包是一种兜底手段,但并非所有 App 的广告 SDK 都可被安全挂起。
- AI Agent 模式依赖模型对指令的遵循 。
AGENTS.md提供了标准流程,但 AI 在实际执行中是否严格遵循每一步(尤其是"修改前告知"和"备份先行"),取决于所用模型和工具的可靠性。对于不熟悉命令行的用户,桌面客户端是更可控的选择。 - 原生鸿蒙暂不支持。项目明确仅支持通过 ADB 连接的安卓设备,使用 HDC 协议的原生鸿蒙设备无法使用。
- 效果因系统版本而异 。国产定制系统的小版本更新可能改变设置页的布局和文案,导致现有脚本的某些步骤失效。项目会跳过失效步骤并提示,但这意味着清理可能不完整,需要等待脚本更新或手动补充。
六、小结
android-ad-cleaner 的核心价值不在于"拦截广告",而在于把"找到并关闭广告开关"这件分散、繁琐、不可复用的手工活,变成了结构化、可脚本化、可交给 AI 执行的工程任务。它不 Root、不刷机、不改系统,只调用系统本就提供的开关,因此风险边界清晰、还原路径明确。
它的适用场景很具体:国产安卓手机用户,被系统级广告、热搜、营销推送困扰,愿意花几分钟连接电脑执行一次批量关闭。对于有脚本覆盖的机型,效果直接且可逆;对于脚本未覆盖的新机型,它提供了一个可扩展的框架,等待社区补充规则。它不是万能广告拦截器,但在"系统广告开关批量化"这个细分需求上,目前开源生态中没有更系统的替代品。
附录:资源列表
| 类型 | 资源 | 说明 |
|---|---|---|
| 📦 快速下载 | 点击下载 | win版和mac版桌面客户端 v0.2.5 |
| ✅ GitHub 仓库 | https://github.com/rddmwmddr/android-ad-cleaner | MIT License |
| 📄 AGENTS.md | 仓库根目录 | AI Agent 执行指令 |
| 📄 机型脚本目录 | recipes/<品牌>-<型号>/recipe.py |
按机型组织的规则 |
| 📄 错误日志上报说明 | docs/12-错误日志上报.md |
隐私处理与 90 天保留策略 |
| 📄 社区问题处理记录 | docs/09-社区问题处理.md |
已知 Issue 的修复范围 |
本文为原创内容,转载请注明来源与作者。
CSDN 首发 | 版权所有 © 2026
📢 免责声明与版权说明
1. 版权归属
本文提及的开源软件、第三方工具、代码片段、网盘资源及教程合集,其版权均归原作者或开源社区所有。本人仅出于技术分享与评测目的进行整理与推荐,不拥有相关内容的版权。
2. 仅供学习交流,严禁商用
本文提供的任何资源(包括但不限于软件安装包、教程、素材等)均来源于公开互联网渠道,仅供个人学习、研究与技术交流 。严禁将本资源用于任何形式的商业牟利、二次售卖或非法传播。如需在商业环境中使用,请务必前往官方渠道购买正版授权。支持正版,是技术生态良性发展的基石。
3. 技术风险自行承担
文中涉及的软件、脚本及代码均在特定测试环境下验证。由于每位读者的设备硬件、操作系统及网络环境存在差异,因参考本文内容进行操作而导致的任何系统崩溃、数据丢失、硬件损坏或安全事故,由使用者自行承担全部风险 ,作者不承担任何连带法律及经济责任。操作前请务必做好重要数据的备份工作。
4. 侵权处理机制(避风港原则)
本人极其尊重原创与知识产权。若本文内容(包括文字、图片、附件链接等)无意中侵犯了您的合法权益,请务必通过 CSDN 站内私信或文末留言联系我,并提供您的身份证明及版权权属证明。核实无误后,我将在第一时间删除相关内容并致歉。
📢 免责声明与版权说明
1. 版权归属
本文提及的开源软件、第三方工具、代码片段、网盘资源及教程合集,其版权均归原作者或开源社区所有。本人仅出于技术分享与评测目的进行整理与推荐,不拥有相关内容的版权。
2. 仅供学习交流,严禁商用
本文提供的任何资源(包括但不限于软件安装包、教程、素材等)均来源于公开互联网渠道,仅供个人学习、研究与技术交流 。严禁将本资源用于任何形式的商业牟利、二次售卖或非法传播。如需在商业环境中使用,请务必前往官方渠道购买正版授权。支持正版,是技术生态良性发展的基石。
3. 技术风险自行承担
文中涉及的软件、脚本及代码均在特定测试环境下验证。由于每位读者的设备硬件、操作系统及网络环境存在差异,因参考本文内容进行操作而导致的任何系统崩溃、数据丢失、硬件损坏或安全事故,由使用者自行承担全部风险 ,作者不承担任何连带法律及经济责任。操作前请务必做好重要数据的备份工作。
4. 侵权处理机制(避风港原则)
本人极其尊重原创与知识产权。若本文内容(包括文字、图片、附件链接等)无意中侵犯了您的合法权益,请务必通过 CSDN 站内私信或文末留言联系我,并提供您的身份证明及版权权属证明。核实无误后,我将在第一时间删除相关内容并致歉。