我的处女作——M302H_SM山东移动无WIFI版刷机包
本帖最后由 yhxyt 于 2021-10-8 17:04 编辑修改打包一个自己的刷机固件,这又是因为一个偶然。我就是这样一步一步走向技术的深渊的。
本想这个国庆节假期好好休息一下,不再琢磨刷机的事情了。结果一个找我咨询过的网友发给我一个帖子链接,叫做《M302H 2G 8G无WIFI山东移动SM代工 当贝H1系统移植》。我写的第一篇帖子就是这个型号的盒子救砖的过程(参见《魔百和M302H救砖记(我的第二个故事)》),当时虽然救砖成功,也成功破解了这款盒子,但过程始终是稀里糊涂的,根本就是撞大运的感觉。加上对破解后的盒子系统也不算满意,所以见到这个帖子便如获至宝,决定刷机!反正我已经基本掌握了机顶盒硬件刷机差不多最底层的操作技术,有底气搞,不怕不怕!
刷机自然是失败的,否则也就没有这篇文字了。过程中我用来刷机的U盘屡出故障不说,自己用emmc芯片做的U盘读写速度虽然快,但就是不能刷机。用TF读卡器加8GTF卡充当U盘,又常常读写中途报告盘不见了,真是……哭……。最后还是用安国可以ISP飞线的读卡器和TF卡配合,性能才算稳定下来。而且每用一次就要重新格式化一次,否则读写速度就是变得奇慢无比。
最关键的是,刷机不成功也就罢了,我已经破解的盒子居然在重启后自动恢复到了原机系统,我又看到了移动的那个“正在获取账号……你无法连接网络”的可恶提示,我只好准备重新刷机。
我在《魔百和M302H救砖记(我的第二个故事)》里就讲过,我之前的破解成功是因为刷了一个固件,盒子变砖头了,然后我用ttl重新刷入了原机的fastboot分区镜像,救砖成功,盒子重启后就发现已经破解。我这次要刷机,就需要先刷固件变砖,再刷fastboot救砖。在那个帖子的最后,我也提出一个想法,就是把救砖的fastboot镜像放入刷机包中,重新生成一个刷机包,使刷机不会变砖而且成功呢?可惜当时做了实验,重新生成的刷机包盒子根本就不认。
这次反正要重新刷机,我又开始思考这个问题。刷机包刷了变砖,刷入原机fastboot镜像后救砖,说明刷机包是刷成功了的,只是其中的fastboot镜像不对。而原机的fastboot写入后能救砖且不影响系统破解,说明fastboot分区与系统破解无关。那么我用原机fastboot镜像替换刷机包中的同名镜像应该是可行的。我又改变思路,用另外的方法做了几次实验,还是不行。那么,为什么盒子不认修改后的刷机包呢?刷机包是怎么制作出来的呢?
于是先在百度搜索,找到一篇不错的教程,准备转到本论坛来分享给大家,结果发现本论坛里有一篇更完整的。帖子叫《教你自己DIY改造安卓盒子固件》,若有需要,可以直接去参考。
继续讲我的思路和实验。
根据教程,原来我缺少了最后一步“固件签名”,难怪盒子不认我自己封装的刷机包呢!于是,我替换了fastboot镜像文件后重新封包并签名,制作了一个刷机包出来。其实按教程操作,我没能生成签名后的刷机包。我摸索出了一个技术操作的关键,然后才得到了完成签名的刷机包,具体操作需要的回复可看(我默认你懂dos命令,就不写复杂了哈)。不需要的不用看,不影响故事情节。**** Hidden Message *****
这个刷机包得到了盒子的认可,开始升级系统,但很快告诉我升级失败。这说明我签名这一步成功了。是什么原因导致升级失败呢?我在刷机包里找到了一个名为“md5file”的文件,用记事本打开一样,全是内部各个文件的MD5校验码,我替换了一个文件,却没有修改相应的MD5码,就有失败的可能了。我没去研究MD5码,我的思路是,这个“md5file”文件不要会不会影响刷机?于是删掉这个文件,再做实验,成功刷机了并且屏幕再次亮起来进入了新系统,我成功了!
刷机包封装和签名都搞定了,我又开始思考:我能不能把原来刷机包中不满意的桌面和移动盒子运营商的软件都删掉,把我需要预装的软件放进去呢?于是按教程说的,将需要的软件放入了刷机包system/app目录下,重新封装签名做实验,又成功了!其中特别说明的是,我需要当贝桌面,但没有直接将当贝桌面放进去。原刷机包中有一个yqzm.apk,我怀疑它就是系统默认的桌面APP,所以把当贝桌面改为这个名字,替换了原来的这个文件,事实证明是成功了。
接下来我继续删除原来不满意的APP,但是一串英文,好多APP从名称上都看不出来是什么作用。幸好我安装了刷机精灵,双击APP,就会自动用刷机精灵打开,就能看到一部分APP的真实名称,再结合英文名称进行推测,我删除掉了一部分原系统的APP(其实删错了也不怕,重新封装再刷一次就行了)。
但是安装的APP都在系统软件中(system/app目录下),/system/app目录是系统预装应用目录,放在这里的apk用户是无法卸载的。一些应用软件我希望今后能自由删除,所以应该要放到data/app目录下。data/app目录就是放预装应用的地方,把想预装的apk直接放进这个目录即可,文件名最好是英文的。
但我原来的固件包中没有data这个文件夹,我是要自己建一个data文件夹吗?(这个我没做实验,谁做了可以反馈一下哈!)我打开好多其它的刷机包来看,没看到有这个文件夹,倒是有一个userdata文件夹,其下还有一个app文件夹,于是就建了一个userdata/app的文件夹,把我想预装但是又可能会卸载的app放在里头,封装签名,重新刷机,OK,一切如意!国庆吉祥!
顺便把教程的提供者“微笑,一路向前”提供的签名工具也放这里吧,方便大家寻找。感谢“微笑,一路向前”。
补充:个别软件要预装到/system/app还需要注意的是要把对应的库文件复制到指定目录,这里以HDP直播为例,除了把主程序放到/system/app下外,还需要把附件里面的几个so文件放到/system/lib目录下。所以如果预装到/system/app的软件不能正常工作,多半是缺少库文件。通常做法是把这个apk改名为rar解开,把里面lib目录下的so文件统统复制到固件的/system/lib目录下。
下一步……嗯,我还是想体验一下当贝的系统,去研究一下那个系统为啥不能刷机成功了!{:144:}
2021-10-6,补充:当贝的系统替换了fastboot.img文件后终于刷入成功了。但是进入到匹配遥控器界面的时候就没法用遥控器操作了。我只好接了USB鼠标来点击操作。但很快就点击无反应了。不知道什么原因,也许是盒子底层的系统并没有破坏掉,连接了有线网的居然也报告说没有连接网络。不知道大家是否遇到了我的这些问题没?
对固件包有需求的回复后看
**** Hidden Message *****
…
就需要你这样的优秀人才就需要你这样的优秀人才 KKK 感谢楼主带来的内容分享 谢谢分享 gfhgfh RE: 我修改打包的第一个固件——山东移动无WIFI版M302H_SM 谢谢分享固件方法 谢谢分享 坎坎坷坷扩扩扩扩扩扩扩 1111111111111111111 举一反三,唯我独尊!_水不知预知瘔
看来你还真挺棒的