大神们开始 vibe 家里的电视机了
前阵子 GitHub 上最火的项目是 REA(Reverse Engineer Anything,github.com/morluto/rea)。它是个 MCP 服务器,把 Ghidra、IDA、Hopper、JADX 这些专业逆向工具包装成一百多个 AI agent 能直接调用的接口。装好之后你对 Claude Code 说一句人话,比如「搞清楚 Windows 计算器的 % 键是什么逻辑,给我看证据」,它就能自己拆二进制、追调用链,最后给出带证据的结论。这项目四月就建仓了,一直不温不火,十月初突然被点燃,十几天冲到 33 万 star、8.4 万 fork,GitHub Trending 第一连占了好几天,HN 上的讨论近千赞。
跟着起来的是「逆向复刻」潮,下手的还都是手边最熟的东西。Windows 计算器里 200 + 10% 为什么等于 220,REA 把 % 键的处理逻辑翻出来,发现加法和乘法走的是两条分支,最后拿微软开源的常量定义一对,分毫不差。Chrome 的小恐龙为什么越跑越快,它直接从正在运行的页面脚本里读出规则:初速 6,每次更新加 0.001,13 封顶,然后照着这条规则重写了一个带速度滑杆的迷你版。中文圈这边更接地气,有人花半小时让 agent 把剪映的字幕、转场、动画摸清楚,搬进自己的项目;最离谱的一位拆了微信小程序的蓝牙协议,半小时给自家智能马桶攒出个遥控器,电脑上点一下,马桶盖真的翻了。胆子再大一点的已经不满足于拆单个功能,直接照着 Adobe 全家桶复刻,Photoshop、Premiere 的免费替代品没几天就冒了出来,“Software is over” 的口号也是那阵子喊起来的。
当小伙伴都在忙着 vibe coding 的时候,这些大神们又开始 vibe 自己家里的电视机了。起因是 Ryan Doyle 发了条推,说用 Claude Code 把自己电视「黑」了,广告全没了。

开发者 Gathin 顺着这个思路,把父母那台打开 Netflix 之前先弹广告的小米电视收拾了一遍:AI 通过 Wi-Fi 找到电视,禁用了 25 个小米系预装包,还顺手写了个新启动器。他把这段提示词连同整个方案开源成 tv-vibehack,推文两百万阅读,仓库现在改名叫 cleanyourtv,刚开源两三天已经 3.5k star。
cleanyourtv 是什么
cleanyourtv 通过 Wi-Fi 把 Android TV / Google TV 精简一遍,再把广告满天飞的官方桌面换成一个苹果 Apple TV 风格的启动器。

整个过程不用 root,不用插 USB 线,也不卸载任何东西。它只走电视自带的 ADB 调试通道,把要清理的包逐个禁用,系统分区原封不动,一条命令就能全部还原,玩砸了也不慌。
原理不复杂。Android TV 说到底也是安卓,和手机一样带 ADB。电视端在 Settings → Device Preferences → About 里连按 OK 七次解锁开发者选项,打开 USB debugging,同一个 Wi-Fi 下的电脑就能 adb connect 上去。部分小米电视看不到无线调试开关,但 USB debugging 本身就会放开 5555 端口,一样连得上。之后就是 pm disable-user 逐个禁用厂商的遥测、广告服务和内容推荐行,README 里那台小米电视 4A 一共禁了 25 个包,PatchWall、SmartShare、Alexa 桥接都在列。

这个项目我觉得最妙的地方,是它把「怎么让 AI 干这活」也一并开源了。仓库里有一段 PROMPT.md,当初作者就是用这段提示词让 Claude Code 自己识别电视型号、发现冗余应用、写启动器的。你把它连同型号喂给任何有 shell 权限的编码助手,备份、探测、禁用、构建、截图验证它会自己跑完。作者在 X 上的原话是:“it found the tv on wifi, removed 25 Xiaomi packages and wrote a new launcher. Looks like an Apple TV now lol.”
安装
两条路,推荐第一条。
方式一:AI 助手全自动,顺利的话一刻钟:
- 电视端:
Settings → Device Preferences → About连按 OK 七次,返回打开Developer options → USB debugging,有 Network / Wireless debugging 也一并打开。 - 电脑端:把仓库里的
PROMPT.md连同电视型号一起贴给 Claude Code(Codex 等其他助手也行)。 - 电视上弹出 “Allow USB debugging?” 点允许,然后回答助手几个清单问题:常用哪些 App、Dock 放哪四个、语音助手 / Chromecast / 系统更新要不要保留。
- 剩下的备份、精简、构建安装启动器、截图验证,助手自己走完。作者第一次花了一下午,现在有仓库上下文,普遍反馈 15 分钟左右。
方式二:完全手动,环境只要 Python 3,脚本同时给了 .sh 和 .ps1:
| |
使用
装完之后电视的开机界面就换了一块。纯黑底,常用 App 收在底部四个圆角胶囊里,Inputs、Wi-Fi、Settings 三个磨砂按钮压在最下面,顶上是一个慢慢漂移的时钟屏保,并且最重要的是没有推荐位也没有广告位。
启动器本身也挺讲究:包名 com.gathin.tvhome,纯 Java 加 AndroidX RecyclerView,没有重量级依赖,针对 1GB 内存的低端电视做过优化,没有模糊、没有视频、没有网络请求、没有后台服务。主题不用重编译 APK,推一个 config.json 到电视就能换颜色、壁纸、dock 布局和网格列数;其他 TV 应用还可以向启动器申请模块卡片,但必须用户明确授权。界面跟随电视语言,简体中文在列。

想还原也简单。恢复脚本会重新启用列表里的包、把原启动器设回 Home、重置动画缩放,但不会自动卸载新装的启动器,需要手动禁用:
| |
支持范围和坑
支持面比想象中广:所有 Android TV / Google TV 设备理论上都行,examples/ 下已经有约 30 个型号的实测清单,小米 8 款、TCL 7 款、索尼 2 款,还有 NVIDIA Shield、Chromecast with Google TV 4K、Hisense、Philips 这些。型号不在列表也不用慌,PROMPT.md 会自动发现那台机器上的冗余应用,清理完欢迎把列表贡献回仓库。
不支持的也说清楚:三星 Tizen、LG webOS 是另一套系统,ADB 这套玩不转;Fire TV 只能做去广告那一半,Fire OS 不允许第三方启动器接管桌面,类似需求可以看看 dumbtv;部分中国版 TCL 会拒绝安装任何启动器。
几个实操上的坑,从 README 和社区反馈里攒的:
- 顺序不能反:必须先装好新启动器,再禁用原启动器,否则 Home 键会落到工厂测试应用上。
- Google TV 多一步:包名
com.google.android.tungsten.setupwraith要一并禁用,不然设置向导会在原启动器被禁后抢占 Home,搞出崩溃循环。 - 别为禁而禁:广告和遥测尽管清,但 HDMI 输入、键盘这类要想清楚;厂商更新服务禁掉就意味着收不到安全补丁,权衡一下。
- 干完关调试:回开发者选项把 USB debugging 关掉,谁也不想自家网络上常开着一个 ADB 端口。
- macOS 连不上:
adb connect报 “No route to host” 是本地网络隐私策略,换仓库自带的tools/tv.py就行。
写在最后
这个项目最打动我的地方,不是那个仿 Apple TV 的界面,是「禁错了还能退回去」。刷机、root 那套之所以劝退,就是因为一步走错电视就变砖;cleanyourtv 只是把包禁用掉,restore.sh 一跑就复原,试错成本低到可以放心折腾。仓库里那些按型号整理好的 debloat.txt,价值其实不比启动器低。
所以要不要试,先看电视是不是 Android TV 或 Google TV,再看你愿不愿意花半小时陪 AI 折腾一台家电。两个都占,就值得试。动手时别贪,第一遍只清广告和遥测,系统更新、HDMI 输入先留着,用一周没问题再往下走;三星、LG 和国行 TCL 就别硬来了。
电视大概只是个开头。同一套「让 AI 拆开设备、把不要的东西关掉」的玩法,放到路由器、音箱、车机上多半也成立,只是还没人把提示词写出来。等有人写了,我估计还会再折腾一次。
