移动魔百和 CM201-2 机顶盒免拆机改三方桌面
找到一个之前办理北京移动送的机顶盒,由于自带的系统太难用,想要刷机或者安装第三方桌面。
查找资料
首先是找到了一个求助贴:https://www.znds.com/tv-1202246-1-1.html
然后下面网友回复:
型号是魔百和 CM201-2,https://www.znds.com/tv-1185501-1-1.html刷包地址
帖子内容如下:
刷机工具及固件下载 链接:https://pan.baidu.com/s/12SQrZ0XNB2hA68npMaw5Bg 提取码:w4b9
下载后解压,内附说明文档,原文如下:
本固件包针对解决 CM201-2 系列所有型号刷机,准备两个符合刷机要求的 U 盘:(如果语音失效,可通过市场更新插件后重启即可解决。)
1、准备一个 U 盘,将 sw_product_check 整个文件夹复制放入 U 盘里,插机顶盒,开机会弹出一个对话框,打开 ADB 端口即可,然后记录下机顶盒 IP 地址,然后执行第二个步骤
2、免拆工具,电脑上运行文件夹里的一键刷机工具文件,输入盒子 IP 即可,自动完成后,进行第三步操作
3、将卡刷包文件夹里的固件包,复制放入 U 盘里,插上机顶盒,自动刷机,如果未自动卡刷就在 U 盘里新建一个 upgrade 文件夹,卡刷固件包放入这个文件夹里,然后按上述操作刷机即可。
4、强刷引导文件是搭配固件包一起救砖的使用的;
尝试刷机
将 sw_product_check 拷贝到 U 盘中插入机顶盒,开机等了很久,右下角显示正在下载,然后提示更新成功,弹出对话框询问是否重启机顶盒,选择立刻重启会重复一遍刚才的过程,这次选择稍后重启,机顶盒会一直黑屏。按设置键会进入设置页面。并没有弹出 ADB 相关或者,原生设置页面。
在设置页面中查看到当前 IP 为:192.168.1.16
使用 adb connect 192.168.1.16
连接机顶盒,提示:failed to connect to '192.168.1.16:5555': Connection refused
然后又搜索了一下,在这篇帖子中 https://www.znds.com/tv-1200629-1-1.html 有人提到:
新版系统锁了 ADB,所以不能用。
拔掉 U 盘重启启动,提示正在升级更新的字样,恢复了原来的系统。
然后又搜索到一个帖子:https://www.52pojie.cn/thread-1179336-1-1.html
提到:
移动 CM201 的机器更简单:点击遥控器设置、停留设备信息 3 秒后开始输入顺序按: 上上 下下 左左 右右 ok ok ok ok(OK 按键反复按)直到出现出厂调试,再打开 ADB 选项打开,手机安装悟空遥控连接就可以在手机上给电视安装各种软件。 你试试
照着试了试,没有特别的反应。
搜索看到有的教程里提到要将 update.zip 拷贝到 U 盘中,拷贝后插入机顶盒,真准备重启再试试,此时自动跳转到了开发者模式的界面,USB 调试已经打开。
然后使用 adb connect 192.168.1.16
重新连接,连接成功:connected to 192.168.1.16:5555
接下来输入:
adb shell "mount -o remount,rw /system"
无任何输出。
然后输入:
adb shell "mount | grep system"
输入出内容:
/dev/ubi2_0 /system ubifs rw,relatime 0 0
根据说明:
system 后有 ubifs 字样说明是 nand 闪存; system 后有 ext4 字样的是 emmc 闪存。
可以确定是 nand 闪存。
再输入:
adb shell "cat /proc/msp/sys"
输出:
SDK_VERSION: [HiSTBAndroidV600R003C01SPC031_v2020040917] Build Time: [May 6 2021, 15:11:29]
UNF_VERSION: 3.3.1
CHIP_VERSION: Hi3798MV300
PACKAGE_TYPE: BGA 14*14
DOLBY: NO
DTS: NO
ADVCA: NO
ROVI(Macrovision): NO
HDR10: YES
DolbyVision: NO
根据输出的信息,可以确定是海思芯片,型号是 Hi3798MV300。
根据说明进入 zg1 分支:
# 挂载 system 分区
adb shell "mount -o remount,rw /system"
# 拷贝 recovery_Hi3798MV300.img 到 /tmp/recovery
adb push recovery_Hi3798MV300.img /tmp/recovery
# 写入 recovery 到 mtdblock2 和 mtdblock3
adb shell "dd if=/tmp/recovery of=/dev/block/mtdblock2"
输出:
25032+0 records in
25032+0 records out
12816384 bytes transferred in 3.671 secs (3491251 bytes/sec)
adb shell "dd if=/tmp/recovery of=/dev/block/mtdblock3"
最后一行输入后,没有任何输出,停顿了很久。根据说明:
请注意:此处有较长时间停顿及最终显示上传文件速率即替换文件成功, 显示 error: device not found 说明替换文件失败,请检查设备连接情况!
于是继续等待。。。很久也没有反应,直接按电源关闭重启了机顶盒。
重启后,机顶盒正常进入了系统,没有出现任何特别的反应。
于是关机,重新拷贝 update.zip 到 U 盘 upgrage 文件夹中,插入机顶盒,开机然后进入了系统。弹出了提示框,提示正在升级,升级完毕自动重启,提示正在安装系统更新后进入了系统。然后又弹出了升级提示。。。在如此往复了几次后,我按了电源按钮关机了。
放弃刷机,改为安装三方桌面
使用 adb install 命令安装了几个 apk,虽然提示成功了,但是在机顶盒上并没有看到安装的应用。
按设置按钮进入原生设置页面,查看软件列表,发现了刚才安装的应用,但是无法打开。
下载了一个当贝桌面,安装后在设置中进入主屏幕将当贝桌面设置为默认桌面,按桌面按钮仍然进入的是默认桌面,然后重启,发现系统设置中默认桌面已经还原为 SWGuide_bj。
尝试使用 adb 启动当贝桌面:
adb shell am start com.dangbei.tvlauncher
成功启动了当贝桌面。但是重启后还是回到了默认桌面。
使用 adb shell pm list package
列出
net.sunniwell.guide.bj 疑似是默认桌面。
使用 adb uninstall net.sunniwell.guide.bj 卸载失败
使用 adb shell ls /system/app/ 列出系统应用,发现了 SWGuide_bj.apk
挂载系统分区后,删除 SWGuide_bj.apk
adb shell "mount -o remount,rw /system"
adb shell "rm /system/app/SWGuide_bj.apk"
重启后,成功启动了当贝桌面。
此时按桌面键,会显示一个空的壁纸页面。
根据帖子内容:https://www.znds.com/forum.php?mod=viewthread&tid=1174456&page=1#pid57124202
还需要修改 /system/etc/keyfunction.xml 文件
使用 adb 将文件下载到电脑:
adb pull /system/etc/keyfunction.xml
然后修改文件,在 Applications 节点下添加内容:
<key>
<keyName>HomePage</keyName>
<keyValue>3</keyValue>
<packageName>com.dangbei.tvlauncher</packageName>
<activityName>com.dangbei.tvlauncher.IndexActivity</activityName>
<action>android.intent.action.MAIN</action>
</key>
修改后如下:
<?xml version="1.0" encoding="utf-8"?>
<Applications>
<key>
<keyName>Vod</keyName>
<keyValue>138</keyValue>
<action>com.ysten.action.OpenApp</action>
<actionUrl>vod</actionUrl>
</key>
<key>
<keyName>Live</keyName>
<keyValue>136</keyValue>
<action>com.ysten.action.OpenApp</action>
<actionUrl>live</actionUrl>
</key>
<key>
<keyName>Info</keyName>
<keyValue>139</keyValue>
<action>com.ysten.action.OpenApp</action>
<actionUrl>info</actionUrl>
</key>
<key>
<keyName>Lookback</keyName>
<keyValue>137</keyValue>
<action>com.ysten.action.OpenApp</action>
<actionUrl>lookback</actionUrl>
</key>
<key>
<keyName>guoantv</keyName>
<keyValue>1190</keyValue>
<actionUri>launcher://com.guoan.tv</actionUri>
</key>
<key>
<keyName>HomePage</keyName>
<keyValue>3</keyValue>
<packageName>com.dangbei.tvlauncher</packageName>
<activityName>com.dangbei.tvlauncher.IndexActivity</activityName>
<action>android.intent.action.MAIN</action>
</key>
</Applications>
将修改后的文件上传到机顶盒:
adb push keyfunction.xml /system/etc/keyfunction.xml
重启后,按桌面键,提示选择桌面,选择当贝桌面键成功进入了当贝桌面。但是总会额外弹出一个提示框:选择要使用的应用。
继续尝试禁用 icntv
db shell "pm disable tv.icntv.ott"
这次按桌面键,直接进入了当贝桌面。不用选择桌面了,但是仍然会弹出那个提示框。
是在没找到合适的解决办法,只好随便选择了第一个,并设置为始终使用。
重新启动后,又出现了黑屏,到设置中手动将当贝桌面设置为默认桌面。然后按桌面键,又到了壁纸页面。。。
到当贝桌面设置中,关闭了桌面询问,又好了。