本帖最后由 idsl2008 于 2021-10-18 17:50 编辑
丈人家有台华为悦盒,型号EC6108V9_pub_ahwdx,配置方面和中兴B860AV1.1相比,除了存储空间大4GB,其它硬件相差无几。该台盒子无法通过优盘安装软件(apk文件被系统屏蔽),国庆期间闲来无事,决定将其破解。
备注:盒子底部标注的型号不一定准确,需要通过设置--关于本机,确定盒子最终型号。
参考:华为悦盒EC6108V9_pub安装教程卡刷,刷机过程如下:
1.将优盘格式化成FAT32格式(无隐藏分区和启动分区),卡刷包update_liweier.zip重命名为update.zip复制到优盘根目录;
2.优盘插入盒子内侧USB接口,拔掉网线。关机状态,启动机顶盒,通过来回交替不停按遥控器的【左】【右】方向键,进入recovery模式;
3.选择“Apply update from external storage”(从外部存储设备应用更新),开始刷机,几秒钟结束后盒子会自动重启,拔掉优盘;
4.进入当贝桌面,弹出警告:“系统已被篡改,继续使用存在安全风险,请确认”,使用RE管理器发现系统并未获取root权限。
备注:篡改警告可通过进recovery模式选择“Apply update from backup”(从系统备份应用更新)清除,当然系统分区新安装的软件也会消失
既然当前系统未root,还会弹出篡改警告,那就DIY一个卡刷包吧。
操作系统: Windows 10 Home Basic 64bit
应用软件: WinRAR
Notepad2
Java
signapk
apk软件: 当贝桌面(版本:3.3.6)、当贝市场(版本:4.3.3)、RE(版本:3.3.7)
下面通过分析update_liweier.zip的文件结构和信息,逐步讲解卡刷包的制作流程:
一、确定卡刷包目录及文件
WinRAR解压缩update_liweier.zip,显示的文件结构如下:
[update_liweier] └─META-INF └--CERT.RSA #签名生成文件(可删除) └--CERT.SF #签名生成文件(可删除) └--MANIFEST.MF #签名生成文件(可删除) └─com └─android └─google └─android └--update-binary #升级用二进制文件,相当于一个脚本解释器 └--updater-script #升级用脚本文件,描述了具体更新过程 └─data #用户分区 └─app └--dangbeimarket.apk #当贝市场 └─system #系统分区 └─app └--com.dangbei.tvlauncher.apk #当贝桌面 └--RootExplorer.apk #RE管理器 └--SuperSU.apk #超级授权工具(可删除)
#以下为设备root文件(可删除) └─bin └─.ext └--.su └─etc └--.installed_su_daemon └--install-recovery.sh └--install-recovery-2.sh └─init.d └--99adbd └--99SuperSUDaemon └─lib └--libsupol.so └─xbin └--daemonsu └--su └--supolicy
根据上述说明,我们来制作一个卡刷包:首先保留update-binary和updater-script,然后将当贝2in1放入data/app,RootExplorer放入system/app,最后删除其他文件,形成的文件结构如下:
[update_liweier]
└─META-INF
└─com
└─google
└─android
└--update-binary
└--updater-script
└─data
└─app
└--com.dangbei.tvlauncher.apk
└--dangbeimarket.apk
└─system
└─app
└--RootExplorer.apk
二、修改刷机脚本文件
notepad2打开updater-script文件(#后内容为笔者添加的注释):
- getprop("ro.product.device") == "Hi3798MV100" || abort("This package is for "Hi3798MV100" devices; this is a "" + getprop("ro.product.device") + "".");
- #查询设备信息,校验设备芯片是否为Hi3798MV100,校验成功的话继续刷机操作,失败的话终止刷机
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/system", "/system");
- #挂载system分区,设置返回指针”/system”,方便后续读写
- package_extract_dir("system", "/system");
- #提取压缩包system文件夹下所有内容至手机的"/system"
- set_perm(0, 0, 0644, "/system/app/com.dangbei.tvlauncher.apk");
- set_perm(0, 0, 0644, "/system/app/RootExplorer.apk");
- set_perm(0, 0, 0644, "/system/app/SuperSU.apk");
- set_perm_recursive(0, 0, 0755, 0755, "/system/bin/.ext");
- set_perm(0, 0, 0755, "/system/bin/.ext/.su");
- set_perm(0, 0, 0644, "/system/lib/libsupol.so");
- set_perm(0, 0, 06755, "/system/xbin/su");
- set_perm(0, 0, 06755, "/system/xbin/daemonsu");
- set_perm(0, 0, 0755, "/system/etc/install-recovery.sh");
- set_perm(0, 0, 0755, "/system/etc/install-recovery-2.sh");
- set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
- set_perm(0, 0, 0755, "/system/etc/init.d/99adbd");
- set_perm(0, 0, 0755, "/system/etc/init.d/99SuperSUDaemon");
- #set_perm:设置文件权限
- #set_perm_recursive:设置目录下所有文件的权限
- #0644:所有者有读和写的权限,而组用户和其他用户只有读的权限
- #0755:所有者有读、写和执行的权限,而组用户和其他用户只有读、执行的权限
- #06755:在0755基础上设置SUID、SGID特殊权限,root专用
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/userdata", "/data");
- #挂载userdata分区,设置返回指针”/data”,方便后续读写
- package_extract_dir("data", "/data");
- #提取压缩包data文件夹下所有内容至手机的"/data"
- set_perm(0, 0, 0644, "/data/app/dangbeimarket.apk");
- #设置当贝市场权限
- unmount("/system");
- #卸载system分区
- unmount("/data");
- #卸载data分区
复制代码 结合我们制作的卡刷包文件结构,修改脚本文件如下:
- getprop("ro.product.device") == "Hi3798MV100" || abort("This package is for "Hi3798MV100" devices; this is a "" + getprop("ro.product.device") + "".");
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/system", "/system");
- package_extract_dir("system", "/system");
- set_perm(0, 0, 0644, "/system/app/RootExplorer.apk");
- mount("ext4", "EMMC", "/dev/block/platform/hi_mci.1/by-name/userdata", "/data");
- package_extract_dir("data", "/data");
- set_perm(0, 0, 0644, "/data/app/com.dangbei.tvlauncher.apk");
- set_perm(0, 0, 0644, "/data/app/dangbeimarket.apk");
- unmount("/system");
- unmount("/data");
复制代码 备注:赋予权限的文件一定要存在(包括位置和名称),否则会导致刷机失败
三、签名
1.官网下载java,默认安装即可;
2.解压缩signapk,我这里放在了D盘根目录,同时将打包好的卡刷包update_liweier.zip拷入;
3.按“win+R”组合键,打开“运行”窗口,输入cmd回车。输入d: (将当前目录改为D盘),再输入cd signapk(将当前目录改为signapk文件夹);
4.输入以下命令,回车,即可完成签名:
- java -jar signapk.jar -w testkey.x509.pem testkey.pk8 update_liweier.zip update.zip
复制代码 说明:
1.通过signapk.jar这个可执行jar包,以testkey.x509.pem公钥文件和testkey.pk8私钥文件对update_liweier.zip进行整包签名(-w),签名后的文件保存为update.zip
2.大容量卡刷包可用以下语句签名:- java -Xmx1024m -Xms1024m -Xmn384m -jar signapk.jar -w testkey.x509.pem testkey.pk8 update_liweier.zip update.zip
复制代码 备注:签名后,“update.zip\META-INF”下多出CERT.RSA、CERT.SF、MANIFEST.MF三个签名文件,修改时间均为2008-2-29 10:33,并增加注释“signed by SignApk v2.“
四、调试
将签名后的卡刷包拷入优盘,进recovery模式刷机,进度条到1/4左右刷机完成,重启。首次启动较慢,从超清itv界面到iptv首页大概需要三四十秒。点超清电视,进卓影市场启动当贝桌面。
说明:
1.内网断开下首次启动,会弹出网线连接错误界面,按遥控器的【直播】或【回放】,再按【返回】,就可进iptv首页。
2.因当贝桌面装在用户分区,首次运行需手动启动,以后便可自动启动;嫌麻烦,文末有当贝桌面装在系统分区的卡刷包可供下载。
3.关于IPTV当贝切换、内网外网切换的详细介绍,可移步我的另一篇帖子:B860AV1.1不拆机不删iptv,实现iptv当贝切换、内网外网切换教程
本文介绍了一个精简卡刷包的DIY流程,更多高级操作网友可以通过修改system和data文件夹中的相关内容自己解锁~~
本教程适用于使用Hi3798MV100芯片的华为悦盒系列(EC6108V9、EC6108V92-V97、EC6108V9C、EC6108V9U)以及同芯片其他牌子的机顶盒。
相关固件和软件下载地址: The End
免责声明:刷机有风险,操作需谨慎!本教程仅供内部测试和技术交流使用,任何非法商业使用及商业利益冲突带来的法律纠纷,与本人无关,本人概不负责!
|