红米 Note3 (kenzo)刷入Lineage OS 的过程

0 刷机之前的准备工作

  • 如果登陆了 Google 账户的,先删除本机的 Google 账户(非常重要,否则开机向导无法跳过,人在墙外或具有科学上网的网络则可以忽略)
  • 如果有使用 手机验证器(Authenticator)的,请注意:"卸載驗證器、恢復手機前請務必到本頁面關閉二級驗證"。我把我的二级验证关掉了再刷机的。
  • 备份重要数据

1 更新 Recovery

第一步就遇到困难,fastboot 刷新的 twrp 提示 FAILED. 查了一下原因,竟然是小米的锁的问题,也就是说,即使已经解锁过一次,如果见到这样的提示,那么就重新下载小米的解锁工具,只需要重新再点击一下解锁即可。

2 安装 Lineage OS

将下载的 Lineagexxx.zip 放入 sdcard,然后进入 recovery,首先清除数据,包括 System, Data, Cache and Davik cache。因为我是从 CM 系统更新到 Lineage,所以需要把这些统统抹去。然后再回去选择安装,选中放入的压缩包,滑动确认刷入。然后我就遇到问题了,提示我“ZIP 签名校验不正确”(zip signature verification failed),我尝试不选择令人讨厌的 ZIP 校验,结果还是失败,报错就不一样了,信息如下:

xiaomi.verify.modem() failed to read current MODEM version: -2

Update process ended with ERROR: 7

关于这个问题的解释见这个帖子。 主要原因为:

那么有无解决方案呢,有网友给出的解决方案是,先刷成某个 MIUI 最新的版本,然后再刷 Lineage 就好了。这个办法有点烦,主要是 MIUI 的ROM 太大了,lineage 的也就五百来兆,小米的动不动八九百兆。我自己找到了这个解决方案:Status 7 Error with CWM or TWRP Recovery on Rooted Android!。大体的思路和这个是一样的,稍微有点小改动,解压后的 updater-script 开头如下:

assert(getprop("ro.product.device") == "kate" || getprop("ro.build.product") == "kate" || getprop("ro.product.device") == "kenzo" || getprop("ro.build.product") == "kenzo" || abort("E3004: This package is for device: kate,kenzo; this device is " + getprop("ro.product.device") + "."););
assert(xiaomi.verify_modem("MSM8976.LA.1.0.c3-30041-STD.PROD-1.77504.1.83742.1") == "1");

考虑到我刷机時的报错信息为 xiaomi.verify.modem() 错误,所以我将第二行的 assert 给删除了,然后重新压缩并再次刷入,记得不要选择 zip 签名校验,那么就成功刷入 lineage os 了,记得将 Gapps 的包也一起刷入再开机,已经开机了,那么在后面刷入 Gapps 的时候记得双清再开机。

3 跳过开机向导的网络连接(Fxxk GFW)

刷好 Gapps 以后进入开机向导,貌似连接网络那一步还是没有提供可以跳过的选项。解决方案如下:首先拔出 SIM 卡,然后在选择网络的界面把上下左右四个边角點一通,就可以跳过了。然后就是成功进入主界面了,刷机完成。

05-02 09:59