前言
我有一台老旧的 Nokia 7P
手机,购买于 2018 年暑假,当时看中的主要是它的类原生系统,它也在后续的工作中陪伴了我 4 年。虽然现在已经换成了苹果,但是平时看视频之类的娱乐还是停留在它上面。之前就一直想在这台 Nokia 7P
上安装第三方系统,但是由于尝试解锁 bootloader
一直失败,只能暂且作罢。
最近在网上看到了一篇解锁 bootloader
的文章,貌似已经有三方的工具公开了,随即摩拳擦掌跃跃欲试,挑了个空闲的日子开始这趟刷机之旅。
驱动
在诺基亚关机状态下,长按电源键与音量加可以进入 bootloader
模式,此时可以使用 Android SDK
提供的 fastboot
工具刷入 recovery
,比如常见的 TWRP
,这是刷机的首要步骤。然而将 bootloader
模式下的手机使用 USB
连接电脑,电脑是无法识别的,因为缺少了驱动程序。
安装驱动程序最简单的方式就是在手机开机状态下,使用 USB
连接电脑,会自动从手机挂载出一个 CD-ROM
盘符,里面就有官方驱动安装程序,更多的安装方式可以参考这篇文章。
安装完驱动后打开设备管理器,如果能看到 bootloader
状态下的手机被识别成 fastboot
设备,则说明驱动已正常运行。
解锁
在驱动安装完成的情况下,按照第一篇文章的步骤,下载 Unlock Tool
并在网页上获取 OPT
口令。每天的 OPT
口令有上限,先到先得,并且每个口令有效期为 15 分钟。打开工具输入 OPT
,并且使用 USB
连接处于 bootloader
模式下的手机,点击解锁按钮即可。
TWRP
成功解锁 bootloader
后,我们可以无限制的刷入三方固件了,首先要准备的是 TWRP,从网站上下载最新固件并命名为 twrp.img
。
我首次尝试在 bootloader
模式中直接刷入固件:
1 | fastboot flash recovery twrp.img |
但是显示如下错误:
FAILED (remote: (recovery_b) No such partition)
于是我选择载入到 TWRP
中进行安装:
1 | fastboot boot twrp.img |
手机自动重启后,便进入了 TWRP
中,此时可以在选项中将当前 TWRP
覆盖手机的 recovery
。
AB 分区
较新的手机现在都是有 AB 分区的,可以安装两个独立的系统,在 bootloader
模式下可以选择进入的分区:
1 | fastboot set_active [a|b] |
如果你在 A 分区安装了系统,但是激活了 B 分区,那么重启手机后将无法成功进入系统。同样,AB 分区也有两套 recovery
,如果你只是将 TWRP
安装在 B 分区,那么 A 分区的 recovery
还是自带的。我将 TWRP
安装在了 B 分区,如果此时激活的是 A 分区,那么可以使用如下命令可以进入 B 分区的 recovery
:
1 | fastboot set_active b |
刷机
我选择的三方固件是 LineageOS
,可以在论坛中下载镜像。在 TWRP
中,可以直接通过 USB
传输文件,也可以使用 adb
命令,能够很方便地将系统包传输到手机中。
在 TWRP
的界面中,先擦除掉所有数据,再进入安装界面并选中系统包开始刷入。如果此时激活的是 B 分区,那么系统的安装会默认选择 A 分区。安装完后重启之前,需要切换到 A 分区,然后重启。
分区
在首次刷入系统包时报错:
TWRP Error Applying Update: 28 kDownloadOperationExecutionError
搜索后得知是因为 Nokia
默认的 system
分区空间太小,需要重新分区,使用 Repartition tool 重新分区后重复上诉步骤即可。