先给结论:智能电视的广告不是”系统坏了”,是厂商把首页推荐位卖掉了。有个开源项目让 AI 帮你把这些预装服务和推荐位禁用掉,再换一个 300 KB 的干净桌面 —— 全程 不用 root、不用拆机插线、什么也不卸载,反悔了一条命令全还原。
代价是你要有十来分钟的耐心:开一次电视的开发者选项,把一段提示词粘给能执行命令的 AI 助手,然后回答几个勾选题。下面是从准备到还原的完整流程。

一、先说清楚:那些广告到底从哪来
很多人以为电视卡、开机有广告是”用久了”,其实跟硬件关系不大。厂商在出厂系统里预装了一整套内容推荐和广告服务,它们会在开机时拉起、在首页占位、在后台回传数据。你买的是一台电视,但它同时是一个广告位。
这些东西的特点很一致:
- 开机就启动,抢占本就不多的内存和 CPU;
- 首页第一屏不是你的应用,是”推荐”和”赞助”;
- 你没法在设置里关掉,因为压根没给开关。
所以”去广告”的本质不是黑掉电视,而是把你不想要的系统预装服务停掉。这件事在安卓上有标准做法,只是普通人不知道入口。
三条老路,各有各的坑
| 做法 | 问题 | 风险 |
|---|---|---|
| 刷第三方固件 | 要拆机、要短接、要找对应机型的包,刷错直接变砖 | 极高,且失去保修 |
| 卸载预装应用 | 很多是系统依赖,卸了之后投屏、语音、HDMI 输入跟着坏 | 中高,且难复原 |
| 改 hosts 拦域名 | 只能拦住走域名请求的广告,走 IP 或系统内嵌的拦不住 | 低,但效果有限 |
这个项目走的是第四条路:用安卓自带的 pm disable-user 把包禁用掉。禁用和卸载的区别很关键 —— 包还在系统里,数据没删,随时能重新启用。这就是”一条命令还原”能成立的原因。
二、它凭什么敢说”随时能还原”
只禁用,不删除
安卓的包管理器有两个动作:pm uninstall 是删除,pm disable-user --user 0 是”对当前用户禁用”。后者对系统应用安全得多 —— 应用还在,只是不启动、不出现在桌面。
项目里所有去臃肿动作都只用后者。所以你看到的不是”被删干净的电视”,是”被静音的电视”。
动手之前先备份
提示词里明确要求 AI 在改任何东西之前,先保存完整的包列表、已禁用列表、getprop 输出和全部设置项,并同时写一个还原脚本。备份和还原是同一个动作的两面,这一步不做,后面所有”安全”都是空话。
新桌面只有 300 KB
换桌面是这件事最容易被误解的部分。它没有塞进去一个大而全的启动器,而是一个纯 Java + AndroidX RecyclerView 写的小应用(包名 com.gathin.tvhome),作者称安装后约 300 KB,没有网络请求、没有后台服务、没有模糊特效 —— 专门照顾 1 GB 内存的老电视。

三、开干之前:两个准备,一张兼容表
你要准备什么
| 项目 | 要求 |
|---|---|
| 网络 | 电脑和电视连同一个 Wi-Fi。不在同一个网里也能做,但要额外配 Tailscale,后面讲 |
| AI 助手 | 任意能在你电脑终端里执行命令的编程助手,Claude Code 是最常被提到的,Codex CLI、opencode 这类同样可以 |
| Python | 3.x。项目自带一个纯 Python 的 ADB 客户端,连 adb 命令都不用装 |
| (可选)编译桌面 | 想自己编译那 300 KB 的启动器,需要 JDK 17 和 Android SDK platform 34 |
你的电视能不能做
| 系统 | 能做到什么 | 说明 |
|---|---|---|
| Android TV | 去臃肿 + 换桌面 | 小米、TCL、海信、索尼、OnePlus、Realme、NVIDIA Shield 等,主力支持 |
| Google TV | 去臃肿 + 换桌面 | 开机向导那一步有个坑,第七节单独说 |
| Fire TV | 只能去臃肿半套 | Fire OS 不把 Home 交给第三方启动器,桌面换不了 |
| 三星 Tizen / LG webOS | 不行 | 不是安卓,整套方法用不上。社区另有 webOS 移植项目 |
| 部分国行 TCL | 看运气 | 有些机型拒绝安装任何第三方桌面,示例列表的文件头会注明 |
网上流传的说法是”三星、LG、Fire TV 都不行”。前两个确实不行,Fire TV 是打了折 —— 广告和预装服务能清,桌面换不了。别被一句话总结带偏。
四、三步操作,细节都在这
第一步:在电视上打开开发者选项
遥控器走这条路径(不同品牌文字略有差异,菜单层级基本一致):
设置 → 设备偏好设置 → 关于 → 光标停在「版本号」上连按 7 次
→ 返回上一级 → 出现「开发者选项」→ 打开「USB 调试」
如果电视上还有「网络调试」或「ADB 调试」的开关,一起打开。全程保持电视开机、别让它休眠。
Google TV 和部分新机型没有网络调试开关,只有「无线调试」。这种情况要配对一次:在电视的「无线调试 → 使用配对码配对设备」里拿到配对码和端口,然后让 AI 执行 adb pair 再 adb connect。注意:无线调试在 Wi-Fi 断开后会自己关闭,中途别切网。
第二步:把仓库和提示词交给 AI
克隆仓库这一步不是必须的,但强烈建议做 —— 因为 AI 有了本地代码,可以直接复用现成的工具和启动器源码,不用从零写,这就是”十几分钟”和”一下午”的差别。
git clone https://github.com/Gathin23/cleanyourtv.git
cd cleanyourtv
然后把仓库根目录的 PROMPT.md 整段贴进你的 AI 助手,把里面 <MODEL NAME HERE> 换成你的电视型号。提示词开头那句”You have the repo”之类的上下文别删,模型要靠它决定要不要复用 tools/。
贴完记得补一句:「仓库已经在当前目录,请直接复用 tools/ 和 launcher/,只改 config.xml」。不加这句,有些助手会以为你要它从头写一套。
第三步:回答几个勾选题
接下来 AI 会在电视上弹「允许 USB 调试吗」,你点允许。然后它会问你几件事,都是”动之前先确认”的类型:
- 哪些 App 你还在用 —— 流媒体、投屏、语音助手,它会列出来让你勾;
- 底栏放哪 4 个 —— 你最常用的四个应用;
- 要不要保留系统更新服务 —— 关掉之后不会自动更新,要手动开回来;
- USB 口上插了什么 —— 有些电视开 USB 调试后会断掉 USB 口供电,插着音箱或硬盘会没反应。
这里的原则是:不确定的就别勾。禁用可以撤销,但因为一个勾选导致投屏坏了,排查起来很费时间。
五、真正干活的是 AI,它按顺序做七件事
提示词把流程写得很死,基本是按工程规范来的,这是它能稳定跑通的原因:
| 序 | 动作 | 关键约束(提示词里写死的) |
|---|---|---|
| 1 | 找到电视并连 ADB | 优先主机名 / ARP 表;跨网用 Tailscale 地址,不许扫描本地网段 |
| 2 | 备份全部清单 | 包列表、已禁用列表、getprop、所有 settings,落盘后再动手 |
| 3 | 把预装软件分类 | 分成遥测分析、厂商内容与广告、可省的后台服务、预装 App、流媒体五类 |
| 4 | 分批禁用 | 只用 pm disable-user --user 0;一批一批来,每批之间截图;pm 命令一条一个 shell 调用 |
| 5 | (可选)拦 App 内广告 | 通过 Private DNS 指向 AdGuard DNS,第八节细说 |
| 6 | 编译并安装桌面 | 先确认电视能装 APK(部分国行会报 INSTALL_FAILED_VERIFICATION_FAILURE) |
| 7 | 截图逐项验收 | 每一步都用从电视抓的截图确认,不靠”应该好了” |
第 4 步那条”分批 + 截图”值得单独说。一次性禁掉三十个包很快,但一旦首页崩了,你根本不知道是哪一个包干的。小批量是为了出错时能定位,这是整套流程里最像老工程师的地方。

六、最后你会得到一个什么样的首页
不是”能用的桌面”,是照着 Apple TV 的视觉逻辑重做的一个。具体有这么几层:
顶部一行状态与入口。 左边是问候语、时间和日期,右边三个磨砂按钮:输入源、网络(显示 Wi-Fi 名或以太网)、设置。

中间是大字标题。 光标停在哪个应用上,就用大字把它的名字打出来,背后的环境光取这个应用图标的主色。这个设计是 Apple TV 的招牌动作,也是”看起来不像电视盒子”的关键。
下面是 dock 和网格。 dock 里放你选的四(或五、六、七)个应用,再往下按方向键,剩下的应用以网格滑上来。

输入源菜单。 HDMI 口会显示当前有没有信号、接的是什么设备(图里那个 PlayStation 5 是名字改过的),另外还有 AV 和 Live TV。
时钟屏保。 一个细字体的时钟在环境光上缓慢漂移,位置一直在动,所以不会烧屏。

主题。 换配色、换壁纸、换 dock 样式和列数,都不用重新编译,推一个 config.json 过去就行。

语言跟着电视走,官方列了 14 种,包含简体中文;希伯来语还专门做了从右往左的布局适配。这些细节谈不上必需,但能看出作者是真的在自己用。
七、出问题怎么救
还原命令
还原脚本会把当初禁用的包逐个启用、把原厂桌面设回 Home、把动画缩放重置。所以你一定要留着当初用过的那个 debloat.txt:
# 项目自带的工具(Python 版 ADB,不依赖 adb 命令)
TV_HOST=192.168.1.50 tools/restore.sh examples/你的机型/debloat.txt
# Google TV 需要额外指定原厂桌面包名
TV_HOST=192.168.1.50 tools/restore.sh examples/你的机型/debloat.txt com.google.android.apps.tv.launcherx
还原不会删掉新装的桌面,它只是把 Home 交回原厂。想彻底清掉新桌面,去电视的「设置 → 应用」里卸载就行。
三个基本一定会遇到的坑
| 坑 | 怎么处理 |
|---|---|
| macOS 连不上 ADB(报 No route to host) | 不是网络问题,是 macOS 的”本地网络”隐私权限拦住了 adb 二进制。别去调路由器,直接用项目里的纯 Python 客户端 tools/tv.py |
| 禁用原厂桌面后黑屏 / 停在工厂测试页 | 顺序错了:必须先把新桌面装好并确认能跑,再禁用原厂桌面。项目的安装脚本已经替你排好这个顺序,别手动反着来 |
| Google TV 开机循环崩溃 | 是 com.google.android.tungsten.setupwraith(开机向导)抢了 Home。禁它之前先查:dumpsys wifi 里的网络若是安装向导时保存的,禁掉它会一起删掉 Wi-Fi。已经在崩了,用一条命令把原厂桌面重新启用就能回来 |
收尾:把调试口关掉
这一步很多人会忘,但它比去广告更重要。网络 ADB 走的是 5555 端口的明文协议,在某些 ro.adb.secure=0 的固件上,同网段任何设备都能直接拿到 shell。做完必须:
1. 电视:开发者选项 → 关掉「USB 调试」和「网络调试」→ 撤销 USB 调试授权
2. 重启电视
3. 电脑上确认端口已关:nc -vz 电视IP 5555 # 这条必须失败
桌面不依赖调试,关掉之后照常工作。
八、还能再往前一步
把 App 里面的广告也拦掉(可选)
上面做的是”系统层的广告位”。App 内部的广告要靠 Private DNS(Android 9 及以上)—— 把 DNS 指向一个会过滤广告域名的解析服务,全系统的广告和追踪域名直接解析失败,重启也不失效:
tools/tv.py 'settings put global private_dns_specifier dns.adguard-dns.com'
tools/tv.py 'settings put global private_dns_mode hostname'
两条限制必须知道:它拦不掉 YouTube 广告(视频和广告来自同一批服务器,域名一样);而且这个解析服务从此能看到电视发出的所有 DNS 请求。出问题就切回去:
tools/tv.py 'settings put global private_dns_mode opportunistic'
给爸妈家的电视弄,人不用过去
思路是走一条私有网络隧道(比如 Tailscale),而不是去路由器上把 ADB 端口暴露到公网。千万别开端口转发,那是把一个无密码的 shell 挂到互联网上。
不想让 AI 代劳,自己敲也行
整套流程是”AI 辅助”,不是”必须用 AI”。项目自带 tools/tv.py(纯 Python ADB 客户端)、disable.sh、restore.sh、theme.sh,Windows 下每个脚本都有对应的 .ps1。你完全可以照着上面的表格一步步手敲,只是慢一点、也更容易漏掉截图验证。
最后
这件事有意思的地方不在”去广告”,在于它展示了一种新的做事方式:把一段写得很细的操作规范交给 AI,让它在你自己的设备上一步步执行、每步截图验收、出错能回退。 换成别的场景 —— 整理一堆文件、批量改图片、给旧手机瘦身 —— 套路是一样的。
开源地址:github.com/Gathin23/cleanyourtv(MIT 协议,10 月 17 日建仓,10 月 19 日由 tv-vibehack 改名,旧链接仍然可用)。
站内相关
- AI 工具别再挨个学了:按这 6 类需求选,少走很多弯路 —— 手边还没有能执行命令的 AI 助手,先看这篇挑一个。
- WorkBuddy 从零开始详细教程①:从下载安装到交出第一份成果,一次跑通 —— 桌面型智能体的入门操作,本文的”粘提示词”那步就是这么用的。
- WorkBuddy 从零开始详细教程:15 个装完就能用的技能实测清单 —— 想让 AI 帮你干更多杂活,这份清单可以直接抄。






-Featured-Image240916-300x200-1.jpg)

















暂无评论内容