华为P20 Pro解锁及刷机

这算是最近的事情,就在上周末。

手机型号: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行。

MK90.0的updater-script

如果解压改完再压缩回去,注意和原来的压缩参数一样,否则TWRP将会提示invaild zip package

除此之外,建议格式化Internal Storage,否则可能出现系统内无法读取内置存储或者其他奇怪的bug。最后附一张刷入成功的图:

点击数:3

发布者:Tabing010102

???

留下评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据