这算是最近的事情,就在上周末。
手机型号:HUAWEI P20 Pro CLT-AL01,6+64G。
事情的起因是H同学在他的HWP20P上安装Tuber浏览器之后,Google系的软件全部无法正常使用。我又恰巧在魔趣看到了P20 Pro有官方的RELEASE的刷机包,于是就想搞一手刷机,顺便也可以解决一下EMUI可能有的监控之类的东西。
结果,这个刷机是遇到了好多好多意料之外的问题。
首先就是解锁,众所周知,华为已经关闭了官方的一切解锁通道,这时候我们就找来了万能的淘宝来解锁。其过程总结起来就是降级,然后利用老版的bug/特性来进行解锁。
其中遇到了店家前一天不说全下载什么,客服交流困难,刷到一半断网等等弱智操作,不过好在经过几天折腾,还是把锁给解了,本身还想给个差评,也就作罢。
目前已知的情况:成砖之后使用手机自带的eRecovery恢复不会丢掉解锁状态,但使用华为手机助手在fastboot下恢复未知;TWRP不可解锁/data,不可使用MTP以及不可挂载USB OTG设备;自定义Recovery分区为recovery_ramdisk
。
解锁后进入各个模式的快捷键:完全关机状态下同时按住音量上+开机键->进入Recovery;完全关机状态下同时按住音量下+开机键->进入Fastboot;按开机键出现提示后按音量上键->进入eRecovery。
其次要注意的是刷入9.0或之后的系统需要升级EMUI版本至9.0+,解锁用的8.1.0的系统分区表不符合Mokee和LineageOS的分区表,不升级直接刷入将会提示分区表错误,EMUI10.0+兼容性未测试。目前TWRP并不支持解锁DATA分区,连接USB OTG或挂载MTP,所以需要一台电脑来使用adb sideload刷入,都折腾好了之后会发现仍然报错:
...
Checking for Digest file...
E3000: This package expects the value "_a" for "ro.boot.slot_suffix"; this has value "".
Updater process ended with ERROR: 7
Error installing zip file ‘...’
...
之后找了半天,最终找到的解决办法是更改安装脚本,原因是Mokee和LOS貌似并没有能正确处理boot分区,所以需要更改安装脚本,把boot分区相关的东西去掉,具体操作方法是:更改压缩包中的updater-script(路径:/META-INF/com/google/android/updater-script
),删除getprop("ro.boot.slot_suffix") == "_a" || abort("E3000: This package expects the value \"_a\" for \"ro.boot.slot_suffix\"; this has value \"" + getprop("ro.boot.slot_suffix") + "\".");
和package_extract_file("boot.img", "/dev/block/bootdevice/by-name/kernel");
两行,保存。在MK90.0中是删除第4和第30行。
如果解压改完再压缩回去,注意和原来的压缩参数一样,否则TWRP将会提示invaild zip package
。
除此之外,建议格式化Internal Storage,否则可能出现系统内无法读取内置存储或者其他奇怪的bug。最后附一张刷入成功的图:
Views: 656
和你手机型号相同,有华为官方解锁码,并且已解锁,不能刷非华为的系统,如谷歌的系统,能把您的这篇文章再细化点吗,比如附图,附软件下载地址,非常感谢。您这篇是唯一解决问题,望指教。
TWRP官网:https://twrp.me/,进去之后从Devices找对应手机型号
刷recovery指令:fastboot flash recovery_ramdisk xxx.img
(更新过的TWRP可能可以解锁data分区,若能解锁能少不少麻烦,不过我当时用的版本不能解锁)
魔趣官网:https://www.mokeedev.com/,找对应型号下载即可
我当时搞的环境是EMUI 9,刷的也是魔趣Android 9系统(MK90.x),刷完之后也有不少问题,其他EMUI版本、其他第三方系统发行版能不能成未知
这篇说明我个人认为已经把主要问题说明得比较充分,其中还有其他问题建议(用英文)使用谷歌搜索、或去XDA等论坛寻求解决方法,如果仍然解决不了我建议您放弃折腾华为手机,刷机时的问题解决不了后期使用可能会有更多麻烦
或者您也可以寻求专业人员帮助、或看看万能的淘宝,我就是个业余的,搞这个手机也是误打误撞,并不能保证能解决您的问题
删掉的行的大致意思应该是不检查某个参数,不替换boot镜像