夜雨聆风学习资料网

ARTICLE · 1319531

CleanYourTV:给安卓电视去广告换桌面的开源工具,只禁用不卸载,一条命令可还原

CleanYourTV:给安卓电视去广告换桌面的开源工具,只禁用不卸载,一条命令可还原

FIELD LOG

2026-10-21

CleanYourTV

给安卓电视去广告、换桌面的开源工具

MIT

不 ROOT

158 机型

一条命令可还原

约 4,200 字 · 阅读约 8 分钟

它不删任何东西,只用 pm disable-user 把厂商的广告服务、推荐位和遥测逐条禁掉,再装一个四百多 KB 的桌面顶上。这篇讲清它动了哪些包、为什么连 adb 命令都要自己重写,以及哪几类电视它根本搞不定。

分享一个开源的项目。

你花钱买回来的那块屏,开机第一眼要替别人播广告。

十几秒,全屏,有时候你按遥控器还跳不过去。等你终于进到自己的应用,那个心情已经不太对了。

更气人的是那个卸载按钮。

你看着满屏的推荐位、预装应用、厂商塞进来的各种服务,长按,菜单出来了,卸载是灰的。

想清干净,就得刷机。刷机是什么代价,用过安卓的都懂:找固件、对型号、赌运气,一个步骤错了就是一块砖。

所以大部分人选择忍着。

忍着开机广告,忍着满屏推荐,忍着遥控器按下去要等半秒才动。忍到这台电视的寿命结束,然后买下一台,接着忍。

说实话,这不太对劲。

CleanYourTV 走的是第三条路。

它只禁用,不卸载。

这句话听起来像退让,其实是整个项目最聪明的地方。它几乎所有的设计都围着这句话长。

01

PACKAGES

先看清楚它到底动了什么

安卓电视和安卓手机是同一套血缘。它有一个东西叫 ADB,中文叫安卓调试桥,本来是给开发者调试应用用的。

ADB 能干什么?

能远程执行这个系统里的命令。包括那条关键的命令,pm disable-user --user 0。

这一条的意思是:把某个应用,对当前这个用户禁用掉。

注意它没说删除。

APK 还好端端躺在系统分区里,数据也一个字节没动,只是你这个用户看不见它、它也起不来。想让它回来,一条 pm enable 就够了。

pm uninstall 是另一回事。

对普通应用它没什么,但对系统预装应用,卸载会碰到签名校验和一串依赖关系。这是公认的变砖高发入口,很多所谓「刷坏了」,其实是在这里出的问题。

CleanYourTV 把 pm uninstall 直接写进了禁止名单。它在提示词里的原话是:不要卸载任何东西,只用 pm disable-user,这样每一条改动都能用 pm enable 撤销。

那它到底禁什么?

它先把电视上所有包列一遍,然后分成三类摆给你看:哪些肯定是垃圾(用不上的流媒体、演示程序、屏保、语音助手、安装向导、遥测),哪些要看你自己用不用,哪些是碰都不能碰的。

THREE LISTS · 三类包

直接禁

用不上的流媒体、演示程序、屏保、语音助手、安装向导、遥测

看情况

你自己用不用,得看你的使用习惯

永不禁用

禁了开不了机的那几个,清单头部单独标出来

第三类才是真正值钱的部分。

com.android.location.fused 禁了会开机循环。*.inputmethod.* 禁了虚拟键盘就没了。承载 HDMI 和输入源切换的那个厂商 TV 应用禁了,遥控器上的「信号源」键直接失效——那个包的命名看起来完全像垃圾,但它不是。

这些不是它自己猜的。

它在仓库里给 158 款机型、52 个品牌各写了一份清单,每一份都是实际动手的那个人自己交上来的。清单头部标了「永不禁用」的那几条,就是这块屏的承重墙。

它只禁用,不卸载。

因为只有不删,才能真的收得回来。

只禁用,不卸载:面板被拧下来放进编号抽屉,墙上还留着空槽

02

LAUNCHER

那个四百多 KB 的桌面

去完广告,桌面还是那个满是推荐位的桌面。

所以它自己写了一个。

com.gathin.tvhome,约 429 KB,纯 Java,只用 AndroidX 的 RecyclerView,没有第三方框架。

429 KB 是个什么概念?微信里一张稍微大点的表情包都不止这个数。

为什么能这么小?

因为它把「不做」这件事做到了极致:没有模糊效果,没有视频背景,没有轮询,没有后台服务。

有一说一,这几条在任何一份产品需求文档里都是加分项,它全砍了。

有一个细节我印象很深。它的界面里是有「毛玻璃」的,半透明的那三个胶囊按钮,看着像用了系统的模糊效果。不是。那是 GlassView.java 里用线性渐变加一道高光描边手画出来的。

画出来的玻璃,跟真的模糊,在 1 GB 内存的机器上是两种命运。

它内部还有一组对照数字:原厂桌面跑起来占 40 到 58 MB,它占 22 到 26 MB。

429 KB

桌面安装包

40–58 MB

原厂桌面常驻

22–26 MB

它常驻

单位不同:安装包按压缩后算,常驻按运行内存算

功能上它该有的都有:dock 上四个位置你自己挑,顶部是大字号的当前应用名,三个胶囊按钮分别是输入源、网络状态和设置,还有一个会慢慢漂移的时钟屏保——漂移是为了防烧屏。

换完之后的桌面:右上三个胶囊是输入源、网络和设置,dock 上四个位置自己挑

主题可以换。改一个 config.json,配一张壁纸,推到电视上就生效,不用重新编译。

改一个 config.json、推一张壁纸就能换主题,界面还是那一套

它还有一个模块卡片机制,其它应用可以在桌面上要一块自己的位置。但默认是隐藏的,必须你本人点头它才显示。

其实就是:默认关掉,你自己开。

一个桌面工具最该克制的,就是别替用户做主。

会慢慢漂移的时钟屏保,漂移是为了防烧屏

它只禁用,不卸载。

桌面这种东西,改不动比改坏了强。

03

NUMBERS

装完之后,数字大概是什么样

坦率的讲,先说清口径:下面的数字全部来自社区里某一个具体的人的实测,一人一台机器,跑完当场或几小时内记录的。不是第三方评测,也别当成你的机器一定能有这个结果。

一台索尼 BRAVIA 4K,Android TV 10,禁了 42 个包,桌面换成第三方的,开机时间从 30 秒左右降到 10 秒以内。做这件事的人说自己全程没敲过一行命令,也没装过 Android SDK。

一台小米盒子,禁完之后可用内存从 770 MB 涨到 1.15 GB。

另一台小米的电视棒,从 290 MB 到 357 到 391 MB 之间浮动。这份记录更有意思的地方是——被禁掉的 29 个包,跨了三次重启还在禁用状态。

一台 2017 年的索尼,内存占用从 1,144 MB 降到 991 MB。

一台国行 TCL,可用内存 1.97 GB 到 2.24 GB。

COMMUNITY REPORTS

一人一台机

索尼 BRAVIA 4K · Android TV 10

开机 30 秒左右

10 秒以内

小米盒子

可用内存 770 MB

1.15 GB

小米电视棒

290 MB

357–391 MB

索尼 2017 款

内存占用 1,144 MB

991 MB

国行 TCL

可用内存 1.97 GB

2.24 GB

看出规律了吗?

收益跟原始内存强相关。

1 GB 的机器,砍掉那些常驻服务,等于把最紧的那块地方腾出来了,体感是「遥控器终于不卡了」。4 GB 的机器,省下的那点内存在日常使用里几乎感觉不到。

你想想看,同一套操作,一台机器是换了个手感,另一台机器几乎白做。

还有一条:重启之后改动还在吗?

在。因为它改的不是内存里的状态,是包在系统里的启用状态,这个东西是持久的。

有人专门验证过反向操作——把还原命令跑一遍,广告回来了,再装一遍,又干净了。

双向都能走通,这才叫可逆。

我跟你说,这一条比省下那几百兆内存重要得多。

它只禁用,不卸载。

可逆不是一句口号,是要能被执行出来的。

可逆的四步:先拍照、再动手、停一下、卷回去

04

PITFALLS

装之前必须知道的四类坑

第一类是网络。

它要求电脑和电视在同一个局域网。听起来很简单,实际踩的人最多。

有人的电脑插着网线,走的是 10 段;电视连 WiFi,是 192.168.31 段。两个压根不是一个网,ADB 一直超时,人以为是电视没授权,反复在电视上点「允许」,怎么点都没用。

判断办法很简单:先 ping 一下电视的 IP。ping 不通和授权失败,长得像,是完全两件事。

第二个更阴。

ping 通了,IP 也对,ADB 就是连不上。

原因是路由器开着「双频合一」,2.4G 和 5G 共用一个 WiFi 名字,但底下是两个子网。电脑连上去实际走 5G,电视只挂了 2.4G。

看着是同一个 WiFi,实际不通。

解决办法是进路由器后台把双频合一关掉,让两个频段分开成两个名字,电脑和电视连同一个后缀的。

这种坑最气人,因为表面上一切都对。

第三类是顺序。

如果先禁了原厂桌面,新的还没装上,你的 Home 键会落到一个工厂测试应用上。

所以它的构建脚本里有一道保护:装完新桌面,确认 Home 真的指过去了,才算成功。如果没落上去,脚本自己回滚。

它还留了一条备用命令,专门在出错时把原厂桌面先恢复回来。

顺序这件事,比清单重要。

第四类是承重包。

这个没法靠清单解决,只能靠人判断。

比如那台 Google TV,装完之后出现了崩溃循环,WiFi 每分钟掉一次。原因是一个叫 com.google.android.tungsten.setupwraith 的东西在抢 Home,每 200 毫秒崩一次。

又比如换完桌面搜索框打不了字。不是桌面坏了,是小米的固件把默认输入法指向了一个根本没装的百度输入法。

还有 TCL 那台,禁掉某个包之后遥控器的「信号源」键没反应了,HDMI 切不过去。那个包的名字看起来跟输入源毫无关系。

那条「信号源」键没坏——承载它的厂商包要是被禁了,这个下拉就再也拉不出来

这类问题的共同点是:它们不是坏了,是有人把不该拆的砖拆了。

好在这四条全都有解,而且解都不难。难的是一开始你得知道往哪儿看。

反正我觉得,提前知道这四条的人,已经比大多数人少走一半弯路了。

FOUR PITFALLS · 从上到下排查

1

网络不在同一个段

先 ping 电视 IP,不通和授权失败是两件事

2

双频合一藏了子网

关掉双频合一,让两个频段分开成两个名字

3

顺序反了

先装新桌面,确认 Home 指过去,再禁旧的

4

拆到承重包

清单头部标「永不禁用」的那几个,一个都别碰

它只禁用,不卸载。

真出了问题,能开回来的东西,才叫问题。

承重墙:多数闸可以拉,少数几个围起来贴了封条,拉了就塌

05

LIMITS

哪些电视它根本搞不定

先说最该说清楚的部分。

它只支持 Android TV 和 Google TV。

三星的 Tizen、LG 的 webOS、Roku,是另外三套完全不同的系统,这套办法在这些机器上一点都不适用。亚马逊 Fire TV 能享受到一半——去膨胀可以做,但 Fire OS 不让第三方桌面接管 Home,桌面换不了。

COMPATIBILITY · 能用到哪一步

全

Android TV / Google TV

去广告、换桌面、还原,全套都能走

半

亚马逊 Fire TV

去膨胀能做,桌面换不了,Home 归 Fire OS

无

Tizen / webOS / Roku

另外三套系统,这套办法一点都不适用

电视本身要 Android 8.0 以上。低于这个版本,那个桌面装不上去。

然后是最现实的一条。

有一部分国产机型,在固件层面就把第三方桌面锁死了。

小米有用户试过,开了 ADB,权限还是不够,系统不让替换桌面。雷鸟也一样。

TCL 的情况更细一点:它的安装程序会校验 apk,扫描里面的每一个 activity,发现这是个桌面应用就拒绝安装。想硬来只能上 root,但官方桌面一关,大概率就卡在开机 logo。

有意思的是,同一个帖子下面立刻有人反驳,说自己刚在 TCL 上搞完。

同一个品牌,不同的固件版本,结果不一样。

这件事你必须自己试,别人说行不行都不作数。查一下自己的型号和固件版本,看看仓库里有没有对应的清单,比看任何教程都靠谱。

这一步没有捷径,只能拿型号去对。

还有两条不那么致命但要知道的。

一是它官方不发预编译的 APK,桌面得自己编译,需要 JDK 17 和 Android SDK。这不是一条命令的事,第一次弄要花点时间。

二是大部分清单里都包含固件更新服务。禁了它,OTA 就不会再推,安全补丁也一起停了。

以及一条常识性的:弄完之后记得把 ADB 关掉。

网络 ADB 在 5555 端口上是明文的。有些固件的 ro.adb.secure 是 0,那种情况下,同一个局域网里的任何设备都能拿到这台电视的 shell。

用完关掉,这件事没有例外。

它只禁用,不卸载。

但开着的调试口,是它管不到的那部分。

06

BUSINESS

那为什么厂商非要这么干

写到这儿得聊点别的。因为如果只把这件事当成「一个开源项目干掉了广告」,就太小看它了。

电视这门生意,硬件不挣钱。

有一家做了很多年流媒体的公司,2025 年全年营收 47.4 亿美元,其中 87% 来自广告和分成。单算卖硬件,毛利率是负 14%——一年下来卖硬件毛亏八千多万美元。

87%

来自广告与分成

−14%

单算硬件毛利率

47.4 亿

2025 全年营收 · 美元

每卖你一台设备,它都在赔钱。

它图什么?

图你把这台设备搬进客厅,然后坐在沙发上盯着屏幕看。

这就好比一家饭馆白送你一桌菜,但它在屋里装了一整套监听设备,指望从你吃饭时的闲聊里把钱挣回来。

还有一个技术名词值得知道,叫 ACR,自动内容识别。

电视开着的时候,它会持续给屏幕画面生成指纹,往服务器回传。传的不只是电视里播的内容——你投屏的手机、插 HDMI 连上的笔记本,都在采集范围里。

最狠的一点是:拔了网线它也在本地照记不误,一联网立刻打包补传。

2025 年 12 月,德克萨斯州的总检察长把三星、LG、索尼、海信、TCL 一起告上了法庭,理由就是这套东西。三星和 LG 后来先后和解,答应以后弹窗告知,并且给用户一个关闭的选项。

所以你现在明白,为什么那些广告服务删不掉了。

它们不是功能,是收入。

而与此同时,另一件事也在发生。

亚马逊 2026 年 9 月底发布的新款电视棒,换成了自家系统,把侧载第三方应用的能力直接砍掉,卖点是「比上一代快 20% 到 40%」。

把预装的垃圾删干净本来就能变流畅,现在变成要换一个你什么都删不了的系统才能流畅。

Google 那边也在收口子:想装一个未经验证开发者的应用,要开开发者模式、重启、再等 24 小时。

唯一还留着的活口是 ADB——因为谷歌默认只有真正的开发者才会去用它。

而这类项目干的事,恰恰是把 ADB 从开发者手里,递给了普通用户。

它的位置就在这儿:不是跟厂商做技术对抗,是在一块正在合上的门里卡住最后那道缝。

它只禁用,不卸载。

厂商那边不会给你这个选项,这个选项只能自己找。

07

REVERSIBLE

可逆才是它真正的产品

我翻了它仓库里那些清单、脚本和提示词之后,最大的感受不是「能去广告」。

是这个项目把「撤销」当成了架构前提来设计。

你看它的动作顺序就明白了。

动手之前先做快照:完整的包列表、已经禁用的列表、所有系统属性、全部设置项,全部落成文件,同时生成一份还原脚本。

然后才开始动。

每禁一批,停一下,让你去试:遥控器还能用吗,HDMI 能切吗,Netflix 能打开吗,声音和键盘还在吗。

你确认没问题,才进下一批。

REVERSIBLE · 它跑起来的顺序

01

先拍快照

包列表、已禁用列表、系统属性、设置项,全部落成文件

02

再动手

每禁一条都能单独回滚,不是整包替换

03

停一下

让你去试遥控器、HDMI、Netflix、声音和键盘

04

卷回去

一条命令回放所有记录,回到动手之前

这四步听起来很笨。一个脚本三秒就能把四十个包全禁完,为什么要停下来等一个人去按遥控器?

因为它知道自己在动一个你看不见的系统。

所以它宁可慢。

这套设计的价值,在它出错的时候才看得出来。

固件 OTA 推下来,把之前禁掉的包又装回来了,桌面上多了一堆东西。它的做法是跑一个检查,比对你现在的状态和当初应用的那份清单,把差异补回去,这个检查还能挂定时任务每周跑一次。

想彻底回原厂?跑还原脚本,它回放之前记下的每一条记录:逐条 pm enable,把 Home 指回当初真正占用它的那个组件,动画缩放从 0.5 复位到 1.0。

一条命令,回到你动手之前的样子。

这是我认这个项目的原因。

不是因为它免费,也不是因为它不 root。

是因为它没有要求你相信它。

大部分「一键优化」工具的逻辑是:你相信我,我帮你弄好。弄坏了呢?弄坏了你重装系统。

它反过来:你不用信我,我把每一步都记下来,哪天不想玩了,你自己能退回去。

这中间差的是「谁承担后果」这件事。

一个把撤销权交到你手上的工具,和一个把撤销权留在自己手里的工具,看起来功能一样,实际是两种东西。

就这么简单。

行了,就聊到这儿。

最后丢个链接:

github.com/Gathin23/cleanyourtv

如果你家那台电视正好是 1 GB 内存、开机要等广告、遥控器按下去要愣一下,值得去翻一下它仓库里有没有你型号的清单。

翻完先别急着动手。

先去看看那份「永不禁用」的名单,再看看你那台机器的固件版本——这两件事看明白了,剩下的才轮得到脚本。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~

— THE END —

👍 点个赞

👀 在看

↗ 转发

谢谢你看我的文章,我们,下次再见。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料