这篇文章写的稍微有点乱,刷机的问题比较复杂,精力有限,先这样吧。阅读本文部分内容需要有一点技术基础(adb和fastboot的配置安装,Windows和Mac / Linux命令行的使用),希望能帮到有缘人。
背景:设备型号在背面贴纸上写的是 21091116C
,BL锁已解除,已经变砖,直接开机会卡在Android图标上无限重启。可以进fastboot。这个设备有AB分区。电脑装好了Android开发工具。
小米手机操作说明:
- 电源 + 音量减按住5s,进Fastboot。
- 电源 + 音量加按住5s,进Recovery。
1、按照PixelExperience网站的操作先刷vendor_boot再刷recovery,但是都刷失败了,提示文件过大。
Xiaomi POCO X4 Pro 5G / Redmi Note 11 Pro 5G / Redmi Note 11 Pro+ 5G / Redmi Note 11E Pro (veux) - PixelExperience
Install PixelExperience on veux - PixelExperience Wiki
1 | fastboot flash vendor_boot vendor_boot.img |
Stack overflow 说的加 -S
参数也无效。
1 | fastboot flash -S 256M vendor_boot vendor_boot.img |
2、按照下面视频说的,要先直接内存启动 recovery fastboot boot TWRP.img
,然后在TWRP界面刷入设备。但是这个启动也失败了,报错 usb_read failed with status e00002ed
How to Install TWRP Recovery on Redmi Note 11 and 11 Pro/Plus
1 | fastboot boot ./twrp-3.7.1_12-1-pissarro.img |
尝试boot Pixel提供的Recovery img也同样失败
1 | fastboot boot ./PixelExperience_veux-14.0-20240316-0817-OFFICIAL.img |
1 | fastboot boot vendor_boot.img |
3、参考下面这篇文章
- 对于只有A分区的手机,可以直接刷到recovery分区
fastboot flash recovery TWRP.img
- 对于AB分区设备,没有recovery分区,有boot分区。但一般也不能直接刷到boot分区,而是要直接启动Recovery,但是我之前启动失败过了。索性尝试直接刷到boot分区,再启动,成功进入TWRP界面。
安卓手机如何刷入TWRP_Recovery刷机工具-2021年xda精编版-ROM乐园官网
1 | # 查看设备 |
此时TWRP是在一个fastboot界面,只能切换adb和fastboot模式,不能刷机。
1 | # 在TWRP界面选择enable adb,此时可以adb devices |
在TWRP中选择reboot,选择Recovery,然后发现可以启动到正常的TWRP Recovery界面,于是后面的刷机就没问题了。在TWRP的advanced界面,选择adb sideload刷机,adb sideload命令很快执行完了,而屏幕上报错说需要重启。尝试重启Recovery在AB slot之间切换,还是不行。
不过这个时候发现设备可以正常进xiaomi系统了,应该是原先就有的系统,之前boot分区被刷坏了。
1 | adb sideload PixelExperience_veux-14.0-20240316-0817-OFFICIAL.zip |
1 | Devices on super may not mount until rebooting recovery. |
4、尝试直接用TWRP自带的Install zip,先用adb把文件传输到手机上。直接用Install zip,但是还是失败了。
1 | adb push ./PixelExperience_veux-14.0-20240316-0817-OFFICIAL.zip /sdcard/TWRP/ |
最后经过了很多查询,发现似乎是设备不一样,虽然都是Note 11 Pro,但是我的设备是 pissarro,而PE里下载的是veux,两者的code name是不一样的。试了刷官方的pissarro是可以的。
最后发现联发科的CPU很少有Custom ROM,没法刷机,除非自己想办法制作ROM。
Custom ROM for pissarropro Xiaomi Redmi Note 11 Pro+ 5G : r/androidroot
根据这个视频,刷机其实不行(主要是没有合适的ROM),只是可以借助刷机方式刷入修补的boot镜像从而实现root效果
小米红米全系刷机教程一镜到底,支持AB分区,保姆式教程
14分钟教会你玩转AB分区TWRP【刷机进阶篇】_哔哩哔哩_bilibili
安卓刷机必备基础知识_ab分区-CSDN博客
卡刷包和线刷包
后来我发现,小米的官方刷机包有两种,一种卡刷包,一种线刷包。例如这个页面就提供了同一个设备型号两种刷机包的下载 下载红米 Note 11 Pro (pissarro) 稳定版刷机包 HyperOS OS1.0.6.0.TKTCNXM | XiaomiROM.com
- 从小米系统设置界面下载的是卡刷包,直接在手机上刷机即可。文件名类似
miui_PISSARRO_V14.0.7.0.TKTCNXM_9b45f29b41_13.0.zip
,是zip格式,解压出来里面主要文件就是payload.bin
。 - 在网上可以下载到线刷包,线刷包文件名类似
pissarro_images_OS1.0.6.0.TKTCNXM_20240927.0000.00_13.0_cn_7e10e224f8.tgz
,是tgz格式,解压出来里面有flash_all.bat
等文件,可以看到这个脚本里是怎么调用fastboot命令把整个设备给刷好的。小米的MiFlash工具也是必须使用线刷包。 - 实际上如果电脑上配置好了adb和fastboot,可以直接命令行运行线刷包中的
flash_all.sh
或flash_all.bat
就能把设备整个刷机了,MiFlash工具本质上也只是调用这个脚本,只是顺便帮忙装了下驱动。我实际测试用MiFlash反而出现了MiFlash中途闪退的问题,后来直接在Linux上运行flash_all.sh
就刷好了。注意这个sh脚本在Mac上可能是没法运行的,因为有些语法不兼容,会报错,所以我试了Linux果然就没问题了。 - 现在回过头来看,其实单纯救砖很简单,直接用线刷包把设备整个重新刷一遍就行了,设备所有分区都会恢复到官方设计的样子。至于如何刷机,其实也完全可以参考线刷包里的脚本是怎么写的。由于这个设备没有对应的ROM能用,我暂时也就不想更深入研究了。
几点总结
- 刷机需要先确定自己的设备型号,具体到code name,然后依据code name再去找ROM,不兼容的很可能会把设备刷成砖。同样的设备型号比如
Note 11 Pro 5G
也会有不同的code name,硬件不同,所以ROM不同。手机刷机和电脑装系统不一样,电脑系统一般都包含很多驱动,而手机ROM只有设备自己特定的驱动,不兼容的ROM要么刷不上要么刷上也很大可能不工作。 - 联发科CPU的ROM很少。如果想刷机,在买手机之前就要想好,尽量买热门的品牌型号。
- 官方的MiFlash工具可以用来把设备刷上官方系统,理论上可以用来救砖,但是一是很长时间没有更新维护了,二是只支持官方ROM,三是必须用Windows,我主要用Mac。
- 我修复这个变砖手机的关键步骤是直接在fastboot模式把TWRP Recovery刷到boot分区,但是网上很多都说AB分区的设备这么刷必然会变砖,很奇怪,这个设备偏偏可以这么刷。