Nokia 7P 刷机

前言

我有一台老旧的 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
2
fastboot set_active b
fastboot reboot recovery

刷机

我选择的三方固件是 LineageOS,可以在论坛中下载镜像。在 TWRP 中,可以直接通过 USB 传输文件,也可以使用 adb 命令,能够很方便地将系统包传输到手机中。
TWRP 的界面中,先擦除掉所有数据,再进入安装界面并选中系统包开始刷入。如果此时激活的是 B 分区,那么系统的安装会默认选择 A 分区。安装完后重启之前,需要切换到 A 分区,然后重启。

分区

在首次刷入系统包时报错:

TWRP Error Applying Update: 28 kDownloadOperationExecutionError

搜索后得知是因为 Nokia 默认的 system 分区空间太小,需要重新分区,使用 Repartition tool 重新分区后重复上诉步骤即可。