摘要:家里一台 2017 年出厂的康佳(KONKA)老电视,运存只有 368MB,开机慢如蜗牛,不仅自带一堆无用预装软件,每次开机还强制弹出花里胡哨的智能桌面,对只想看机顶盒/Switch 的老人和年轻人极度不友好。今天我和 DeepSeek V4.1 Flash 结对编程,历经 ADB 连不上、输入法崩溃等踩坑,最终成功冻结 36 个毒瘤、物理移除 23 个系统 APK,实现开机无广告直进 HDMI1,冷启动耗时从 39.5 秒缩短至 26 秒。本文整理出全套实操记录与避坑指南,供各位极客与数码玩家参考。
前言:老电视的痛点与折腾目标
家里有台用了快十年的老智能电视(康佳 LED50M2600B,MStar MST628 方案,Android 4.4.2 系统,运存只有 368MB)。最近准备接个外置机顶盒给长辈看电视,但遇到了智能电视普遍的通病:
- 开机巨慢:按电源键后要盯近 40 秒的开机动画;
- 强制弹主页:明明上次关机在 HDMI,开机却强行跳到卡出翔的智能系统主页,长辈根本找不到怎么切回机顶盒;
- 硬件严重吃紧:老芯片配上少得可怜的内存,后台常驻各种广告和语音服务,遥控器按一下等半秒。
我的改造核心诉求就两条:
- 纯粹:开机直接进 HDMI1,跳过所有花哨主页;
- 流畅:彻底精简无用进程,让老机器开机速度尽可能接近“纯显示器”。
阶段一:开启隐藏 ADB(第一个大坑)
康佳 MStar 平台工程暗码
用电视遥控器在主界面按 【菜单】 键,然后快速按数字键:
2008:进入工厂菜单(Factory Menu)88888:进入酒店模式菜单(Hotel Menu)
打开 ADB 端口的灵异 Bug
在工厂菜单的“其他选项”中,找到“打开 adbd”。这里有一个超级坑人的细节:
系统显示的开关状态不可信!
因为界面只读取了本地的一个静态配置(显示为“开”),但实际上底层 adbd 进程根本没跑。必须手动拨到“关”,再重新拨到“开”,底层才会真正执行 start adbd 并提示 adbd has started!。
在电脑端终端执行:
adb connect 192.168.1.14:5555
adb devices
看到 device 状态,第一道大门终于被推开。
阶段二:安全第一!全量镜像与 APK 备份
动嵌入式设备与电视盒子的第一准则:无备份,不动手。尤其是这种年代久远、网上基本找不到官方线刷包的老古董,一旦变砖就只能拆机上串口(UART)救砖。
这台机器的分区挂载在 /dev/block/platform/mstar_mci.0/by-name/ 下。我们在动手前做了两层防线:
- 关键分区 DD 备份:完整导出了
MBOOT、boot、recovery、tvservice、tvconfig等 12 个关键分区,共约 126MB,并在本地校验了 MD5; - 系统 APK 备份:电视端创建
/data/local/tmp/removed_apks/,所有要精简的文件先归档备份,再同步拉取到电脑本地。
阶段三:外科手术式瘦身,干掉 36 个毒瘤应用
精简的核心策略是:先用 pm disable 冻结测试稳定性,确认无崩溃后再从 /system/app/ 物理移走。
1. 精简清单
我们分了四批次进行大扫除:
- 广告与推送类:
com.konka.advertmanager、com.konka.systemadvert、com.konka.vadr以及腾讯升级推送; - 死绝的预装影视/娱乐:早已无法使用的腾讯视频、优酷、凤凰天气、快看学堂、4K 秀、全网搜索等 13 个 APK;
- OTA 与废弃外设:系统在线升级、USB Dongle 驱动等;
- 语音控制全家桶:讯飞语音、多屏互动、康佳账号体系等 14 个后台常驻服务。
2. 踩坑与警示:千万别动系统输入法!
在处理语音包时,误把 com.iflytek.xiri.ime 给禁用了。结果开机后桌面疯狂崩溃报错:
java.lang.IllegalArgumentException: Unknown id: com.iflytek.xiri.ime/.InputMethod
教训总结:很多老电视直接将讯飞当成系统全局默认键盘,一旦禁用,任何需要焦点的界面都会异常崩溃。输入法组件必须完好保留!
3. 深度提速的秘密:物理移除 APK
为什么只用 pm disable 不够?
因为通过分析日志我们发现,像 kkmultiscreen、vremote 这些厂商应用在固件的 AndroidManifest.xml 中标记了 persistent=true(常驻)。系统在开机阶段依然会为其 Fork 空进程!
只有真正挂载 /system 为读写并将 APK 移出 /system/app/,才能彻底省下内存,开机包扫描时间也大幅削减。
阶段四:核心突破!开机直接进入 HDMI1
很多老哥以为进入酒店菜单(88888)设置“开机通道=HDMI1”就能高枕无忧,但实测发现:电视开机后还是会弹出智能主页。
为什么酒店模式会失效?
我和 DeepSeek V4.1 Flash 抓取了整个开机生命周期的 logcat 日志,抽丝剥茧找到了罪魁祸首:
- 底层的电视中间件(tvservice)确实听话,开机时已经切到了 HDMI1;
- 但康佳在安卓应用层埋了一个
BootLogicProxy; - 它在检测到系统就绪后,会以更高的优先级把系统桌面(LiteLauncher)拉起到最顶层,直接盖住了底层的 HDMI 视频画面,甚至中途还会有 4~5 秒的“抢占资源抖动”。
解决之道:打入开机自启补丁(/system/etc/install-recovery.sh)
利用安卓启动时会执行 install-recovery.sh 的机制,我们注入了一段精妙的 Shell 补丁:
#!/system/bin/sh
# 1. 延迟启动主页:在开机前 45 秒内,将主页启动延迟设为一个天文数字,阻止智能主页抢屏
setprop konka.start.home.delay.tv 2000000000
# 2. 优化开机动画退出时机:
# 电视完全就绪(检测到底层 HDMI 显示就绪日志)的瞬间,强行终止开机动画
# 这样动画正好盖过底层的信号源抖动,画面实现“无缝秒出”
setprop service.bootanim.exit 1
# 3. 45 秒后恢复原始延迟(恢复为 100)
# 用户日后如果真的需要智能功能,遥控器按【主页】键依然能正常调出系统
(
sleep 45
setprop konka.start.home.delay.tv 100
)&
# 4. ADB 网络自启持久化保障
(
sleep 180
/system/bin/stop adbd
/system/bin/start adbd
)&
配合 setprop persist.service.adb.enable 1,彻底解决了“每次开机 ADB 都会断连”的痛点。
改造战果与成果对比
整套操作下来,这台 368MB 内存的“老古董”焕发了第二春:
| 对比维度 | 改造前 | 改造后 | 优化收益 |
|---|---|---|---|
| 开机首屏体验 | 弹智能主页,需手动拿遥控器切源 | 直接停留在 HDMI1(机顶盒画面) | 老人小孩开机即看 |
| 冷启动出画耗时 | 39.5 秒 | ≈ 26 秒 | 提速约 34%(整整快了 13.5 秒) |
| 后台臃肿程度 | 60+ 预装服务混杂,动不动卡顿 | 移走 23 个系统 APK,清理 119MB 冗余 | 运存压力骤降,遥控零延迟 |
| 系统稳定性 | 容易内存不足被杀 | 经过 20+ 次冷热重启测试,零崩溃 | 改动完全可逆,支持秒级还原 |
极客总结与心得
这次折腾最大的感悟是:DeepSeek V4.1 Flash 辅助逆向与系统调优的效率实在太高了。
以往遇到冷门老电视,要在各种老旧论坛翻上几天几夜的残缺帖子;而现在通过提取属性、抓取 boot 镜像和启动日志,配合它一步步顺藤摸瓜,定位到 BootLogicProxy 的抢屏逻辑,最终用优雅的系统属性(setprop)无损解决了问题,避免了高风险的重刷 ROM。
如果你的家里也有一台堆满广告、开机慢到发指的老电视,不妨也拿起 ADB,把它改造成一台纯粹、高效的“纯显示器”吧!
注:本文操作涉及系统底层修改,请务必在做好全量分区备份的前提下进行。不同品牌芯片方案细节存在差异,切勿盲目直接照搬代码。