家里这台创维电视(T963 平台,Android 9,Amlogic T5 四核,2GB 内存,24GB 存储)平时主要用飞牛影视看 NAS 上的片。用久了有个想法:能不能开机直接进飞牛,跳过厂商那堆推广位。
折腾了一下午,结论先说:这台机器的开机流程绕不开厂商桌面,我把它禁成了砖两次。
下面是完整的操作路径和踩过的坑。
起点:为什么想换桌面
开机流程是这样的:
开机 → 创维桌面(含开屏广告、推荐位)
→ 手动点飞牛影视图标
→ 进媒体库
两个不舒服的点:每次都要手动找图标;创维桌面上的推广位很碍事。
自然的想法就是:装个第三方桌面,把它设成默认 HOME,让开机直接落到它上面。
第一次尝试:禁掉创维桌面
设备上装了两个第三方桌面做备份:
com.spocky.projengmenu Projectivy Launcher
com.leanbitlab.ltvL LTvLauncher(开源,有 armeabi-v7a 专用包)
ADB 是开着的(电视的调试开关在工厂菜单里,后面细说)。先试组件级禁用:
adb shell pm disable-user --user 0 com.tianci.movieplatform/com.ccos.cooui.movieplatform.MainActivity
结果报错:
Security exception: Shell cannot change component state for
com.tianci.movieplatform/com.ccos.cooui.movieplatform.MainActivity to 3
组件级别被权限挡死了。退一步试包级:
adb shell pm disable-user --user 0 com.tianci.movieplatform
# Package com.tianci.movieplatform new state: disabled-user
成功了。 而且当场验证全是好的:
# 创维桌面启动不了(符合预期)
adb shell monkey -p com.tianci.movieplatform -c android.intent.category.LAUNCHER 1
# → No activities found
# 按 HOME 能回第三方桌面
adb shell input keyevent KEYCODE_HOME
# → 回到 Projectivy
# 第三方应用不受影响
adb shell monkey -p com.trim.tv -c android.intent.category.LAUNCHER 1
# → 飞牛影视正常启动
三项全过,看起来没问题。然后重启。
重启后电视卡在 SKYWORTH logo。
120 秒后状态是:
ping 不通
ip neigh INCOMPLETE(ARP 层都没回应)
路由器设备列表 电视彻底消失
遥控器 完全无响应
遥控器失灵是因为输入服务没起到桌面态。这台机器底部只有一个物理按键,用它进 recovery 恢复了出厂。
恢复:单按键机型的 recovery
这类只有一个物理键的电视,进恢复模式的方法:
1. 拔掉电源
2. 按住机身那个键不放
3. 插回电源,继续按住 10-15 秒
4. 屏幕出现黑底白字菜单后松手
菜单只有三项:
使用U盘或SD卡升级
清除所有数据
重启
光标默认停在「U盘升级」上,没有升级包时选它什么也不会发生,要按「下」键移到「清除所有数据」。
注意:进了 recovery 之后遥控器就能用了,这一层不依赖 Android framework,不用再去摸机身键。
恢复完是出厂状态,所有第三方 App 全没了。
恢复出厂后的第一件事:开 ADB
这里有个容易卡住的点:恢复出厂会把 ADB 调试开关一起清掉。症状是 adb connect 报 Connection refused——不是 No route to host,是设备在线但端口没服务,很容易误判成电视又挂了。
创维的 ADB 开关不在开发者选项里,在工厂菜单:
设置 → 信息 → 遥控器按 上 上 下 下 左 右 左 右
(对,就是魂斗罗那个密码。)
会弹出一个黑底绿字的调试菜单,里面有一堆开关:
单键开关 关
串口模式 关
ADB开关 关 ← 改成「开」
看门狗开关 开 ← 保持开
系统升级
操作Flash_Eeprom
调测恢复
白平衡恢复
开机模式 记忆断电前状态
清除激活数据
把「ADB开关」切成「开」,返回退出,adb connect 就通了。
第二次尝试:这次只禁创维
恢复之后我以为是上次的姿势不对。上次禁了两个桌面(创维 + Projectivy),只剩 LTvLauncher 一个,可能备份不够。
这次做足了准备再试一次:
Projectivy ✓ 启用,验证能独立启动
LTvLauncher ✓ 启用,验证能独立启动
创维桌面 准备禁用
禁用前的完整快照:
默认桌面 com.leanbitlab.ltvL/.MainActivity
无障碍服务 com.leanbitlab.ltvL/.LauncherAccessibilityService
禁用之后当场验证同样全是好的:创维桌面报 No activities found、按 HOME 回第三方桌面、第三方应用正常。
重启。又卡在 SKYWORTH logo。
同样的症状:ping 不通、ARP INCOMPLETE、路由器列表里没有它、遥控器无响应。
根因:不是备份不够,是这个包不能动
两次的结果一致,且第二次只禁了创维一个包、另外两个桌面都完好可用——说明根因不是「备胎不够」,而是 com.tianci.movieplatform 这个包本身承载了开机流程必需的系统组件。
禁掉之后的崩溃发生在 framework 层:网络栈、adb、输入服务全部没起来。这种情况下任何第三方桌面都救不了,因为它们压根没机会被启动。
结论:这台电视不能禁用创维桌面。开机闪几秒厂商界面是它的固有行为,无解。
(有 root 的话可以改系统层绕过,但 Amlogic T5 这类电视专用芯片没有第三方 ROM,刷机失败也没有 USB 救砖退路,不值得。)
正确做法:不动系统包,用无障碍抢 HOME
如果只是想换桌面(而不是彻底消除厂商界面),有安全的办法:不禁用创维桌面,改用第三方桌面自己的无障碍服务在按键层截住 HOME 键。
以 LTvLauncher 为例:
# 先查它的无障碍服务组件名
adb shell dumpsys package com.leanbitlab.ltvL | grep -iA2 AccessibilityService
# → com.leanbitlab.ltvL/.LauncherAccessibilityService
# 启用
adb shell settings put secure enabled_accessibility_services com.leanbitlab.ltvL/.LauncherAccessibilityService
adb shell settings put secure accessibility_enabled 1
实测效果:只设默认桌面(set-home-activity)时按 HOME 还是回创维,因为厂商应用优先级更高;启用无障碍之后按 HOME 立刻回到 LTvLauncher,而且创维桌面一根手指都没碰,随时可退。
验证判据:只能看「按 HOME 后的前台」
cmd package resolve-activity 显示默认桌面是第三方,完全不作数。唯一可信的判据是实际按 HOME 后 dumpsys 里的 ResumedActivity:
adb shell input keyevent KEYCODE_HOME
adb shell dumpsys activity activities | grep -m1 ResumedActivity
两个桌面会打架
如果同时装了 Projectivy 和 LTvLauncher,并且两个的无障碍都开着,HOME 键归谁是不确定的——先注册的赢。
实测发现一个反直觉的现象:即使把 Projectivy 的无障碍关掉,只要它的进程还活着,HOME 键依然被它抢走。强制停止进程之后才归 LTvLauncher:
adb shell am force-stop com.spocky.projengmenu
# 之后按 HOME → 回 LTvLauncher
所以「哪个桌面接管 HOME」和「哪个进程在跑」直接相关,不只是无障碍开关。
开机自动启动应用:延迟是关键
如果想开机直接进某个应用(而不是停在桌面),需要桌面本身支持「开机时自动启动」功能。Projectivy 有这个功能,LTvLauncher(FLauncher 派生)没有。
配置前提是它的无障碍服务必须启用,否则进程在开机时根本不会被拉起,自启逻辑自然不会执行:
adb shell settings put secure enabled_accessibility_services com.spocky.projengmenu/.services.ProjectivyAccessibilityService
adb shell settings put secure accessibility_enabled 1
然后是延迟。这一步不看日志根本想不到:
16:34:31 目标应用启动(SplashActivity)
16:34:37 WiFi 才连上(CONNECTED)
应用比网络早启动 6 秒,扫不到局域网里的媒体服务器,直接停在「选择服务器」页面,然后被厂商桌面顶到后台。
解决办法是把启动延迟调大。延迟滑杆在设置界面里只能用遥控器左右方向键调,input tap 点不动:
Projectivy 设置 → 电源 → 自动启动延迟
调到 25 秒
25 秒对 6 秒的 WiFi 就绪时间有充分富裕。
一堆只有真上手才会遇到的坑
APK 从哪拿
| App | 来源 |
|---|---|
| Kodi | mirrors.kodi.tv/releases/android/arm/,注意文件名是 armeabi-v7a 不是 armv7a |
| Projectivy | GitHub spocky/miproja1/releases |
| BBLL(B 站第三方无广告) | GitHub xiaye13579/BBLL/releases |
| Emby / Spotify TV | apkpure 的下载接口 |
apkpure 有个反直觉的点:它的网页版有 Cloudflare 挑战,无头浏览器也过不去,但下载接口直接连就能拿到:
curl -sL -A "Mozilla/5.0 (Linux; Android 9) AppleWebKit/537.36" \
-o out.xapk "https://d.apkpure.com/b/XAPK/<包名>?version=latest"
必须带 -L(先 302 再 200),不带只能拿到 415 字节的 HTML。
XAPK 不是普通 APK
下载到的 .xapk 解压后是多个 split 包,主包必须和 native 库、语言包、资源包一起装:
unzip -o -q app.xapk -d d/
adb install-multiple -r d/主包.apk d/config.armeabi_v7a.apk d/config.zh.apk d/config.xhdpi.apk
只装主包会显示 Success,但缺 native 库和资源,启动异常。
自绘 UI 是 adb 的死角
不是所有界面都能用 adb 点。判断方法很简单——这两个现象同时成立就放弃:
uiautomator dump 报 could not get idle state,或只拿到状态栏
input tap / keyevent 完全不改变界面状态
这次遇到三个这样的界面:Emby 的 Connect 配对页、Projectivy 的设置面板、飞牛影视的登录页。Emby 那个页面我把 tap、swipe、DPAD、ENTER、TAB、BACK、MENU 全试了一遍,一个都不起作用。
这类界面只能人工操作。 试两轮不成就转人工,不要耗在按键组合上。
官方 App 的下载链接带签名
飞牛 TV 的官网下载页 HTML 里埋着全部 APK 文件名:
https://.../app/FNTV_1.4.2_<build>.apk
但直接 curl 一律 403 Forbidden——需要 ?sign=<32位hex>&t=<时间戳> 服务端签名。签名推不出来(试过 md5/sha1/sha256 × 各种拼接,全不命中,复用别的包的签名也被拒)。
唯一可行路径是扫码:二维码里就是带签名的完整 URL。
两个包名差一个字母
com.trim.tv 飞牛TV 49MB ← 电视端要这个
com.trim.media 飞牛播放器 72MB ← 手机/平板版
后者也能装上、进程也能起来,但界面不适配遥控器,启动后直接退回桌面,logcat -b crash 里没有任何记录。装完必须验证前台是不是它本身,不能只看 install Success。
最后的注意事项清单
关于禁用系统应用
✗ 不要禁用厂商桌面包 会导致开机 framework 层崩溃,只能恢复出厂
✗ 不要以为"备用桌面够多就安全" 禁掉的包承载开机流程,备用桌面没机会启动
✓ 要换桌面,用第三方桌面的无障碍服务抢 HOME 键
✓ 每改一项立刻验证,别一次做到位
关于恢复
✓ 恢复出厂后 ADB 会关闭,要去工厂菜单重新打开
✓ 工厂菜单入口:信息界面按 上上下下左右左右
✓ 单按键机型:拔电 → 按住机身键 → 插电 → 按住 10-15 秒进 recovery
✓ 进了 recovery 遥控器就能用(不依赖 framework)
关于自动化
✓ 自绘 UI 试两轮就放弃,转人工
✓ 判断依据:uiautomator 拿不到控件 + 所有按键无效
✓ 开机自启的延迟一定要大于 WiFi 就绪时间(实测 6 秒,设 25 秒)
收尾
这台电视现在的状态:
飞牛影视 已装已登录,开机自动启动
Projectivy 桌面 + 负责自启
LTvLauncher 备用桌面
创维桌面 保持启用(碰它就变砖)
开机流程 闪几秒厂商界面 → Projectivy → 自动进飞牛媒体库
两次变砖的代价是恢复出厂两次,所有 App 重装两遍。但这套流程现在是确定的、可复现的——下次再动这类设备,知道哪些线不能踩。
最后一句:在没有 root、没有第三方 ROM、没有 USB 救砖退路的设备上,任何改动系统包的念头都先放一放。厂商桌面丑是丑,但它能开机。
