不使用 TWRP,为你的 Pixel 设备刷入 Android 12 和 Magisk
Android 11 的继任者,Android 12 (S) 已经推出了第一个公共 beta 版,并向 Pixel 等设备开放使用。
但 TWRP 之类的第三方 Recovery 可能还没做好 Android 12 的支持,是不是 Magisk 就无望了呢?其实并不。
跟随这篇文章的步骤,你将可以:
- ✓ 刷入最新的 Android 12 Public Beta
- ✓ 在无需第三方 Recovery 的情况下刷入 Magisk
0x0 准备工作
你将需要:
- Android Platform Tools
- Android 12 原厂镜像
- Magisk 23.0 或更高版本
- 解锁的 Bootloader
💡 这篇文章里将如同这样标记我在安装过程中踩的坑以及如何回避。还有一些小提示。
个人配置:
- Pixel 3 (刷入时版本为 Android 11,
RQ2A.210505.002
,2021 年 5 月)- macOS Catalina 10.15.7
- Magisk 23.0
既然你是 Pixel 用户,我们则假设你已经有一定的基本知识。Platform Tools 安装,控制台交互使用之类内容将不再于此赘述。
💡 我们使用直接刷入原厂镜像的方式,不需要在 Android Beta 计划注册即可使用。但你如果希望收到后序版本的 OTA 更新,请在设备上登录你的 Google 账户,并在网页中选择注册你的设备。
当你准备好以上工具后,我们就可以开始了。
0x1 解锁 Bootloader
💡 如果你的 Bootloader 已经解锁,请暂时不要跳过此节。
备份你的数据
如果你的 Bootloader 还未解锁,立刻备份你的数据!
在 Bootloader 解锁过程中,所有应用数据、系统设置等将在解锁过程中被彻底抹去,在一切开始之前,请务必备份你的数据。
如果你的 Bootloader 已经解锁,立刻备份你的数据!
刷入原厂镜像过程中,数据仍然会被一并抹去,请务必在开始前备份你的数据。
退出 Google 账户
💡 如果你的 Bootloader 已经解锁,即使 FRP 在默认情况下会自动禁用,但仍然建议你执行这一步骤以防万一。你可以跳过本节的剩余部分。
在 设置 > 帐号
中退出你的 Google 账户登录。
允许 Bootloader 解锁
在 设置 > 关于手机
中滚动到底部,连续点击「版本号」,直到解锁开发者选项。
前往 设置 > 系统 > 开发者选项
,打开「OEM 解锁」开关。
进入 Bootloader
关机或重启,开机时保持按住「音量减」键,直到你看到有红色 ⚠️ 感叹号及红色 “Fastboot mode” 字样时即可松手。
💡 如果你选择重启,则不需要按电源键,保持按住「音量减」键即可。
如果你直接开机,请快速放开电源键,否则可能被识别成「开机」导致直接进入系统。
当然,如果你启用了 USB 调试,你也可以直接
adb reboot bootloader
,这是最稳定的方法。
解锁
使用 fastboot flashing unlock
解锁 Bootloader,并在手机上使用音量键选择「Unlock」,按电源键确认解锁 Bootloader.
⚠️ 如果选择确认,你的数据将在这一步被清除,请确认你已经备份了重要数据。
💡 部分 Pixel 2 XL 有一个特殊的命令:
fastboot flashing unlock_critical
,但由于 Android 12 并没有对 Pixel 2 系列的官方支持,所有支持的设备均使用上述命令即可。
0x2 刷入 Android 12
- 找到我们刚刚下载的 Android 12 原厂镜像,解压 zip.
💡 如果你使用 Linux 或 macOS,请确定
flash-all.sh
有执行权限,若要添加执行权限,请运行chmod +x flash-all.sh
- 进入 Bootloader.
- 刷入 Android 12
- 如果你是 Windows 用户,执行
flash-all.bat
- 如果你是 Linux 或 macOS 用户,执行
./flash-all.sh
- 如果你是 Windows 用户,执行
- 等待刷入脚本执行完毕
至此,Android 12 刷入完毕。
0x3 打补丁
适用于 Pixel 3 的 TWRP 停更在了 3.3.0 且不支持 Android 10 或更高版本,于是直接刷入 Magisk 包的方法就无法使用了。
- 正常进入系统,正常完成设置
- 解锁开发者选项,打开「USB 调试」
- 安装下载好的 Magisk 安装包:
adb install Magisk-v23.0.apk
💡 禁用 Google Play Protect 可以显著提高安装速度。
- 找到我们刚刚解压的 zip,其中还有一个 zip,名字类似为
image-设备代号-版本号.zip
,如image-blueline-spb1.210331.013.zip
- 将其解压,找到
boot.img
- 推送到手机:
adb push boot.img /sdcard
- 在 Magisk 应用中,选择「Magisk」卡片上的「安装」
- 选择「选择并修补一个文件」,再选中我们刚刚推送到手机上的
boot.img
💡 Magisk 打完补丁后,文件名将有一块随机部分,建议提前改名以便拉取和刷入。
⚠️ 请勿直接复制粘贴以下命令。
- 待 Magisk 打完补丁后,将此文件从手机中拉至电脑:
adb pull /sdcard/Download/Magisk-xxx.img
- 重启到 Bootloader
💡 我们已经用上 ADB 了,跑
adb reboot bootloader
即可。 - 启动打补丁后的
boot.img
:fastboot boot Magisk-xxx.img
⚠️ Pixel 3, Pixel 5 已确定,其它 Pixel 设备可能同样受影响。
直接刷入 Magisk 修补后的
boot.img
将导致无法启动,请不要使用fastboot flash boot Magisk-xxx.img
直接刷入!
此时你达到了「临时 root」的效果,重启后将失效,接下来我们使它「永久化」。
0x4 永久化刷入 Magisk
- 回到 Magisk 应用
- 选择「Magisk」卡片上的「安装」
💡 此时,你会发现比起之前多了一个选项,而它恰好就是我们需要的。
- 选择「直接安装(推荐)」
- 待 Magisk 刷入完成以后,重启即可
0x5 完成
全部工作正式完成!接下来可以恢复数据,正常使用了。
-0x1 以防万一
如果遇到以下问题:
- 卡在 Google「G」开机动画
- Google logo 出现后直接黑屏重启
- 回到 Bootloader 界面,”Enter reason” 显示
no valid slot to boot
那么很不幸,刷入的 boot.img
出了问题,若要在不丢失数据的情况下恢复启动,找到我们刚刚解压的原厂 boot.img
,运行 fastboot flash boot boot.img
,重启即可。
💡 如果遭遇
no valid slot to boot
,很有可能现在的启动槽位不是当前系统所在槽位,请切换槽位后再刷入boot.img
原理是:原本的启动槽位启动失败后,自动回落到另一个启动槽位,如果仍然启动失败就会回到 Bootloader,等待救援操作。
检查 Fastboot 界面显示的「Boot slot」,如果是
b
,则切换到a
,反之则切换到b
.比如,切换到
a
槽位,请使用命令:fastboot --set-active=a