随着一段悦耳的钢琴旋律,EMUI终于更新成功...
我废弃已久的mate7是在新加坡IT show买的,参数:
Model: HUAWEI MT7-L09
CPU: Hisilicon Kirin 925
RAM: 2.0G
Android Version:4.4.2
EMUI version:EMUI 3.0
安卓版本太低,我想升级一下,结果没想到道路这么曲折。。。
##0X00 关键词
ROM: Read-only memory, 跟通常说的内存不同的是,这个memory代表了机器上不常修改的数据,通常又指存储这类数据的硬件设备;
Firmware固件是指固化到ROM硬件之上的机器指令数据,比如计算机主板上的BIOS(basic I/O system)更早之前被称为固件;
我们通常刷机的时候都是混称rom和firmware,不特指时两者通用;
OTA: Over the air, 一般分为incremental增量型更新和full ota全量更新;
OTA显然一般只能是官方提供,所以又被称为offical stock firmware,比如华为的包通常是一个update.app或者全量包中包含了更多的system cust patch META-INF等配置和其他信息;
Rom Image: 我们刷机通常说的ROM image或者简称rom包括factory image和custom rom image,custom rom除了system cust META-INF还有boot.img,function_patch等;
bootloader:是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行【引用自百度词条】
通常一个手机出厂之前,bootloader都是锁定的,我猜测默认的bootloader应该有检测程序,只有官方的factory image才可以通过,所以如果想用custom rom image只能先unlock bootloader解锁,然后刷入第三方的recovery程序;
卡刷、线刷:线刷就是连usb通过一些三方的刷机软件刷机,亦或者有时候通过fastboot刷系统也需要连usb也可称为线刷,卡刷就是通过下载rom到本机,通过系统或者三方recovery刷入rom;
##0X01 开始折腾
首先我尝试的肯定是通过EMUI的updater自动升级,但是check for udpates显示no updates,已经显示出被抛弃的迹象;
然后我自然是网上搜索所谓的官方stock firmware,然后我又发现华为已经停止提供官方firmware,所以只能去比如xda论坛和花粉论坛找,吐槽一下,华为的社区真挺烂的.... 我的型号是MT7-L09,找到了很多MT7-TL09 TL10的包,刚开始我以为是不同的,后来才大概明白,TL是除了移动、电信、联通之外的渠道,所以应该就是TL了吧;
然后根据华为的文档和网上的指导,将update.app或全量的update.zip放到dload里面,奇怪的是updater里面选择local update并没有显示出OTA包,经过一番折腾我发现了一个彩蛋,同时将 update.app和update.zip放入dload,updater就可以同时发现两者,update.app显示为incremental增量,update.zip显示为integrated全量;
即使如此,我下一步重启机器后死在hauwei ascend logo页面
##0X02 解锁bootloader
看到有人说,也许是跟bootloader有关,因为是自动重启后出现卡死页面,所以我折腾了下unlock bootloader,根据网上教程说是去官网申请unlock code,结果我才发现官方早已停止提供这项服务,最后我还是用adb命令行搞定了
```adb.exe devicesadb.exe shell#进入手机shellsu#sdcard0 内置存储 sdcard1外部存储cd storage/sdcard1/mkdir -p PartitionBackupcd PartitionBackup#把nvme路径下的文件复制到PartitionBackupdd of=nvme \if=/dev/block/platform/ff1fe000.dwmmc0/by-name/nvmedd of=oeminfo \if=/dev/block/platform/ff1fe000.dwmmc0/by-name/oeminfo dd of=recovery \if=/dev/block/platform/ff1fe000.dwmmc0/by-name/recovery```
解锁码就在nvme里面,用hex工具即可获得
解锁之后,重试了,仍然还是一样;
中间我还试了用网上的一些所谓一键刷机线刷,但是都找不到我这个海外孤儿版的huawei mate 7 L09,也发现了跟我一样的难兄难弟,没有发现解决方案,应该都放弃了吧
##0X03 第三方recovery
然后想干脆刷入三方的recovery程序,然后我岂不是可以想刷什么custom rom都可以了,当然了通过咨询一个懂开源硬件的哥们,我也了解到不可以乱刷,如果rom不支持手机型号,cpu 和ram ,emmc 一般没问题,但是驱动可能会有问题,比如蓝牙,基带,wifi ,摄像头什么的;
anyway死马当成活马医,网上第三方recovery很多搜索结果都是twrp,结果这个玩意跟手机型号也有关,我通过fastboot工具刷了几个所谓的mate7版本的,都一样重启无法进入recovery,然后我找到了一个cmw的工具包(就是包了adb fastboot然后自己写了个bat,主要是提供了cmw的img),让我不爽的是,刷完之后倒是可以进入recovery,但是reset factory,整个机器满是垃圾软件(我忘记了可以直接自己fastboot他的cmw img,没必要跑人家的bat,不过可能垃圾软件就是在img里面...已经刷了就不研究了),而且我通过它的这个改版的cmw根本无法刷入任何rom,包括custom rom和官方的full ota都不行
绝处逢生,既然我知道我的机子不能用twrp但是可以用cmw,我就直接找cmw吧,果然我从google play store找到了clockworkmode的app:rom manager,然后通过设置cwm作为recovery我试着刷了一个MT7-TL00-EMUI3.0B357Lite.6.4.252ycjeson的包,这个哥们的包真的很干净,直接将我拉回到我最初的版本,熟悉的界面;
其实我还是有点疑惑的,因为在通过rom manager加载这个包之后刷的时候会重启到recovery,我以为会看到cmw的recovery页面,但是我看到的居然EMUI的recovery页面,这个是我没太明白的,另外在这个页面上我做了一次reset factory,所以我也不是很确定我reset之后,reboot回去看到我系统恢复到了最初的版本是不是跟他这个包有关系,但是我折腾了两天累了不想再测试,这个暂时存疑;
##0X04 EMUI recovery
乘胜追击,首先我是想也许这个哥们的包确实有点用,然后我去找了他更多的高版本的包,但是发现注释上都说明:必须基于底包3.1或者是4才能刷成功,基于之前的折腾经验,我大概明白因为当前我的EMUI底包还是3,如果我强刷估计失败可能比较大;
但是既然我刚才已经见到了EMUI的recovery页面,说明我有机会通过刷官方的全量包full ota升级,所以基于前面的各种姿势,我找了一个全量包,然后通过前面发现的那个小彩蛋,将zip放入dload中,然后从updater中local update,选中zip,忽略增量包,confirm,重启...
随着一阵悦耳的钢琴曲,我知道有戏,因为我之前的系统不是这个开机声音,然后等到update successful,optimization,开机之后清新的界面,检查系统参数,底包EMUI升到3.1,android升到5.1.1,此时的心情
##0X04 思路总结
如果系统recovery卡死,通过三方recovery刷新同版本rom,然后再通过系统recovery升级底包,然后你可以开心的升级其他三方的custom rom
几点建议:
做操作之前先备份,尤其是备份当前rom,如果你也是孤儿版,估计找到原厂firmware的几率比较低,所以备份很重要,备份别忘了存到电脑,如果你存到了sdcard又format了相当于啥都没备份
升级的时候要一个版本一个版本来,不要直接从android4升到6,先升到5,这样成功概率更高,步子太大容易扯着
如果发现你的系统recovery不好用,建议通过三方recovery刷一下当前的版本,我的意思是找个custom或者official的rom,版本跟你当前版本一致,原因是也许你当前的版本有特别的限制,所以你刷个同等版本的首先容易成功,如果成功你再测试recovery就更容易成功
时刻清楚当前的机器的状态,比如是reset factory之后还是clear cache之后,还是刷了三方recovery之后,这些状态是你下一步的判断依据
通过细小的差异,观察系统的反应,你会找到跟机器交流的感觉
更多细节等有空再更新到
https://lyhistory.com/docs/software/hardware/android_rom