CleanYourTV 这类工具通常把两件事放在一个入口里:清广告缓存、处理预装应用。用户看到“清理”按钮就动手,结果不确定删掉的是临时缓存还是常驻应用,电视重启后又出现广告,或者某个系统功能失效。稳妥的做法是先分清广告来源是缓存文件还是常驻应用,再用包名和安装路径判断哪些属于系统预装、哪些是用户后来安装的,最后按“先禁用、再观察、后卸载”的顺序推进,并保留可恢复的白名单。
清广告和清预装不是一回事。广告多以缓存文件、配置文件或某个预装应用内置的展示模块出现,删除前先用pm list packages和dumpsys package确认包名、安装路径和是否系统应用;能禁用就不急着卸载,重启观察桌面、设置、遥控器是否正常,再把仍需保留的包名写回 CleanYourTV 的白名单。判断边界是:只删除你能对应到具体包名和路径的目标,不确定的包先保留。
先查看电视上广告来源是缓存文件还是常驻应用
电视上的广告大致分两类。一类是应用运行时拉取的贴片、开屏,缓存落在应用私有目录或公共缓存目录,清掉缓存后广告可能暂时消失,但应用再次联网又会拉回来;另一类是某个预装应用本身常驻,负责展示推荐位、开机画面或桌面横幅,这类广告不是删缓存能解决的,需要处理对应应用。动手前先用 ADB 连上电视,列出已安装包,再逐个看关键包的来源。
adb connect <电视IP>:5555
adb shell pm list packages
adb shell dumpsys package <包名>
在 dumpsys package 的输出里,重点看 codePath、flags、versionName 和是否为系统应用。codePath 落在 /system、/product、/vendor 下的,通常是预装;落在 /data/app 下的,通常是用户后来安装的。再看包名里是否带有厂商前缀或明显的业务词,比如桌面、视频、商店、开机引导。清缓存的操作可以通过应用内的“清除缓存”完成,也可以结合 adb shell pm clear <包名>,但 pm clear 会清掉该应用全部数据,包括登录状态,执行前要确认这个应用是否还需要保留配置。判断广告来源的通用方式是:清缓存后重启电视,如果广告重新出现,更可能是常驻应用或联网拉取;如果只在特定界面出现,先怀疑该界面所属的应用。
区分系统应用(-s)和用户应用(-3)的包名列表
ADB 的 pm list packages 支持按安装位置过滤,-s 列出系统应用,-3 列出用户安装的应用,-d 可以列出已禁用的包。先把两类列表分别导出,再按包名前缀归类,比在完整列表里逐个翻要清楚。
adb shell pm list packages -s > system_packages.txt
adb shell pm list packages -3 > user_packages.txt
adb shell pm list packages -d > disabled_packages.txt
输出格式是 package:包名,用文本工具按 . 分段,就能看出厂商前缀、业务模块和第三方应用。桌面相关的包名通常含 launcher、home;视频相关的含 video、tv、player;商店相关的含 store、market、appstore;设置和系统 UI 相关的包名往往带 settings、systemui、provider。这里要提醒:系统应用列表里也会混入厂商定制但并非核心功能的模块,用户应用列表里也可能有系统预装的更新版本被放到 /data/app,所以不能只凭 -s / -3 的结果就下结论,要结合 dumpsys package 里的路径再确认一次。
按“先禁用后卸载”的顺序处理预装应用
直接卸载预装应用的代价是恢复麻烦,尤其在没有原厂固件包的情况下。更稳的顺序是先用 pm disable-user 禁用,重启电视观察一段时间,确认没有影响再考虑卸载。禁用命令针对当前用户执行,不会立即删除 APK,出问题时可以用 pm enable 恢复。
adb shell pm disable-user `--user` 0 <包名>
adb shell pm enable <包名>
执行禁用后重启电视,重点观察三件事:桌面是否还能正常加载、设置项是否还能打开、遥控器按键是否响应。有些厂商的桌面和设置依赖同一个服务包,禁用后可能出现桌面空白或设置闪退,这时候用 pm enable 恢复,再换下一个包。确认无影响后再卸载,卸载命令通常是 adb shell pm uninstall `--user` 0 <包名>,它移除的是当前用户的安装,系统分区里的原始 APK 一般还在,恢复时可以重新安装或用 cmd package install-existing 尝试恢复。是否需要走到卸载这一步,取决于该包是否持续占用资源或频繁展示广告,能禁用达到效果就不必卸载。
用 CleanYourTV 的清单对比手工清单
CleanYourTV 通常会给出待清理的应用列表,或在配置文件里维护包名过滤规则。把这份清单和自己整理的系统应用、用户应用分类逐项对照,是避免误伤的关键一步。做法是先导出工具的输出,再和自己保存的 system_packages.txt、user_packages.txt 做集合对比,标出两边都认为可以处理的重叠部分,以及只出现在工具清单里的包。
# 工具输出的待清理包名,示例格式
com.vendor.recommend
com.vendor.adservice
com.vendor.videohub
# 与手工清单对比时,重点看只出现在工具清单中的包
comm -13 <(sort system_packages.txt) <(sort cleanyourtv_list.txt)
只出现在工具清单里的包要单独确认:它是不是桌面、设置、输入法、遥控器服务这类基础组件,是否被其他应用依赖。如果工具把某个桌面相关的包列为可清理,而你的手工分类里它属于关键包,就以手工判断为准,把该包加入白名单或过滤规则。工具清单更新的节奏和电视固件不一定一致,逐项比对比直接全选清理更可控。
清理后验证广告是否消失且系统功能正常
清理完成后的验证要同时覆盖广告效果和系统稳定性,不能只看广告有没有了。先打开之前有贴片或开屏广告的应用,确认广告位是否还在;再检查桌面、设置、遥控器、输入法、应用商店这些基础入口是否正常。如果有多个用户账户,建议在每个账户下都试一遍,因为 `--user` 0 的禁用只影响主用户。
- 打开此前出现广告的视频应用或桌面推荐位,观察是否还有贴片、横幅或开屏。
- 返回桌面,确认图标排列、文件夹、快捷入口没有丢失。
- 进入设置,检查网络、显示、声音、账户等常用项能否打开。
- 用遥控器测试方向键、确认键、返回键、主页键和音量键。
- 重启电视一次,确认上述状态在重启后仍然正常。
验证过程中如果发现某个包被误禁用,用 pm enable 恢复并记录包名。最终把仍需保留的包名写回 CleanYourTV 的白名单或过滤配置,同时保留一份手工清单,方便下次固件更新后重新核对。广告是否彻底消失,取决于它来自缓存还是常驻应用:缓存类清理后可能复发,常驻应用类禁用或卸载后才会稳定;具体到每一台电视,还需要结合当时的包列表和实际页面行为确认。