最近发现家里的EC6108V9升级了最新版本之后,STB Manager连不上去了,在坛子里翻了一下,发现大致就是两条对策:
A 降级到出厂版本,绝大多数情况下出厂版本都支持STB Manager,但也有不少人的出厂版本就比较高,降级后还是连不上;
B 直接烧录已有的纯净版 固件,没有IPTV功能,而且只能坐等其他大神的作品。
后来静下心来考虑了一下,发现了一个路子:STB Manager连不上,但HiTool还是可以用的啊!经过周末实验确认可行,在此将经验整理出来分享给大家。这个破解需要动用多种手段,要将过程完全写出来不太现实(其实是因为我懒),所以这里只提供思路,有心的读者可在坛子里或网上自行搜寻,将思路细化为具体的操作。
一、提取固件
1. 降级到出厂版本后开机,等待提示有新版本后,确认升级,这时候盒子会开始下载最新版本,等下载完毕后盒子会自动重启,一旦发现盒子重启,立即断电;
2. 连接TTL线,使用HiTool将cache分区备份出来,存储为cache.img文件;
3. 在Linux系统中,将上一步得到的cache.img作为ext4分区镜像mount到系统的/mnt/cache目录;
4. 从/mnt/cache目录提取update.zip文件,这就是最新固件的OTA包!
二、实施
华为盒子有个有意思的地方,就是其OTA签名秘钥已经被泄露到了网上,所以,理论上只要获取到了update.zip,就可以对其随意修改,反正最后只要签名一下就可以进recovery烧录进去。然而,实际上,破解过程中要做很多次实验,每次都这么打包-签名-进Rec-升级,效率实在有点低,所以我们还要想办法激活TTL、ADB之类。
一般来说,通过修改boot.img里面init.rc就可以激活TTL和ADB了,所以下一步就是想办法获得boot.img。有两种办法可以得到目的:
1. 对已经升级到最新版本的盒子,沿用提取固件的思路,将kernel分区提取出来(EC6108V9有点意思,将boot分区取名为kernel,不走寻常路)
2. 从OTA包中直接提取kernel.img文件
EC6108V9的boot.img是标准格式,可以用网上流传的解包工具进行处理,修改init.rc文件后再打包回去就可以了。
对于解包工具,这里推荐采用Linux环境的版本,因为boot.img解包后可能会有符号链接,还有些文件属性啥的,windows都支持不了,很多windows下的解包工具处理得都不是很好,偶尔就会出点小毛病让人郁闷至死……我是从GitHub下载的这个版本 boot.img修改完了之后,要烧录到盒子上才能生效,同样的,用update.zip做实验太慢,我的对策是:还是用HiTool给烧回去! 将修改后的boot.img烧录回去的时候要注意:HiTool烧录的镜像文件必须与分区大小完全相同,否则会校验出错,重新打包之后的boot.img肯定比分区的尺寸小,直接烧是烧不进去。需要用16进制编辑工具,在文件尾部添加若干全零字节,使得填充后的boot.img的文件尺寸与分区大小保持一致。
TTL、ADB开了,升级包也拿到了,剩下的就是一些常规操作了,坛子里 教程大把,我就不再啰嗦了。
最后,对于懒得动手的享受派,附上我修改过的升级包,特征:
1. TTL、ADB默认开启 2. 在端口24开启Telnet(telnet默认端口是23,请使用telnet xx.xx.xx.xx 24命令连接) 3. 已经Root,集成SuperSU2.82最新版 4. 集成当贝桌面 5. 将首页键修改为返回当贝桌面 6. 未删除原包任何内容,IPTV功能保留,当然升级功能也在。
密码:w7ca
|