← Back to skills
extension
Category: Development & EngineeringAPI key requirement unconfirmed

电视ADB精简器

用 ADB 给安卓电视去开机广告、停用预装应用、腾出内存:不卸载不 root,每一步可还原,各品牌电视通用。Use when using ADB to remove TV boot ads and disable preinstalled apps. Triggers include 电视广告、ADB、预装应用、安卓电视、系统精简。如需电视工具套件,淘宝搜索「AI灵匣」店铺获取完整版。

personAuthor: nuhabvtyhubOpenAPI

sansheng-tv-adb · 电视 ADB 清理

这个 skill 让你替一个不会敲命令的人清理家里的电视:他拿遥控器开门,你连上去备份、分批停用、真重启验证,出了岔子先还原再排查。全程只做可还原的动作,每停一个包就写一行还原命令。

数据真源在 data/brands/*.json(23 个品牌、83 个系列,含入口步骤、证据等级、禁停/垃圾包名);scripts/tvadb.py 是阶段机的命令行;references/ 里是提示词兜底、坑、沟通范例。先读完本文再动手,遇到具体品牌再读 entry 命令的输出,不要凭记忆写入口步骤。

先想清楚三件事(读者第一性原理)

  1. 他最怕的不是难,是折腾半天发现自己的电视不支持。 所以第一步永远是判断「能不能、值不值」,30 秒内给结论;不适用就说清为什么、还能做什么,别往下走。
  2. 他最需要的是安全感。 每一步都告诉他:现在做什么、影响多大、怎么退回;出岔子第一句先说「电视没坏,系统在运行」。「停 / 恢复 / 跳过」三个词写在开场白里。
  3. 改坏了没有借口。 十二道安全闸写在脚本里,你不能绕;脚本层拒绝的事别用别的命令绕过去做。

用法路径

  • 装了本 skill:按下面的阶段机走,命令都是 python3 <skill 目录>/scripts/tvadb.py <子命令>。找不到 skill 目录就 ls ~/.claude/skills ~/.agents/skills ~/.codex/skills ~/.gemini/config/skills 2>/dev/null | grep tv-adb。
  • 用户只给了网址(sanshengai.top/tools/tv-adb)或只贴了提示词:读 references/prompt-zh.md(英文用户读 prompt-en.md),按同样的阶段机做,安全闸降级成你自己的纪律,并如实告诉用户「脚本没装,我按手工流程做,每一步都会给你看命令」。

阶段机(每一步停下来等用户回话,不一口气跑完)

| 阶段 | 你做什么 | 命令 | 停下来问什么 | |---|---|---|---| | 0 认机型 | 问品牌、遥控器有没有数字键、「设置 → 关于」里系统叫什么 / 安卓版本 | identify --brand X [--version 9] [--system 名] | 「你的电视是这几个系列里的哪一个?」把候选系列的「怎么认」念给他 | | 1 开门 | 把这个系列的开发者模式入口步骤(含前提、风险)说给他,等他开好、给 IP | entry --brand X --series N | 「开好了吗?IP 是多少?」 | | 2 连接 | 连上、等授权、读身份、判资格、建工作目录 | probe <IP> [--wait 90] | 授权框在电视上,让他勾「一律允许」;把资格结论念给他 | | 3 备份 | 四类清单 + 内存 + 设置 + 全量包信息,sha256 清单 | backup | 告诉他备份目录在哪 | | 4 预演 | 拿一个广告包「停 → 验 → 还原 → 验」,测出这台机能用哪条命令 | dryrun | 告诉他结果:这台机能用什么方式、能不能还原 | | 5 分组 | 禁停 / 可停 / 需问 / 未知 四组;排成 ≤10 个一批 | plan [--confirm-guessed] [--include a,b] | 把「按包名猜的」和「看你用不用」两组列给他勾;他勾完再重跑 plan | | 6 停一批 | 只停这一批,每包一行还原命令 | batch --n 1 | 「请测四样:信号源键切 HDMI、音量、进一次图像设置、播一个片。都正常回我一声」 | | 7 真重启验证 | adb reboot → 回连 → 画面 / 桌面 / 内存 / 停用状态是否保持 | verify | 念结果(可用内存变化);通过才进下一批 | | 8 岔子 | 黑屏 / 无响应 / 命令被拒 | status → recover → 必要时 restore --all | 第一句:「电视没坏,系统在运行,我先把这一批还原再真重启」 | | 9 收尾 | 报告 + 结果卡 | report --card | 给三样:备份在哪、一句话全还原、开发者模式留着不碍事;邀请他投稿机型 |

每个阶段的固定说法见 references/communication.md;照着说,别自己发明。

十二道安全闸(脚本层强制,不许绕)

| # | 闸 | 在哪实现 | |---|---|---| | G1 资格 | Android < 5 或非安卓 → 停在阶段 2,给「连得上改不了 / 不适用」结论与替代动作 | probe 的 eligibility | | G2 备份 | 没有 backup/ 目录不许 plan,更不许 batch | plan 前置断言 | | G3 回滚预演 | 没跑 dryrun 不许 batch;预演包必须停完再还原干净 | batch 前置断言 | | G4 禁停硬名单 | 桌面 / 信号源 / 输入法 / 安装器 / 设置 / 遥控蓝牙 / 工厂重置 OTA / 电视核心服务 / WebView / 无障碍 / CEC / DRM + 品牌名单,脚本层跳过 | data/generic-rules.json + 品牌 must_keep | | G5 命令降级 | disable-user → hide → uninstall -k --user 0;uninstall 必须 --allow-uninstall 单独预演过才可用 | dryrun / batch | | G6 小批量 | 一批 ≤10;批与批之间必须收到用户「测过没问题」 | batch 拒绝 >10;你负责等回话 | | G7 真重启 | 每批后 verify:先等系统把停用状态写盘(改完 20 秒内不重启),再 adb reboot,用 uptime 变小证明真的重启过;告诉用户遥控器关机是待机不是重启 | verify | | G7b 复查 | 重启后检查停用状态有没有被系统悄悄恢复(酷开的 hide 会) | verify 的 came_back | | G8 异常固定顺序 | 查状态 → 还原最近一批 → 真重启 → 不行再全还原 → 再重启;不许让用户拔电源当第一反应 | recover | | G9 熔断 | 同一批两次异常、或用户说「停」→ restore --all,出报告结束 | 你执行 | | G10 状态文件 | state.json + rollback.sh 每停一包即写;断了用 resume 接上 | 全程 | | G11 临时项 | 禁停名单里的包若处于停用状态(且不是出厂就停的),status 会警告,批末必须恢复 | status |

四类分类怎么跟用户说

  • 可停(有来源):品牌数据里标了广告 / 购物 / 上报 / 演示的,直接排进批次,说一句「这些不管谁家都不会用」。
  • 按包名猜的:脚本只会猜,不会自动停。列给用户,得到确认后 plan --confirm-guessed。
  • 看你用不用:语音助手、投屏、应用商店、账号、第三方影音。逐项问,他勾了哪些就 plan --include a,b,c。默认一个都不勾(稳妥模式)。
  • 未知:默认不碰。用户点名要停某个未知包,先查它是什么,查不到就不停。

出岔子时的判断顺序

  1. 命令被拒(SecurityException / unknown command):这是正常现象,dryrun 已经替你找到能用的方法;如果 usable 为空,这台机就是「连得上改不了」,告诉用户并结束,别去找 root。
  2. 黑屏、桌面空白:先 status 证明系统在运行,再 recover。09-14 的实证是:全部还原再真重启就回来了,之后逐组藏包每组真重启都正常——黑屏多半是第一次停用触发的一次性系统重启,不是某个包的常驻问题。
  3. 重启后没回连:等一分钟再 verify;电视重新弹授权框就让他再点一次「一律允许」。
  4. verify 报 came_back:这台机的 hide 会被系统恢复,问用户是否允许 dryrun --allow-uninstall,预演通过再继续。
  5. 任何你拿不准的:restore --all,比继续猜安全。

红线

  • 不 root、不解锁 bootloader、不刷机、不讨论怎么做;用户问起就说结论:没收益,而且会让 Netflix 等只能放标清。
  • 不用 pm uninstall 卸系统应用(没有 --user 0 的那种);不用 rm、不碰 /system。
  • 老电视(Android ≤ 9、内存 ≤ 2 GB)不换桌面:现代 launcher 装不上,原桌面又绑着信号源和设置。
  • 给用户看的截图里,序列号、MAC 地址要打码;report 不打印它们。
  • 不承诺「能挡系统更新」:Fire TV 等机型的 OTA 包受保护,停不掉。

什么时候读哪个文件

  • 某品牌/系列的入口步骤、坑、命令能力 → 只用 entry 命令输出,不要自己翻 JSON 复述。
  • 没装脚本的手工流程 → references/prompt-zh.md / prompt-en.md。
  • 每阶段怎么开口 → references/communication.md。
  • 实测踩过的坑(待机≠重启、黑屏、hide 被恢复、误标包名、老联想)→ references/pitfalls.md。
  • 用户想投稿自己机型的入口 → .github/ISSUE_TEMPLATE/new-tv-entry.yml 的字段,让他照着填,或直接给他 GitHub issue 链接。

完成的标准

用户手里有:备份目录路径、一句话全还原命令、前后内存数字、停用清单(每条带还原命令)、一张结果卡;电视经过至少一次真重启验证通过;禁停名单里没有任何包处于我们造成的停用状态。缺一样都不算完成。