前言
先叠个甲,此教程只是笔者长时间没有接触刷机,从而对新的Android系统架构不熟悉,导致踩了一些坑(又是刷机刷到凌晨3点多,所以千万要遵守刷机圈的准则——不要晚上进行刷机😅,本文章就是对此次刷机的一些总结和避坑指南。不是新手教程,新手想要学习刷机的话请移步哔哩哔哩。
刷机流程(旧版)
跟常规的刷机差不多,都是做如下工作
- 手机解锁BL
- 刷入第三方的recover,如TWRP
- 刷入ROM
- 刷入其他,如magisk,gapps等
手机解锁BL
这里不再赘述小米手机的解锁bl,网上已经有很多完整且易懂的教程了。建议使用小米手机或一加手机,手机变砖也容易修复,ROM也有更多的选择。
刷入第三方的recover
按照以前的刷法的话,无非就是在fastboot模式下,通过adb将rec刷入rec分区,但这是对于较老旧的机型才是这么刷写的,但事实确实在 Android 7.0 Nougat 开始开始使用 A/B 分区(也被称为无缝更新)。这个确实是一个大坑,如果不事先明白这个分区的话,对后续的刷机有很大影响,可能会让你刷写失败,也可能让手机变砖。
刷入ROM
常规的方式都是卡刷或者线刷,网上也是有详细的对这方面的介绍和讲解,这里不再赘述。然后这里的踩坑也是主要讲解卡刷,线刷跟以前几乎没什么区别
刷入magisk,gapps
刷入这两个一般都是在刷写rom结束后,继续将magsik和gapps的包通过卡刷的方式刷写入系统,但由于A/B 分区原因,现在无法直接通过TWRP来卡刷进ROM。所以得使用新的流程。
踩坑点
A/B 分区分析
先用两站图来演示一下A/B 分区与非A/B 分区的区别,此处只是个人理解,如果需要了解其中详情,请移步到Android官网。
非A/B分区
AB分区
从上面两张图可以看出,非A/B分区是有一个单独的recover分区,如果是这样的话我们刷入第三方的rec就可以永久的保存到手机上,我们也可以随时进入到第三方的rec来进行刷写ROM。
然而A/B分区的话就是没有recover分区,但他提供了两个boot分区,分别是boot_a和boot_b,我们再刷写的过程中是需要选择刷写槽位的。比如我们一开始是将rec刷写到了a槽位,那么我们在刷写rom的时候就应该选择刷写到b分区,这样才不会覆盖掉我们原来在a槽位所写入的rec,这样才可以实现永久保存第三方的rec,但实际情况确是现在的都不支持其他的rec往自己的rom内进行刷写数据,比如在B槽的rec来刷写面具到a槽位的boot分区,这种是行不通的。
失败案例
正如上面所属,如果我们在不同的分区来给系统刷写面具或gapps的话是很容易刷写失败的,还有一点就是现在的较新版本的类原生系统自带的rec已经不是TWRP。是另一套方案了,这种新的方案的话就是使用adb命令来进行刷写,不像以前直接使用TWRP来进行卡刷,后面会讲解新版本的rec的刷写方法。
下面就是TWRP在B分区,ROM是刷写到A分区,通过卡刷的方式刷写magisk和gapps都是失败的😅
所以现在的较新的机型都不适用TWRP来进行卡刷了,改为使用adb侧载的方式进行卡刷了。
正确卡刷流程(AB分区)
准备工作
更非AB分区的一样,准备卡刷包和rec文件,只不过卡刷的方式不是以前使用TWRP来进行刷写了,
如果你找不到rec文件的话,你可以选择从卡刷包里面进行提取。提取工具放在下方了
提取工具
此工具的使用方法参照此处,在命令行选择a,提取所有文件,因为不单单使用到boot.img
,还需要用到dtbo.img
和vendor_boot.img
,具体为什么是要用到boot以外的两个文件,请参照LineageOS安装
刷写流程
刷写recovery
将手机重启至fastboot模式,然后连接电脑(这里手机是已经解锁了bl的,如果没有解锁请先解锁bl)
输入如下命令
1 2 3 4 5 6 7 8 |
#检测设备 fastboot devices 刷写recovery fastboot flash dtbo dtbo.img fastboot flash vendor_boot vendor_boot.img fastboot flash boot boot.img #重启到recovery模式 fastboot reboot recovery |
格式化手机并删除data分区
此步骤会删除手机上所有数据,并且也会把手机原本的ROM也删除掉,如有重要数据请自行配置
通过音量减键,或点击屏幕选择第三项—Factory reset(恢复出厂设置),使用电源键或点击屏幕来确定
刷写ROM
选择主界面的第二选项,按两次电源键开启adb侧载模式
输入如下命令,将ROM,magisk,gapps等进行刷入
1 2 3 4 5 6 7 |
#检测设备 fastboot devices #刷写ROM,magisk,gapps adb sideload filename.zip #重启,进入系统 adb reboot system |
到这就是刷机完成。接下来就可以愉快地玩机了🤪
优化(可选)
解决类原生在国内连接WiFi显示网络受限,手机连接电脑,运行如下adb命令
1 2 3 4 5 6 |
# 修改网络验证服务 adb shell settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204 settings put global captive_portal_https_url http://connect.rom.miui.com/generate_204 |