红米Note 11 Pro 5G刷机救砖过程

这篇文章写的稍微有点乱,刷机的问题比较复杂,精力有限,先这样吧。阅读本文部分内容需要有一点技术基础(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
2
3
4
5
fastboot flash vendor_boot vendor_boot.img
Warning: skip copying vendor_boot_a image avb footer (vendor_boot_a partition size: 67108864, vendor_boot_a image size: 100663296).
Sending 'vendor_boot_a' (98304 KB) OKAY [ 2.463s]
Writing 'vendor_boot_a' FAILED (remote: 'size too large')
fastboot: error: Command failed

Stack overflow 说的加 -S 参数也无效。

1
2
3
4
5
fastboot flash -S 256M vendor_boot vendor_boot.img
Warning: skip copying vendor_boot_a image avb footer (vendor_boot_a partition size: 67108864, vendor_boot_a image size: 100663296).
Sending 'vendor_boot_a' (98304 KB) OKAY [ 2.457s]
Writing 'vendor_boot_a' FAILED (remote: 'size too large')
fastboot: error: Command failed

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
2
3
4
5
fastboot boot ./twrp-3.7.1_12-1-pissarro.img 
Sending 'boot.img' (131072 KB) OKAY [ 3.263s]
Booting ERROR: usb_read failed with status e00002ed
FAILED (Status read failed (No such file or directory))
fastboot: error: Command failed

尝试boot Pixel提供的Recovery img也同样失败

1
2
3
4
5
fastboot boot ./PixelExperience_veux-14.0-20240316-0817-OFFICIAL.img
Sending 'boot.img' (131072 KB) OKAY [ 3.257s]
Booting ERROR: usb_read failed with status e00002ed
FAILED (Status read failed (No such file or directory))
fastboot: error: Command failed
1
2
3
4
5
6
7
fastboot boot vendor_boot.img 
creating boot image...
creating boot image - 100665344 bytes
Sending 'boot.img' (98306 KB) OKAY [ 2.371s]
Booting ERROR: usb_read failed with status e00002ed
FAILED (Status read failed (No such file or directory))
fastboot: error: Command failed

3、参考下面这篇文章

  • 对于只有A分区的手机,可以直接刷到recovery分区 fastboot flash recovery TWRP.img
  • 对于AB分区设备,没有recovery分区,有boot分区。但一般也不能直接刷到boot分区,而是要直接启动Recovery,但是我之前启动失败过了。索性尝试直接刷到boot分区,再启动,成功进入TWRP界面。

安卓手机如何刷入TWRP_Recovery刷机工具-2021年xda精编版-ROM乐园官网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 查看设备
fastboot devices
irlvzdwkbmbeoffe fastboot

# 查看当前slot
fastboot getvar current-slot
current-slot: a
Finished. Total time: 0.000s

# 设置当前slot
fastboot set_active a
Setting current slot to 'a' OKAY [ 0.001s]
Finished. Total time: 0.001s

# 下载TWRP,刷入boot分区
fastboot flash boot twrp-3.7.1_12-1-pissarro.img
Sending 'boot_a' (131072 KB) OKAY [ 3.264s]
Writing 'boot_a' OKAY [ 0.487s]
Finished. Total time: 3.759s

# 启动Recovery
fastboot reboot recovery
Rebooting into recovery OKAY [ 0.001s]
Finished. Total time: 0.001s

此时TWRP是在一个fastboot界面,只能切换adb和fastboot模式,不能刷机。

1
2
3
4
5
6
7
8
# 在TWRP界面选择enable adb,此时可以adb devices
adb devices
List of devices attached
irlvzdwkbmbeoffe recovery

# 如果在TWRP界面选择enable fastboot,此时可以fastboot devices
fastboot devices
irlvzdwkbmbeoffe fastboot

在TWRP中选择reboot,选择Recovery,然后发现可以启动到正常的TWRP Recovery界面,于是后面的刷机就没问题了。在TWRP的advanced界面,选择adb sideload刷机,adb sideload命令很快执行完了,而屏幕上报错说需要重启。尝试重启Recovery在AB slot之间切换,还是不行。

不过这个时候发现设备可以正常进xiaomi系统了,应该是原先就有的系统,之前boot分区被刷坏了。

1
2
adb sideload PixelExperience_veux-14.0-20240316-0817-OFFICIAL.zip 
Total xfer: 0.00x
1
2
Devices on super may not mount until rebooting recovery.
To flash additional zips, please reboot recovery to switch to the updated slots.

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博客

官方刷机包是这个 TKTCNXM
Download Redmi Note 11 Pro/Pro+ / Xiaomi 11i/Hypercharge / Xiaomi 11i 5G / Note 11 Pro+ 5G (pissarro) V14.0.4.0.TKTCNXM MIUI 14 Stable Full Rom | XiaomiROM.com

其他
MIUI刷机入门-通过线刷升级

卡刷包和线刷包

后来我发现,小米的官方刷机包有两种,一种卡刷包,一种线刷包。例如这个页面就提供了同一个设备型号两种刷机包的下载 下载红米 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.shflash_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分区的设备这么刷必然会变砖,很奇怪,这个设备偏偏可以这么刷。