K50 实测:不 root 不刷机,把国产安卓的广告和推送关干净
国产安卓手机的"广告生态"是个老话题了:负一屏的资讯流、应用商店首页的轮播推荐、动不动就"砰"地弹出来的营销通知、桌面下拉的热搜榜……这些东西关起来有个特点——入口散、层级深、还时不时跟着系统更新搬家。一台新手机拿到手,逐个数着关,一下午就过去了;过两个月系统一更新,咦,有些开关又自己回来了。
最近我在 GitHub 上刷到一个专门治这个的开源项目:android-ad-cleaner(手机去广告)。口号很直白:
关掉国产安卓手机系统里的广告、热搜、资讯推荐和营销推送。不 root,可还原,支持 AI 智能体一键执行。
我拿自己的 Redmi K50 当小白鼠,用官方发布的 Windows 客户端完整跑了一遍。这篇文章就是完整的实测记录:跑了什么、关了什么、哪些成了、哪些没成,全部如实展示。
一、这个项目是干什么的
先给个项目画像:
当前版本:v0.2.3(2026-10-25 发布)
原理:不 root、不解锁、不刷机,只拨系统和各 App 自带的开关;广告包用
pm suspend挂起(需机主同意,一条命令还原);快应用用官方接口关闭。
它处理的东西分六类:
类别 例子 处理方式 系统广告 个性化广告推荐、广告跟踪(OAID)、智能推荐服务 系统设置里的开关 热搜和资讯 下拉搜索的热榜、负一屏资讯、浏览器信息流 各 App 设置里的开关 推广位 商店轮播、开屏、悬浮活动、签到福利 商店「服务管理」里的开关 营销推送 各 App 的「内容与营销」「活动优惠」通知 按通知渠道关,订单/快递/更新通知保留 广告组件 com.miui.systemAdSolution 等 pm suspend 挂起,可还原 快应用 广告里一点就跳的"免安装小程序" quickapp off 关闭
同时它也划了红线:不卸载、不停用系统应用,不改 system 分区,不装模块,不替你同意任何 App 的用户协议。搜索、负一屏卡片、应用商店的安装更新、天气预警、快递提醒这些功能都保留。
用法有四种,丰俭由人:
用法 适合谁 要准备什么 一:AI 智能体替你跑 有电脑,想省事 电脑、数据线、一个能执行命令的 AI 工具 二:聊天 AI 带你点 只有手机 DeepSeek、豆包、ChatGPT 任意一个 三:照清单手动关 想自己掌握每一步 只要手机 四:桌面客户端 不想敲命令 Mac 或 Windows 10/11、数据线
我这次选的是用法四:Windows 桌面客户端。项目发布了 Windows 安装版和免安装版,我下的是免安装版 AndroidAdCleaner-0.2.3-windows-portable.zip,解压后双击 AndroidAdCleaner.exe 即用,不需要装 Python,也不需要任何 AI 工具。电脑上没有 adb 的话,客户端第一次打开会提示从 Google 官网下载(约 10 MB,只下一次)。
关于两种入口:免安装版里除了图形界面
AndroidAdCleaner.exe,还内置了同引擎的命令行入口aac-cli.exe——按官方文档,客户端调用的就是tool/这套引擎,命令行能做的图形界面都能做。文中详细的执行日志取自首次完整运行(命令行入口);客户端五步界面截图,来自随后用图形界面在同一台 K50 上做的复盘重跑。所有手机截图均为真机实录。
二、准备工作:5 分钟
手机端:打开开发者模式和 USB 调试。路径是 设置 → 我的设备 → 全部参数与信息,连点「OS 版本」几秒,提示"您已处于开发者模式";然后到 设置 → 更多设置 → 开发者选项,打开 USB 调试。我用的是无线调试,电脑和手机同一局域网,adb connect 就连上了。
电脑端:解压免安装版。Windows 打开没签名的 exe 会弹「Windows 已保护你的电脑」,点「更多信息」→「仍要运行」即可。
我的实测环境:
手机:Redmi K50(型号 22041211AC,HyperOS 2.0.10.0.ULNCNXM,Android 14)
电脑:Windows,AndroidAdCleaner 0.2.3 免安装版
三、实测开始:连接 → 检测 → 备份
1. 连接与检测
客户端的设计是五步:连接手机 → 检测 → 选择要关的 → 执行 → 完成。插上线(或无线连上),第一眼就能看到设备信息。
客户端连接页:插线即认出手机,内置开启 USB 调试的图文教程点「检测」,客户端读出型号、系统版本、机型脚本匹配情况、广告组件和快应用状态。这一步是只读的,不改任何东西。
检测页:型号、系统版本、机型脚本、快应用、广告组件K50 的检测结果(命令行同款输出):
机型:Redmi K50(22041211AC),系统 UP1A.231005.007,Android 14
锁屏:否
机型脚本:本型号没有;同品牌参考 recipesxiaomi-M154FFrecipe.py。要用:recipe --ref(安全模式:只关脚本里点名的开关,找不到就跳过)
广告包 com.miui.systemAdSolution:未挂起
快应用 com.miui.hybrid(快应用服务框架):未关闭(挂起状态)
插电常亮:0
两个信息点:
K50 没有专用机型脚本。项目的做法是每个机型录一份"脚本"(记着打开哪个 App、点哪几个字进设置页、关哪几个开关),因为设置页的路径因型号和系统版本而异。官方实测表里有荣耀、一加、OPPO、小米 18 Pro Max、vivo 等机型,暂时没有 K50。但有同品牌参考脚本,可以用安全模式跑——只关脚本里点名的开关,找不到入口就跳过,不会乱点。第六节我会实测这个模式靠不靠谱。
系统广告包
com.miui.systemAdSolution未挂起,快应用框架在后台跑着。这两样就是待会儿要处理的硬菜。
细心的话可能注意到:上面这张检测页截图里,快应用和广告组件已经显示"已关闭"“已挂起”——因为这张是流程走完后复盘时截的,首次检测时它们是"未挂起"“未关闭”(见上面的命令行输出)。状态的变化,正好直观证明后面几步确实生效了。
2. 改动前备份
执行任何改动之前,客户端会先做一份快照,存到 backups/22041211AC-20261026-1055/,里面包括:
notif.txt:全机通知渠道全量清单(2300 多行,后面扫描就靠它)settings-before.txt、sys.txt:改动前的系统设置值disabled.txt:已停用的应用列表stay_on.txt:插电常亮等会被临时改动的值,收尾时按它还原
这个习惯很好:先快照,后动手,还原有据可依。
四、第一刀:营销通知,按渠道关
Android 8.0 之后通知是分"渠道"的,一个 App 可以有十几个渠道:订单通知、物流更新、营销推广、内容优惠……以前的"通知管理"只能整个 App 开或关,现在可以精确到渠道。这个项目的 chan-scan 就是把全机通知渠道扫一遍,按名字和用途挑出营销类的候选。
扫描结果,K50 上命中 4 个候选:
android com.android.server.wm.AlertWindowNotification - bin.mt.plus "MT管理器"正在其他应用的上层显示内容
com.jingdong.app.mall mipush|com.jingdong.app.mall|101913 优惠促销
com.ss.android.ugc.aweme mipush|com.ss.android.ugc.aweme|msa_notification_ad_com.ss.android.ugc.aweme 营销推广
com.xiaomi.gamecenter mipush|com.xiaomi.gamecenter|msa_notification_ad_com.xiaomi.gamecenter 营销推广
注意工具自己的提醒:“人工核对:删掉服务类(热点共享、红包、防盗、直播提醒等)后再关”。它不会替你拍板。我核对后的判断:
第一条是 MT管理器的悬浮窗提示,属于系统服务类通知,不是营销,剔除;
后三条是实打实的营销推送:京东的"优惠促销"、抖音的"营销推广"、小米游戏中心的"营销推广",保留。
在客户端界面上,扫描出的候选渠道会默认勾选,但关哪些最终由你把关——执行前人工核对一遍,把服务类的取消掉:
选择页:候选渠道默认勾选,服务类需人工取消(这张选择页是流程复盘时所截:此前已关闭的 3 个营销渠道不再出现在候选里,只剩当时人工保留下来的「MT管理器」悬浮窗通知,默认处于勾选状态——执行前把它取消,正是人工核对的意义。上面「各 App 里的广告开关」一栏,就是下一步要试用的同品牌参考脚本,按 App 列出了系统广告、应用商店、手机管家、下载管理、主题、浏览器、全局搜索、负一屏、天气和日历。)
核对后的清单执行关闭,结果:
关 优惠促销
关 营销推广
关 营销推广
拨了 3 个,28 秒
营销渠道仍开着: 0 个
3 个渠道全关,复查 0 个残留,全程 28 秒。京东的"优惠促销"关了,但同一个 App 里的订单、物流通知原样保留——按渠道关的意义就在这:不是把 App 打成哑巴,是只让它闭嘴别吆喝。
顺带说明:候选数量因机而异——通知渠道攒了多少年、手动关过多少,扫描结果都不同。刚恢复出厂设置的机器上,这个数字通常会难看得多。
五、第二刀:挂起广告包,关快应用
1. 挂起系统广告包
MIUI 的广告分发框架 com.miui.systemAdSolution 是系统级的广告 SDK,很多系统 App 的广告位都走它。项目的处理是 pm suspend 挂起——不是卸载,不是禁用,是让它"昏睡",随时可以唤醒:
com.miui.systemAdSolution:已挂起;部分完成:本系统不支持 msa 断网接口;仅挂起仍可能出现广告
这里要如实说:工具自己标注了"部分完成"——HyperOS 2 这套系统上,msa 的断网接口用不了,所以只能做到挂起包本身,广告数量不保证减少。这种不藏着掖着的提示,是我愿意给这个项目加分的原因。
挂起需要机主点头(这是工具的设计:动到包一级的操作必须人同意),还原就一条命令:run.py unsuspend。
2. 关闭快应用
"快应用"是国产厂商搞的免安装小程序生态,com.miui.hybrid 是它的服务框架。它的烦人之处在于:广告里一点就跳进去,都不过应用商店。工具检测到它在后台运行后,用官方接口把它挂起:
快应用服务框架 com.miui.hybrid 已关闭
快应用组件已关闭。请按常用入口核对效果;恢复:quickapp on
同样可还原:quickapp on。工具还提醒了一句"这个包的挂起效果还没实测"——诚实 again。
六、第三刀:跑机型脚本,关 App 内的开关
这是最"自动化"的一步:电脑照着脚本在手机上自己点——打开哪个 App、点哪几个字进设置页、关哪几个开关、留哪几个。
前面说过,K50 没有专用脚本,但有小米 18 Pro Max(HyperOS 4.0)的参考脚本。用 recipe --ref 安全模式跑,引擎自己先提示:
⚠ 机型脚本是按 OS4.0 录的,这台是 OS2.0.10.0.ULNCNXM:用安全模式跑(只关点名的开关),没找到的段会快速跳过
4 分半钟后,成绩单:
== 系统广告
✗ 没找到「更多安全设置」
关 个性化广告推荐
== 应用商店
关 个性化服务 允许我们向您推荐适合您的个性化内容和广告
关 新手帮助 新用户专属内容推荐
== 手机管家
关 个性化推荐
关 推荐内容(垃圾清理页)
== 下载管理
关 资源推荐
关 热榜推荐
== 主题
关 每次联网时通知
关 个性化推荐
== 浏览器
✗ 出错:浏览器设置入口未找到;未点击正文中的文字
== 全局搜索
关 搜索提示词
✗ 没找到「应用推荐」
== 负一屏
关 推荐卡片 推荐精选小部件
关 热门活动 为您展示近期热门小部件
关 个性化推荐
== 天气和日历
· 本版本没有可识别的设置菜单,跳过
机型脚本跑完:关了 13 个,270 秒
13 个开关,全部关到位,横跨 7 个 App:系统设置、应用商店、手机管家、下载管理、主题、全局搜索、负一屏。同时也有两处明确跳过:浏览器设置入口没找到(没有乱点正文里的文字),天气和日历的菜单结构对不上直接跳过。跳过不可耻,乱点才可耻。
在图形界面里跑同一个脚本,执行页长这样——进度条、实时日志、一个"停止"按钮,中途想反悔随时能停:
执行页:进度条和实时日志,逐 App 核对开关(这张执行页是后来用图形界面复盘重跑时所截:开关在此前已关闭,所以日志显示"核对 1 项,调整 0 项"——逐项核对通过、无需再改,恰好印证了此前的改动稳固有效。)
七、效果对比:关之前 vs 关之后
应用商店:推荐流还在,但不再"认识你"
处理前,首页「今日为你推荐」满屏推广位:
处理前:应用商店首页处理后:
处理后:应用商店首页,个性化服务已关闭这里必须说句实话:推荐流的"架子"还在。「个性化服务」关掉之后,推荐内容不再根据你的喜好精准匹配,但商店不会因此把推荐位全拆了——那是产品形态,不是开关。工具能做的是关掉"个性化"这个总闸,让推荐变成"对所有人一样的推荐"。部分版本的商店还提供「极简模式」,想更干净可以自己切。
通知栏:营销推送按渠道消失
处理前的通知栏(当天样例):
处理前:通知栏(微信消息内容已打码)(截图时通知栏里躺着一条微信消息,涉及私人聊天内容,发布前已对消息文字做马赛克处理,其余画面保持原样。)
营销渠道关掉之后,这些吆喝不会再进来,而服务类通知(订单、物流、系统提醒)不受影响。
负一屏:资讯和推荐卡片清场
这是我最满意的一处。机型脚本里负一屏段的三个开关——推荐卡片、热门活动、个性化推荐——全部关闭。现在的负一屏(智能助理)只剩扫码、内存、日历这些实用小组件:
处理后:负一屏只剩实用小组件系统设置:个性化广告推荐确认关闭
光看日志不够,我特意去设置里翻了确认。路径:设置 → 隐私与安全 → 更多安全设置 → 广告服务,「个性化广告推荐」开关已是灰色关闭状态:
处理后:广告服务页,个性化广告推荐已关闭系统自己的说明也写着:“关闭后,广告数量不会因此减少,精准度会下降”——所以别指望关一个开关广告就绝迹,这个项目的价值在于把散落各处的开关一次性拨到位,积少成多。
八、收尾:关掉开发者模式
全部跑完,客户端最后会提醒关闭开发者模式和 USB 调试。这不是矫情:部分银行、支付、游戏 App 检测到 USB 调试开着会提醒甚至拒绝运行;关掉以后,别人拿你的手机插电脑也连不上。
点「帮我关闭」,或者自己在手机上关:
插电常亮已改回 0
已发出关闭指令。请在手机上打开 设置 → 搜索「开发者选项」,确认总开关是关着的。
注意:关掉开发者模式不会撤销这次的全部改动——关掉的开关、挂起的包、关掉的通知都保持原样。以后想还原挂起的包,重新打开开发者模式即可。
完成后页面会列出每一步的结果,最后一步是关闭开发者模式:
完成页:每一步的结果,最后提醒关闭开发者模式(同为复盘重跑时所截:改动此时都已生效,所以"关闭各 App 里的广告开关"一步显示"关了 0 个开关"——核对通过、无需再改;快照和收尾两步正常执行。首次运行时这一步是"关了 13 个开关·262 秒"。)
九、想还原?都给你留着后路
这个项目"可还原"不是嘴上说说,每类操作都有对应的还原命令:
操作 关闭 还原 营销通知渠道 chan-off 清单.tsv chan-on 清单.tsv(用改动前快照里的原清单) 挂起的广告包 suspend 包名 unsuspend 快应用 quickapp off quickapp on App 内开关 脚本/界面点关 按 docs/清单/ 里的路径手动打开
(命令行为文章简洁用了简称;免安装版里的完整写法是 .aac-cli.exe --cli run.py <命令>,比如 .aac-cli.exe --cli run.py -s <序列号> unsuspend。)
客户端左下角也有「还原改动」按钮:恢复快应用、恢复挂起的广告组件、重新打开关掉的营销通知。
十、一点总结
跑完这一遍,我的评价是:这是个思路很正的工具。
好在哪:
守规矩。不 root、不刷机、不动 system 分区,只拨厂商自己提供的开关,系统更新不受影响。
可还原。每步操作前先快照,每类改动都有对应的还原命令,不把手机变成一次性耗材。
不吹牛。机型对不上就明说"参考脚本、安全模式、找不到跳过";
msa断网用不了就标注"部分完成";挂起效果没实测就写"还没实测"。一个工具敢于标注自己的边界,比声称"一键去广告"更值得信任。留功能。关营销推送但保留订单物流,关资讯流但保留天气预警和快递提醒——去的是广告,不是便利。
也要现实的:它不是银弹。系统版本每月小更新一次,设置页路径就可能变;你的机型不在实测表里,就得靠参考脚本加人工核对;广告包挂起在不同系统上效果也有差异。所以官方的建议很实在:使用前备份,结果以你的手机为准。
全程耗时统计:检测 + 备份约 1 分钟,渠道扫描约 30 秒,关渠道 28 秒,挂起和快应用十几秒,机型脚本 4 分半——一杯咖啡的时间,换一个清静的负一屏和通知栏,我觉得值。
最后,给需要的人:
机型实测表:项目 README 里持续更新,支持哪些机型、适配到什么程度都写在明处
适配你的机型:照着 docs/04-给新机型写脚本.md 做一份,欢迎提 PR
遇到问题:客户端左下角「反馈问题」会自动附上诊断信息(型号、系统版本、日志,不含隐私内容),一键提交 Issue
声明:本项目只调用 Android 系统和厂商 App 公开提供的设置项,MIT 许可。各厂商界面随系统更新变化,使用前请备份,结果以你的手机为准,使用造成的任何问题由使用者自行承担。
实测机型:Redmi K50(22041211AC)/ HyperOS 2.0.10.0.ULNCNXM / Android 14;客户端:AndroidAdCleaner 0.2.3 Windows 免安装版。文中手机截图、客户端界面截图与执行日志,均来自这台 K50 的真实运行。
