前阵子搞了个创维E900-S盒子,运营商定制系统,桌面广告多、应用装不上、还经常提示存储不足,实在忍不了。本想拆机短接刷机,一看螺丝孔位和卡扣设计,瞬间打消念头。后来折腾出一条不用拆机、不用短接、全程靠ADB命令把当贝桌面刷进去的路子,实测稳定用了两个多月,开机直接进当贝,应用随便装,系统干净利落。
这篇教程就是把当时踩过的坑、试错的过程、最终可行的那套命令全部整理出来。创维E900-S用的是海思Hi3798MV100芯片,这芯片方案的盒子有个特点:ADB调试口没有完全锁死,给了我们免拆操作的空间。整个过程大概二十分钟,只需要一个电脑、一根网线(或者同一个WiFi)、一根双头USB线,再加上本文附带的固件包和命令梳理,就能完成。
这篇方案不只是给创维E900-S用,同芯片方案的其他盒子有很大概率也能参考(后面会说怎么判断)。新手也不用怕,每一步我都会解释为什么要这么做、出现什么提示才算正常、命令执行后返回什么结果是成功的标志,保证是保姆级操作。
1. 免拆刷机的底层逻辑:为什么要用ADB、它解决了什么问题
在动手之前,先搞清楚这套方案的原理,不然执行命令的时候心里没底,遇到报错也不知道怎么处理。
1.1 盒子刷机的三条路:拆机强刷、短接、ADB
安卓机顶盒的刷机方式大体分三类。
第一类是拆机强刷,把盒子主板拆出来,在Flash芯片周围找到短接点或强刷按键,配合U盘里的刷机包完成刷写。这种方式最彻底,能刷底层分区,但风险也最高,手一抖可能把主板搞废。创维E900-S这盒子外壳用卡扣加胶条结构,拆一次基本就会留下痕迹,而且强刷包版本选错的话,分区表一乱,盒子就需要返厂。
第二类是短接刷机,网上很多教程教你在主板背面短接两个触点进烧录模式,配合HiTool工具烧录。这种方法适合海思方案的开发调试,但需要拆机、需要驱动、需要对应版本的HiTool,门槛更高一些。
第三类就是本文要讲的ADB免拆刷机,不需要打开外壳,利用安卓系统自带的ADB调试接口,通过命令来替换桌面、禁用原系统组件、推送应用。这种方法没有底层分区的风险,操作错了也基本不会变砖,最多就是桌面起不来,重新用ADB改回来就行。
1.2 为什么创维E900-S适合免拆ADB方案
创维E900-S作为运营商定制盒子,系统基于Android 4.4.2定制,海思Hi3798MV100芯片。这类盒子有几个特点:系统封闭但ADB端口没有强行关闭、支持无线ADB调试、厂商为了运维方便保留了较高的调试权限(部分版本甚至可以直接adb root)。
这意味着从电脑端通过ADB连接盒子后,我们能拿到系统级别权限,包括替换系统应用、修改系统设置、禁用原桌面。不需要破解Bootloader,不需要刷recovery,不需要修改底层分区。对于只想换个桌面、装点应用、去广告的用户来说,这是最安全、最稳妥的方案。
1.3 本方案的整体执行路径
在开始敲命令之前,先在脑子里过一遍整体流程,你是从一个运营商定制系统变成当贝桌面系统的,中间要做下面几件事:
- 打开盒子上的ADB调试开关,让它处于可被连接的调试状态。
- 确认盒子IP,让电脑和盒子处于同一局域网内,建立无线ADB连接。
- 通过ADB命令确认当前系统版本、桌面包名、root权限情况。
- 将从官网下载的当贝桌面APK推送到盒子内部存储,并安装成系统应用。
- 禁用原系统桌面,让系统开机后默认进入当贝桌面。
- 清理系统内置的无用应用和广告推送服务,优化内存占用。
每个步骤都有对应的命令,每一条命令我都会标注执行后应该看到什么,方便大家判断是否执行成功。
2. 准备阶段:工具、固件包、环境搭建
刷机这件事,准备工作做得好,后面操作就是按部就班,准备工作没做好,中途容易反复试错。这一节把所有需要准备的东西和验证方法都列清楚。
2.1 硬件和软件清单
硬件方面需要准备:
- 创维E900-S盒子一台(系统能正常开机、能进设置界面即可)。
- 电视机或显示器一台,用来操作盒子和查看结果。
- 电脑一台,Windows系统即可(Win7/Win10/Win11都支持,下面命令都一样)。
- 网线或路由器。盒子用网线插到路由器上,或者无线连接同一个WiFi,电脑也连到同一个网络下。网线连接更稳定,推荐优先用网线。
- 双头USB线(可选),有些盒子的ADB开关隐藏在系统设置里,不需要数据线;但如果你的盒子版本把ADB开关隐藏得很深,用双头USB线通过电脑直接连接会多一个操作路径。大部分情况下不需要,本文以无线连接为主。
软件方面需要准备:
- ADB工具包,即Android Debug Bridge命令行工具。网上能下载到Google官方platform-tools,也可以下载集成好的ADB工具包。下载后解压到电脑某个目录,比如
D:\adb,这个目录后面会反复用到。 - 当贝桌面APK安装包(本文附带的固件包里有,也可以去当贝官网下载最新版)。
- 一个文本编辑器(记事本就行),用来保存命令,方便批量执行。
2.2 固件包的选择与验证
固件包这个名词在刷机领域有点模糊,有的是指整包线刷固件,有的是指单个APK安装包。本文说的固件包,特指当贝桌面安装包和可能用到的原桌面备份包。
当贝桌面APK的选择有一个重要原则:不要下载太老的版本,也不一定追求最新版,而是选择兼容Android 4.4系统的版本。因为创维E900-S原系统是Android 4.4.2,最新的当贝桌面如果targetSdkVersion太高,在老旧系统上可能闪退。经过实际测试,当贝桌面3.x系列在Android 4.4上运行很稳定,当然官方最新版如果在4.4上运行有问题,可以换个版本再试。
下载完成后,用下面方式验证APK文件是否完整、架构是否匹配:
# 把apk放到D:\adb目录下,然后执行 D:\adb>adb version D:\adb>adb devicesAPK文件的验证可以通过解压软件打开,查看lib目录下是否有对应的so文件。创维E900-S是32位ARM架构,如果APK里面只有arm64-v8a的so文件,在这个盒子上是跑不起来的。当贝桌面官方版本一般会包含armeabi-v7a或armeabi目录,兼容32位系统,风险不大。
2.3 ADB工具包的环境配置
ADB工具不需要复杂安装,解压即用。但为了方便,建议将ADB所在目录加入系统环境变量PATH,这样不用每次切换到工具目录执行命令。
具体操作方法:右键“此电脑” → 属性 → 高级系统设置 → 环境变量 → 在“系统变量”里找到Path → 编辑 → 新建 → 填入你ADB工具解压的路径(比如D:\adb) → 确定。
配置好之后,新开一个命令行窗口,输入adb version,能输出版本号就说明成功了。这一步很关键,后面所有操作都依赖ADB工具正常运行。
2.4 网络环境的准备
盒子和电脑必须处于同一个局域网,否则ADB连接不上。两种常见方式:
- 路由器有线连接:盒子网线口插到路由器LAN口,电脑WiFi或者网线连到同一路由器。这种连接最稳定,IP不会因为无线信号波动而变化。
- 无线连接:盒子连WiFi,电脑也连同一个WiFi。这种方式要注意,有些路由器开了AP隔离(即无线设备之间不能互相访问),会导致ADB连接失败。遇到连接失败时先检查路由器设置,把AP隔离关掉。
组网完成后,记录一下路由器的IP网段,比如192.168.1.x,后面确认盒子IP的时候就能快速比对。
3. 核心操作全流程:开启ADB、连接盒子、刷入当贝桌面
这一节是整篇教程的重头戏,每一步都是实操过的。我按照实际操作顺序来写,每个环节都给出命令、预期输出、异常排查。
3.1 第一步:打开盒子的ADB调试开关
打开盒子电源,等待系统进入原始桌面(一般是联通或创维的定制桌面)。拿起遥控器,依次进入“设置” → “更多设置” → “开发者选项”,如果能看到ADB调试相关的选项,直接打开即可。
但很多运营商定制的创维E900-S系统里,“开发者选项”默认是隐藏的。这时候需要通过遥控器组合键来唤起。
我这里提供一个在创维E900-S上实测可行的开启方式:进入“设置” → “关于” → 在“版本号”上连续按遥控器OK键7到10次,系统会提示“已进入开发者模式”,退回上一级菜单就能看到“开发者选项”。
如果这个方法在你的盒子上不生效,可以用下面这个备选方案,在系统设置里找到“USB调试”或“ADB调试”,如果被置灰或者隐藏,尝试连接一根双头USB线到电脑,系统会自动检测设备并可能弹出USB调试授权窗口,在盒子上用遥控器确认允许调试。
有些地区版本的E900-S把ADB开关放在“设置” → “其他设置” → “调试”菜单下,进去后能看到“ADB调试”和“网络调试”两个开关。建议把这两个都打开,尤其是“网络调试”,因为我们要靠它在局域网内连接。
区分版本有一个小技巧:看系统桌面图标风格。老版本系统桌面是一排图标密集排列,新版本是磁贴风格。不同桌面的设置菜单位置略有差异,但“开发者选项”和“版本号”这两个入口基本都在“关于”页面内。
3.2 第二步:确认盒子IP地址
ADB无线连接的前提是知道盒子的IP地址。查询方式有三种。
第一种,在盒子“设置” → “网络”里查看当前连接的IP地址,如果是网线连接,一般在“有线网络”页面里显示,如果是WiFi连接,在“无线网络”页面里显示。记下这个IP,比如192.168.1.123。
第二种,在路由器后台查看设备列表,找到设备名为“E900”或“Hi3798”的条目,查看它的IP。这种方法在电脑上操作最方便。
第三种,直接用ADB命令查询,前提是盒子已经连接过并且当前还在连接状态(后面会讲到连接命令),执行:
adb shell ip addr show命令输出里inet后面的地址就是当前IP。
3.3 第三步:建立ADB连接
电脑上确认ADB工具可用后,先启动ADB服务:
adb start-server然后尝试连接盒子。如果你打开了网络调试,可以直接通过IP连接:
adb connect 192.168.1.123:5555端口5555是ADB的默认调试端口,大多数盒子都使用这个端口。也有部分定制系统使用其他端口,如果连接超时,尝试加上其他端口,比如adb connect 192.168.1.123:5555不行就试adb connect 192.168.1.123:6667,但E900-S实测默认5555即可。
连接成功的标志是命令行返回connected to 192.168.1.123:5555。如果返回cannot connect to 192.168.1.123:5555: 由于目标计算机积极拒绝,无法连接,说明盒子上的ADB服务没有开启,回到第一步重新确认开关状态。
连接成功后,执行:
adb devices输出列表中会出现192.168.1.123:5555 device,注意device前面可能带unauthorized字样。如果是unauthorized,说明盒子屏幕上弹出了授权确认框,需要用遥控器点击“允许USB调试”或勾选“始终允许”。这一步很多人会忽略,导致命令一直提示无权限。
3.4 第四步:获取root权限并验证
连接建立后,下一步是获取root权限。这一步非常关键,因为我们要修改系统分区中的应用文件,没有root权限是无法写进/system/app目录的。
执行命令:
adb root这条命令会让ADB服务以root权限重新启动。如果盒子系统允许root(很多定制系统开发阶段保留了root),命令行会输出:
adbd is already running as root或者:
restarting adbd as root这就说明root成功。之后断开重连一次:
adb connect 192.168.1.123:5555重新连接后,再执行:
adb shell进入Shell后,输入id命令,如果输出uid=0(root)说明我们已经是root用户了。
个别固件版本执行adb root会提示adbd cannot run as root in production builds,说明这个固件是正式版,屏蔽了root。遇到这种情况不要慌,尝试另一种方式:
adb shell adb shell su如果shell中执行su后提示符变成#,说明系统内置了su授权工具,也能拿到root权限。如果两种方式都拿不到root权限,后面替换系统应用的方案就没法执行,只能退回到桌面安装方案(仅安装当贝桌面但不禁用原桌面,开机后手动启动当贝桌面)。
3.5 第五步:查看系统信息并备份原桌面
拿到root权限之后,先看一下系统的基本信息,确认分区挂载情况:
adb shell cat /proc/version adb shell cat /system/build.prop | grep ro.product.model查看当前桌面应用的包名。这一步很重要,因为不同版本系统的桌面包名不一样,禁用时要精准定位,不能误禁其他应用。常见桌面包名有:
com.coship.apptvd(创维自研桌面)com.unionman.smarttv(部分联通定制版)com.hisense.launcher(少量版本使用)com.android.launcher(原始安卓桌面)
查看当前正在运行的桌面应用:
adb shell pm list packages | grep -i launcher adb shell pm list packages | grep -i desktop这两条命令分别列出包名中包含launcher和desktop的应用,一般就能定位到原桌面。同时再执行:
adb shell dumpsys activity activities | grep mResumedActivity这条命令会显示当前处于前台的Activity,其中包名/Activity名一目了然,比如com.coship.apptvd/.MainActivity,就说明当前桌面就在这个包名下。
在替换之前,建议先把原桌面APK备份出来,万一以后要还原:
adb shell pm path com.coship.apptvd这条命令会返回类似package:/system/app/xxx/xxx.apk的路径,然后执行:
adb pull /system/app/xxx/xxx.apk D:\adb\backup\备份原桌面APK文件,这就相当于给原系统留了一张“还原本”,后续如果反悔了能装回去。
3.6 第六步:推送并安装当贝桌面
接下来把下载好的当贝桌面APK推送到盒子并安装。首先确认电脑上APK文件的完整文件名和路径,假设在D:\adb\dbzm.apk。
先以普通方式安装一次,这种方式安装的当贝桌面作为用户应用,不需要root权限,先确保当贝桌面APK本身能在盒子上正常安装和运行:
adb install D:\adb\dbzm.apk安装成功的标志是命令行返回Success。如果提示INSTALL_FAILED_OLDER_SDK,说明APK要求的系统版本比盒子系统高,需要更换兼容Android 4.4的低版本当贝桌面。
安装完成后,先把当贝桌面启动起来看看效果:
adb shell am start com.dangbei.tvlauncher电视上应该会切到当贝桌面界面,首次使用会进行初始设置,选择壁纸、安装推荐应用等,正常完成即可。
确认当贝桌面能正常使用后,接下来把它提升为系统应用。为什么要提升为系统应用?有两个原因:其一,系统应用不会被系统自动清理,稳定性更好;其二,只有把原桌面禁用后,系统启动时才会在系统应用中找到当贝桌面作为默认桌面。
具体操作思路是:先查看原桌面的APK路径,比如package:/system/app/xxx/xxx.apk,那么/system/app/xxx/目录就是原桌面所在的目录。把当贝桌面APK复制到系统应用目录下。
首先重新挂载系统分区为可写:
adb remount如果执行成功,返回提示remount succeeded。执行失败的话,可以手动挂载:
adb shell mount -o rw,remount /system然后复制当贝桌面APK到系统目录。推荐复制到/system/app/下新建的dangbei文件夹内(不同系统对应用目录的识别规则不同,Android 4.4即支持扁平目录也支持子目录,实际情况以系统识别为准):
adb shell mkdir /system/app/dangbei adb push D:\adb\dbzm.apk /system/app/dangbei/dbzm.apk如果是在adb shell操作,也可以用cp命令把系统已有的apk拷过去,但用push一步到位更方便。
复制完成后给APK设置正确的权限,否则系统不认这个应用:
adb shell chmod 644 /system/app/dangbei/dbzm.apk然后退出shell,重启盒子让系统识别新安装的系统应用:
adb reboot重启后盒子系统会发现/system/app/dangbei/dbzm.apk,将其作为系统应用加载。
3.7 第七步:禁用原桌面
盒子重启后,等待系统进入桌面。这时候系统可能还是原来的定制桌面,因为原桌面还在系统应用列表里,没有冲突。接下来禁用原桌面,让系统在启动时找不到其他桌面,只能使用当贝桌面。
执行禁包命令前,先确认原桌面包名。以com.coship.apptvd为例:
adb shell pm disable-user --user 0 com.coship.apptvd如果命令执行成功,命令行返回Package com.coship.apptvd new state: disabled-user。
禁用后,按遥控器Home键,系统会弹出选择桌面的窗口,选择当贝桌面并勾选“始终”即可。如果这时候系统没有弹窗而是直接进入了当贝桌面,那就更省事。
需要注意,有些E900-S的定制系统里,除了桌面应用,还有一个配套的“系统服务”应用(包名类似com.coship.system),如果不一起禁用,原来的桌面界面可能还会残留,虽然主桌面是当贝,但偶尔会闪回原系统的设置页面。这种情况按需处理,如果是广告推送类服务,找到对应包名一并禁用。后面会在常见问题里展开。
3.8 第八步:清理无用应用和优化系统
桌面替换完成后,顺手把原系统里那些用不上的运营商应用、广告组件清理一遍,这也是这次刷机的主要目的之一。
查看所有已安装的第三方应用:
adb shell pm list packages -3这条命令列出所有用户安装的应用。对于系统内置的运营商应用,使用:
adb shell pm list packages | grep -i operator adb shell pm list packages | grep -i unionman adb shell pm list packages | grep -i coship把识别出来的无用应用禁用,比如:
adb shell pm disable-user --user 0 com.unionman.ads adb shell pm disable-user --user 0 com.coship.video禁用操作本质上是“保留在系统中但不运行、不更新、不启动”。相比直接卸载,禁用的好处是系统升级或恢复出厂设置后不会因为缺少依赖而报错,想恢复时再执行pm enable即可。
清理完成后,使用adb shell pm list packages再次检查,确保当贝桌面包名com.dangbei.tvlauncher在列表中。
最后重启一次:
adb reboot重启后,系统应该直接进入当贝桌面,不再出现原定制桌面。
4. 完整命令速查表与一键执行方案
为了方便操作,这一节把整个流程的命令汇总成一份速查表,并附上在电脑上批量执行的思路。新手可以把命令复制到记事本里,按行执行,每执行一行对比一次预期结果。
4.1 命令速查表
| 操作阶段 | 命令 | 预期效果 |
|---|---|---|
| 启动ADB服务 | adb start-server | 服务启动成功 |
| 连接盒子 | adb connect 192.168.1.x:5555 | 返回connected |
| 查看设备 | adb devices | 设备状态为device |
| 获取root | adb root | 提示adbd is already running as root |
| 重新连接 | adb connect 192.168.1.x:5555 | 返回connected |
| 进入shell | adb shell | 命令行提示符变为 # |
| 查看当前桌面 | adb shell dumpsys activity activities | grep mResumedActivity | 显示当前前台Activity |
| 备份原桌面 | adb shell pm path 包名然后adb pull 路径 本地目录 | 本地目录出现APK文件 |
| 安装当贝桌面 | adb install D:\adb\dbzm.apk | 返回Success |
| 启动当贝桌面 | adb shell am start com.dangbei.tvlauncher | 电视切换至当贝桌面 |
| 重新挂载系统 | adb remount或adb shell mount -o rw,remount /system | 返回remount succeeded |
| 创建目录 | adb shell mkdir /system/app/dangbei | 无报错 |
| 推送APK到系统 | adb push D:\adb\dbzm.apk /system/app/dangbei/dbzm.apk | 显示传输速度和成功信息 |
| 设置权限 | adb shell chmod 644 /system/app/dangbei/dbzm.apk | 无报错 |
| 禁用原桌面 | adb shell pm disable-user --user 0 原桌面包名 | 返回new state: disabled-user |
| 禁用广告应用 | adb shell pm disable-user --user 0 广告包名 | 返回new state: disabled-user |
| 重启盒子 | adb reboot | 盒子重启 |
4.2 一键执行脚本方案
如果嫌一条条命令输入太麻烦,可以把核心命令写成一个批处理脚本,在电脑上双击执行。下面给一个Windows下的批处理脚本参考:
@echo off set /p IP=请输入盒子IP地址: adb start-server adb connect %IP%:5555 adb root timeout /t 3 adb connect %IP%:5555 adb shell pm list packages | findstr /i "launcher" pause保存为adb_connect.bat,双击运行,输入盒子IP就能自动连接并列出桌面包名。后面根据输出的包名,再执行禁用操作。
不过我要提醒一下,脚本能省事,但也容易掩盖问题。新手第一次接触ADB时,建议还是逐条执行命令,每执行一条就看一下输出结果,这样出了问题能第一时间定位到具体环节。等熟练了再考虑一键脚本。
4.3 固件包与当贝桌面的存放位置建议
在电脑上创建专门的刷机工作目录是一个好习惯。我的工作目录结构供参考:
D:\adb\ ├── adb.exe ├── AdbWinApi.dll ├── AdbWinUsbApi.dll ├── dbzm.apk // 当贝桌面安装包 ├── backup\ // 原桌面APK备份目录 └── tools\把固件包和工具放在同一个目录下,路径短、好记,执行命令时不需要频繁切换路径,也能减少路径错误导致的低级问题。
5. 常见问题排查与避坑指南
刷机过程中最容易出问题的不是命令本身,而是各种环境因素和版本差异。这一节把常见报错和解决方案整理成速查形式,遇到问题直接对照处理。
5.1 连接不上:ADB连接失败的5种原因
连接失败是最常见的问题,这里按概率从高到低排列原因和解决办法。
第一种,盒子没有打开ADB开关。这是最常见的原因。盒子端的ADB调试开关没有打开,或者打开了但网络调试没有开启。回到盒子的设置菜单,重新确认开关状态。
第二种,盒子和电脑不在同一网段。路由器开了DHCP但是分配了不同网段,或者手机热点代理连接导致IP不一致。在电脑上执行ipconfig查看电脑IP,再和盒子IP对比,确认前三位数字一致。不一致的,通过路由器管理界面把盒子IP地址改成和电脑同一网段,或者直接用网线让盒子连接路由器LAN口。
第三种,路由器开启AP隔离。前面提到过,部分路由器安全设置里默认开启“无线隔离”,导致无线设备之间无法互相访问。到路由器管理后台找到“AP隔离”或“无线隔离”选项,关闭它。
第四种,ADB服务端口被占用。执行adb kill-server,再执行adb start-server,然后重新连接。有些杀毒软件会拦截ADB服务的网络访问,检查防火墙设置,放行ADB相关的端口和服务。
第五种,盒子ADB端口不是默认5555。部分区域定制版本修改了ADB调试端口。在盒子上执行getprop | grep adb可以查看ADB相关属性,或者cat /proc/net/tcp查看监听端口。如果发现端口不是5555,在adb connect时带上正确端口即可。
5.2 提示device unauthorized,需要什么操作
连接后执行adb devices,如果看到unauthorized字样,说明盒子上弹出了USB调试授权的确认窗口,需要用遥控器选择“允许”并勾选“始终信任该计算机”。如果盒子屏幕上看不到弹窗,尝试按下遥控器Home键返回桌面再重新进入设置,有时候弹窗会被系统界面挡住。
还有一种情况是盒子已经授权过,但系统时间不对导致授权失效。这种情况比较少见,如果反复授权都不行,恢复一下盒子出厂设置,再重新操作。
5.3 adb root失败或提示cannot run as root
前面提到过,这属于固件版本差异。执行adb root提示adbd cannot run as root in production builds,说明这个固件是正式发行版,关闭了root调试入口。
可以尝试adb shell进入shell后执行su。如果固件内置了root工具,su命令会直接切换到root用户。如果没有root工具,可以尝试临时推送一个root工具到系统临时目录(比如/data/local/tmp)提权。但这属于进阶操作,风险较大,不建议新手操作。
退一步说,如果拿不到root权限,可以退而求其次:只安装当贝桌面,不使用禁用原桌面的方案。把当贝桌面设置为默认桌面后,开机时先加载原桌面,再自动跳转到当贝桌面。虽然不如纯净替换流畅,但也能满足需求。具体设置方式:打开当贝桌面,在“通用设置”里找到“开机自启动”并开启,再把原桌面的“开机进入”行为关掉。
5.4 禁用原桌面后开机黑屏怎么办
这是最吓人的情况,但多数是虚惊。禁用原桌面后如果系统没有正确识别到当贝桌面作为替代桌面,开机时会黑屏或者只显示系统状态栏。
处理方式是先不要慌,盒子没有变砖,ADB还能连上。使用ADB连接盒子,重新启用原桌面:
adb shell pm enable 原桌面包名然后重启盒子。如果原桌面还能用,说明之前禁用操作成功了,只是当贝桌面没有被系统正确识别为替代桌面。这时再次确认当贝桌面的系统应用安装是否正确:
adb shell pm list packages | grep dangbei adb shell pm path com.dangbei.tvlauncher确保包名存在,路径在/system/app/dangbei/dbzm.apk。如果路径正确,但系统还是黑屏,可以尝试强行指定启动:
adb shell am start -n com.dangbei.tvlauncher/.MainActivity先让当贝桌面运行起来,然后在当贝桌面里的“设置”页面中找到“设为默认桌面”,让它成为系统默认启动器。
5.5 禁用原桌面后当贝桌面无法开机自启
这种情况表现为:重启后盒子卡在原桌面或者黑屏,必须手动打开当贝桌面。
这个问题的原因通常是原桌面并没有完全禁用,或者还有另一个桌面组件没有禁用。回到第3.5节,用dumpsys activity activities检查系统当前使用的桌面包名是不是原桌面,如果是,把它一并加入禁用列表。
如果原桌面已经禁用了,但重启后还是不进系统,很可能是系统启动广播没有被当贝桌面接收。在当贝桌面的“通用设置”里找到“开机自启动”开关,确保打开。个别版本当贝桌面还需要在“权限管理”中允许“自启动”,在盒子的“设置” → “权限管理”里找到当贝桌面,把“自启动”权限打开。
5.6 当贝桌面运行卡顿、内存不足
创维E900-S的硬件配置不算高,1GB内存加4GB存储,在运行当贝桌面和几个常用应用时,如果同时打开太多后台进程,卡顿会比较明显。
优化方式从几个层面来做:第一,用刚才的pm disable命令,把那些后台推送广告服务全部禁用;第二,在当贝桌面的“一键清理”里关闭后台应用;第三,在盒子的“应用管理”里停止不常用的应用。
实测下来,禁用掉运营商广告相关应用后,可用内存能多出200MB左右,桌面的流畅度会有明显改善。存储方面,盒子的机身存储如果只剩几百MB,安装大型应用容易失败,建议把视频应用装在U盘上,或者定期清理各视频应用的缓存。
5.7 系统升级弹出、固件版本不匹配怎么办
有些订制系统会自动升级,升级后可能覆盖掉用户修改的内容,导致当贝桌面失效。遇到这种情况,在盒子的“设置”里找到“系统升级”或“在线升级”选项,关闭自动更新。部分版本无法直接关闭,可以在ADB里禁用升级服务:
adb shell pm disable-user --user 0 com.coship.upgrade或者查找升级相关的包名,一并禁用。这一步操作后要留意,有些升级服务包名比较顽固,禁用后会在系统重启时自动恢复。如果确实关闭不了,也可以在路由器层面屏蔽升级服务器的域名,但这是另一套方案了,这里不展开。
6. 实测效果与几个额外的优化建议
刷机完成后用了两个多月,简单分享一下实际体验和改进建议。
6.1 实测用机体验
刷完当贝桌面后,最直观的感受是开机进了当贝桌面而不是运营商的广告页面。桌面上没有推荐广告了,首页清爽了很多。其次是安装应用时不再出现“未授权的应用”拦截弹窗,直接从U盘和局域网共享里安装APK都能成功。
内存方面,禁用了运营商广告组件之后,可用内存从原来的200MB提升到400MB左右,在线视频应用打开速度更快。存储方面,卸载了那些占空间又不用的运营商应用后,机身可用存储多出1GB多,安装了常用的视频软件和直播应用后还有余量。
整个系统运行的稳定性和原系统没有明显差距,偶尔遇到当贝桌面进程被系统回收后自动重启的情况,但这是这类盒子小内存下的常见现象,并不影响使用。日常使用下来,看电视、刷视频基本不会卡顿。
6.2 扩展:把当贝桌面设置为唯一的默认桌面
如果想让盒子开机后更干净,可以在当贝桌面里进入“设置” → “通用设置” → “默认桌面”,勾选当贝桌面为默认。同时保证原桌面已经被禁用,这样系统在启动时根本没有第二个启动器可选,当贝桌面就是唯一桌面。
每次按遥控器Home键,系统都会回到当贝桌面,不会再跳回原桌面。
6.3 扩展:批量安装第三方应用
刷完机后安装应用也可以用ADB批量操作。把下载好的APK都放在同一个目录下,执行下面的批处理命令:
for %i in (D:\adb\apps\*.apk) do adb install "%i"这个命令会逐个安装目录下的所有APK。注意:如果APK之间有关联依赖,安装顺序可能有影响,建议分批安装。
6.4 扩展:备份和恢复整个桌面环境
把当贝桌面的设置和布局备份下来,以后刷机或恢复出厂后不用重新设置。Android系统提供了adb backup命令。但实测E900-S上这个备份命令支持不是很好,更容易的方式是直接在当贝桌面中找到“备份/恢复”功能,它会把桌面布局打包备份到U盘。
如果你还要折腾其他同芯片方案的盒子,把当贝桌面APK和原桌面APK备份都放在一起就行,遇到同方案盒子直接复用这套流程,省去重新准备和熟悉的时间。
6.5 防变砖的最后一道保障
虽然这套方案不刷底层分区,变砖风险极低,但仍建议在操作任何涉及系统分区的步骤前,先做一份完整的工作记录,包括原桌面包名、原桌面APK备份路径、禁用了哪些包。把这些信息写在一个文本文件里,放在电脑刷机目录中,万一哪一步出问题,能快速定位并恢复。
这个习惯我保持了很多年,每次刷机都会在开始前花五分钟记录原始状态,这五分钟往往能省下好几个小时的排查时间。
创维E900-S的免拆刷机不难,难的是把每一步的原理搞清楚。理解了ADB连接、root权限、系统应用安装、禁用原桌面这条链路,遇到同系列盒子的各种变种版本也能举一反三。希望这篇教程能帮还在原系统广告里挣扎的朋友少走弯路,一次搞定。