发布于 

红米手机刷机教程

⚠️ 风险提示

  • 刷机会清空全部数据,操作前完整备份(照片、通讯录、微信记录、OTP/Authenticator 密钥)
  • 解锁 Bootloader 通常失去保修,部分机型永久熔断保险丝(三星 Knox 0x1、小米部分机型)
  • 操作不当可能变砖,文末提供救砖思路,但不保证一定能救回
  • 电量 ≥ 60%、用原装数据线、台式机插机箱后置 USB 口
  • 本文仅用于技术学习与自有设备研究,请遵守当地法律法规

适用机型

红米(Redmi)是小米旗下走量的产品线,型号极其繁杂。刷机圈用 codename(代号) 交流,而不是"红米 K70"这种市场名。

市场名 codename 型号 平台 备注
红米 K30 4G phoenix M2004J7AC 骁龙 730G
红米 K30 5G picasso M2001G7AE 骁龙 765G
红米 K30 Pro lmi M2006J10C 骁龙 865
红米 K30S 至尊版 apollo M2007J3SC 骁龙 865
红米 K40 alioth M2012K11AC 骁龙 870 刷机热门机型
红米 K40 Pro haydn M2012K11C 骁龙 888
红米 K40 游戏增强版 ares M2104K10C 天玑 1200 天玑平台,工具不同
红米 K50 rubens 22041211AC 天玑 8100
红米 K50 Pro matisse 22011211C 天玑 9000
红米 K50 至尊版 diting 22081212C 骁龙 8+ Gen1
红米 K60 mondrian 22122RK93C 骁龙 8+ Gen1
红米 K60 Pro socrates 22127RK46C 骁龙 8 Gen2
红米 K70 vermeer 23113RKC6C 骁龙 8 Gen2
红米 K70 Pro manet 23117RK66C 骁龙 8 Gen3
红米 K70 至尊版 rothko 2407FRK8EC 天玑 9300+
红米 Note 11T Pro xaga 22041216C 天玑 8100 刷机神机
红米 Note 12 Turbo marble 23049RAD8C 骁龙 7+ Gen2 刷机神机
红米 Turbo 3 peridot 24069RA21C 骁龙 8s Gen3
红米 Turbo 4 sattuma 以官方为准 天玑 8400-Ultra 较新,资料少

⚠️ 警告:红米同一市场名在不同地区可能有完全不同的代号与硬件(例如"红米 Note 12"有 4G/5G/不同芯片版本)。认 codename,不认市场名。最可靠的确认方式:

# 系统内
adb shell getprop ro.product.device
adb shell getprop ro.product.name
adb shell getprop ro.product.board

# fastboot 下
fastboot getvar product
fastboot getvar variant

# 或者看包装盒/机身背面的型号(如 23113RKC6C)

三个必须分清的固件体系

体系 说明 典型机器
MIUI(旧) 小米自研系统,Android 5 ~ 14 K40 及更早的出厂系统
HyperOS(新) 小米新系统,Android 14 起,底层融合 Vela 物联网 K70、Turbo 3、老机型升级后
Android One / 国际版 部分海外机型 小米 A 系列(已停更)

📌 MIUI 与 HyperOS 的 fastboot 线刷包结构不同,不能混刷。下载固件时务必确认对应自己的系统体系。

准备工作

工具清单

工具 用途 获取方式
Mi Unlock 官方 BL 解锁工具(Windows) 小米官方解锁页(需登录小米账号)
MiFlash(XiaoMiFlash) 官方线刷工具 小米官方 / 社区分发
MiFlash Pro 新版线刷工具 小米官方
Android SDK Platform Tools adb / fastboot developer.android.com
小米 USB 驱动 fastboot / EDL 识别 MiFlash 自带 / 小米官方
Qualcomm QDLoader Driver 9008 模式驱动 社区分发
QPST / QFIL 高通 9008 烧录工具 需授权账号
payload-dumper-go 提取 payload.bin GitHub: ssut/payload-dumper-go
Magisk Root 方案 GitHub: topjohnwu/Magisk
小米官方 ROM 下载 官方固件 小米官方 ROM 下载页

环境检查

# Windows PowerShell
cd D:\platform-tools

.\adb.exe version
# Android Debug Bridge version 1.0.41

.\fastboot.exe --version
# fastboot version 34.0.0-xxxxxxx

# 手机开启 USB 调试后
.\adb.exe devices
# List of devices attached
# 8be64f1a        device

.\adb.exe reboot bootloader
.\fastboot.exe devices
# 8be64f1a        fastboot
# Linux / macOS
adb devices
fastboot devices

# Linux udev 规则
sudo tee /etc/udev/rules.d/51-android.rules <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger

小米/红米的 USB VID 主要是:

VID 模式
2717 小米自有(MTP / ADB / fastboot 部分机型)
18d1 fastboot(Google 通用 ID)
05c6 高通 9008 EDL

固件下载

来源 说明
小米官方 ROM 下载页 最安全,提供 fastboot 线刷包(.tgz) 与 卡刷包(.zip)
小米社区 → 对应机型版块 内测/开发版、救砖包
XDA Forums 第三方 ROM、GSI、TWRP
MIUI 官方论坛(国际) 国际版 ROM

两种包的区别:

类型 扩展名 用法 是否清数据
fastboot 线刷包 .tgz / .tar.gz MiFlash 或 fastboot 脚本 可选(脚本决定)
卡刷包(Recovery ROM) .zip 系统更新本地升级 / adb sideload / TWRP 否
# 校验(官方页面会给出 MD5)
md5sum vermee_images_V14.0.8.0.TNKCNXM_20240101.0000.00_13.0_cn_xxxx.tgz

# Windows
Get-FileHash .\xxx.tgz -Algorithm MD5

一、解锁 Bootloader(最难的一步)

红米/小米的 BL 解锁是全安卓品牌中最麻烦的:需要小米账号、需要绑定设备、需要等待期、可能需要社区等级。这不是技术问题,是政策门槛。

1.1 解锁政策详解

项目 说明
小米账号要求 必须登录小米账号,且账号需在设备上登录满一定时长
绑定设备 账号与设备进行绑定,一个账号有绑定设备数量上限
等待期 时长因机型、账号、地区而异,常见 72 小时 ~ 30 天不等,部分新机型/新账号更长
社区等级 部分机型/时期要求小米社区达到特定等级(如 LV.4)并参与答题
名额限制 某些时期有每日解锁名额限制
版本号限制 部分时期只支持特定系统版本解锁
次数限制 一个账号每月解锁次数有限

📌 政策会变。 小米的解锁规则经常调整(收紧/放宽),以申请页面实际显示为准。下面是通用流程,但具体门槛请以官方页面提示为准。

1.2 详细解锁步骤

Step 1 — 手机端准备

  1. 设置 → 我的设备 → 全部参数,连点 MIUI 版本 / HyperOS 版本 7 次开启开发者选项
  2. 设置 → 更多设置 → 开发者选项(HyperOS 在 设置 → 关于手机 附近)
  3. 打开 USB 调试
  4. 打开 OEM 解锁
  5. 进入 设备解锁状态(在开发者选项内,部分机型叫「解锁状态」)
  6. 点击 绑定账号和设备 → 登录小米账号 → 绑定
绑定成功后,页面会显示:
"账号已与设备绑定,可在 X 小时后解锁"

⚠️ 警告

  • 绑定期间不要退出小米账号、不要恢复出厂、不要换主板,否则计时可能重置
  • 绑定后需要保持联网(小米建议),部分机型要求期间至少联网一次
  • 等待期内不要重复点击绑定,可能重置计时

Step 2 — 下载 Mi Unlock 工具

  1. 电脑访问小米官方解锁页面(具体 URL 请从小米社区/官方支持页获取,避免访问到钓鱼站)
  2. 登录与手机上相同的小米账号
  3. 下载 Mi Unlock(miflash_unlock.exe)

Step 3 — 执行解锁

# 1. 手机关机
# 2. 按住 音量下 + 电源键 进入 fastboot(显示兔子维修图标)
#    或从系统执行:adb reboot bootloader
# 3. USB 线连接电脑
# 4. 电脑运行 miflash_unlock.exe,登录同一小米账号
# 5. 工具显示 "已连接设备"
# 6. 点击 "解锁"

工具输出示例:

正在验证账号...
账号已绑定设备
剩余等待时间:0 小时
正在解锁...
解锁成功
设备将重启

Step 4 — 手机端确认(部分机型)

部分机型在解锁时会显示确认界面,用音量键选择 Unlock,电源键确认。

# 验证解锁状态
fastboot oem device-info
# 预期输出:
# (bootloader)    Device tampered: false
# (bootloader)    Device unlocked: true
# (bootloader)    Device critical unlocked: false
# (bootloader)    Charger screen enabled: false
# (bootloader)    Display panel:
# (bootloader)    Have console ring buffer: true
# OKAY [  0.015s]
# Finished. Total time: 0.015s

关键字段:Device unlocked: true

# 也可以用
fastboot getvar unlocked
# unlocked: yes

⚠️ 警告:解锁会清除全部数据。解锁后首次开机会很慢(5~15 分钟),属正常。

1.3 解锁常见失败

报错 原因 处理
账号与设备绑定时间不足 / 显示剩余小时数 等待期未到 只能等。没有任何绕过方法
该账号无权限解锁 社区等级/资格不足 提升社区等级或完成答题
设备未绑定账号 手机端没点绑定 回手机端开发者选项绑定
账号与当前设备不匹配 电脑登录的账号与手机不同 用同一账号
Couldn't verify device / 无法验证设备 网络问题 / 服务器问题 换网络、换时间重试
Current account is not bound to this device 绑定失效 重新绑定,重新计时
工具显示 未连接设备 驱动问题 装小米驱动,换 USB 2.0 口
卡在 正在验证账号... 服务器响应慢 多试几次,避开高峰
提示 解锁次数已达上限 账号月度配额用尽 等下个月

⚠️ 警告:网上所有"秒解 BL""绕过等待期"的付费服务,本质上是使用大量已绑定满时长的小米账号池,或利用漏洞。这些方式:

  • 有账号被小米封禁的风险(设备可能被标记为已解锁,后续无法保修)
  • 存在隐私泄露风险(需要提供设备信息、账号信息)
  • 政策随时失效,花钱打水漂

本文不推荐也不提供此类方法。

1.4 重新上锁

# 系统内:开发者选项 → 设备解锁状态 → 重新锁定(部分机型支持)
# 或 fastboot:
fastboot oem lock
# 或
fastboot flashing lock

⚠️ 警告:上锁前系统必须是官方原版。上锁后系统被修改 → AVB 校验失败 → 变砖。而且红米上锁后再次解锁需要重新走一遍完整等待期。

二、fastboot 线刷(MiFlash)

2.1 线刷包结构

下载的 fastboot 线刷包解压后(注意是 .tgz,需两次解压):

# Linux / macOS
tar -xzf vermee_images_V14.0.8.0.TNKCNXM_*.tgz
cd vermee_images_V14.0.8.0.TNKCNXM_*/
ls -la

# Windows:先用 7-Zip 解 .tgz 得到 .tar,再解 .tar

典型目录结构:

vermee_images_V14.0.8.0.TNKCNXM_20240101.0000.00_13.0_cn/
├── images/
│   ├── boot.img
│   ├── init_boot.img          # 新机型有
│   ├── vendor_boot.img
│   ├── dtbo.img
│   ├── vbmeta.img
│   ├── vbmeta_system.img
│   ├── super.img
│   ├── modem.img
│   ├── dsp.img
│   ├── bluetooth.img
│   ├── abl.elf
│   ├── xbl.elf
│   ├── tz.mbn
│   ├── ...(几十个 .elf / .mbn / .img)
│   └── cust.img
├── flash_all.sh               # 全清脚本
├── flash_all.bat
├── flash_all_except_data_storage.sh      # 保留数据
├── flash_all_except_data_storage.bat
├── flash_all_lock.sh          # 刷完上锁
├── flash_all_lock.bat
├── flash_gen_crc_list.py
└── ...

2.2 三个脚本的区别(重点)

这是小米线刷最容易搞混、后果最严重的地方。

脚本 是否清用户数据 是否上锁 BL 内部关键命令 适用场景
flash_all.sh ✅ 清空 ❌ 保持解锁 fastboot erase userdata
fastboot erase metadata
救砖、跨版本、出售、彻底重置
flash_all_except_data_storage.sh ❌ 保留 ❌ 保持解锁 不擦 userdata/metadata 平刷、小版本修复、升级保留数据
flash_all_lock.sh ✅ 清空 ✅ 重新上锁 末尾含 fastboot oem lock 刷回官方、恢复保修、出售

在 Linux / macOS 上查看脚本差异:

# 对比三个脚本
diff flash_all.sh flash_all_except_data_storage.sh

# 典型差异:
# < fastboot $* erase userdata
# < fastboot $* erase metadata
# ---
# > (无这两行)

diff flash_all.sh flash_all_lock.sh
# 典型差异(末尾):
# > fastboot $* oem lock

决策规则:

救砖 / bootloop / 卡 MI            → flash_all.sh(清空)
跨大版本(MIUI 14 → HyperOS)      → flash_all.sh(清空)
同版本平刷 / 修系统文件损坏         → flash_all_except_data_storage.sh
小版本升级想保留数据               → flash_all_except_data_storage.sh
刷回官方 + 想要保修 + 出售         → flash_all_lock.sh

⚠️ 警告

  • 用错了 flash_all.sh 而不是 ..._except_data_storage.sh = 数据全没,且不可恢复。执行前务必确认脚本名。
  • flash_all_lock.sh 会重新上锁,如果包里不是 100% 官方镜像(比如你自己改过),上锁后直接变砖。只有在刷官方完整包时才用。
  • 跨大版本(Android 13 → 14)不要用保留数据的脚本,极高概率卡开机。
  • 三个脚本都需要 BL 已解锁(除了 flash_all_lock.sh 用于上锁场景,但前提也是刷的时候能刷)。

2.3 方式一:执行脚本(推荐,最直接)

# Linux / macOS
cd vermee_images_V14.0.8.0.TNKCNXM_*/
chmod +x flash_all.sh

# 手机进 fastboot
adb reboot bootloader
fastboot devices

# 保留数据刷
./flash_all_except_data_storage.sh

# 或全清刷
./flash_all.sh
# Windows PowerShell
cd D:\fw\vermee_images_V14.0.8.0.TNKCNXM_*
adb reboot bootloader
fastboot devices

.\flash_all_except_data_storage.bat
# 或
.\flash_all.bat

预期输出(节选):

target reported max download size of 805306368 bytes
sending 'abl_a' (180 KB)...
OKAY [  0.021s]
writing 'abl_a'...
OKAY [  0.033s]
...
sending 'super' (2285896 KB)...
OKAY [ 62.451s]
writing 'super'...
OKAY [ 89.213s]
erasing 'userdata'...
OKAY [  1.234s]
erasing 'metadata'...
OKAY [  0.045s]
rebooting...

finished. total time: 213.671s

成功标志:最后 finished. total time: xxx,手机自动重启。

2.4 方式二:MiFlash 图形化工具

MiFlash(XiaoMiFlash)是小米官方线刷工具,适合不想敲命令的场景。

操作步骤:

  1. 解压线刷包到纯英文路径(如 D:\fw\vermee,不能有中文、空格)
  2. 手机进入 fastboot 模式(音量下 + 电源键),USB 连电脑
  3. 以管理员身份运行 XiaoMiFlash.exe
  4. 点击 Driver → 安装驱动(首次使用)
  5. 点击 选择(select) → 选择线刷包的 images 目录的上一级目录(即包含 images 文件夹的那层)
  6. 点击 加载设备(refresh) → 应显示设备序列号和 COM 口
  7. 右下角选择刷机模式(关键):
模式 行为 说明
全部删除(clean all) 清空所有数据 + 刷入 等价 flash_all.sh
保留用户数据(save user data) 保留 /data 等价 flash_all_except_data_storage.sh
全部删除并 lock(clean all and lock) 清空 + 重新上锁 等价 flash_all_lock.sh
  1. 点击 刷机(flash)
  2. 等待进度条走完,显示 操作成功完成
MiFlash 日志示例:
[10:23:45]  [COM3]:image received:super
[10:24:32]  [COM3]:image write done:super
[10:24:33]  [COM3]:erase partition:userdata
[10:24:35]  [COM3]:flash done
[10:24:35]  [COM3]:操作成功完成

⚠️ 警告

  • 路径绝对不能有中文或空格,MiFlash 会直接报 未指定的错误 或卡在 image received
  • 不要选错刷机模式,选错 clean all and lock 会直接上锁
  • MiFlash 有时会卡在 image received,通常是 USB 口问题,换 USB 2.0 口重试

2.5 方式三:手动逐分区刷入

adb reboot bootloader
fastboot devices
fastboot getvar current-slot       # 确认槽位 a/b

cd images/

# 关键分区
fastboot flash boot boot.img
fastboot flash init_boot init_boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash dtbo dtbo.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img

# 安全相关(谨慎)
fastboot flash abl abl.elf
fastboot flash xbl xbl.elf
fastboot flash tz tz.mbn

# 基带相关
fastboot flash modem modem.img
fastboot flash dsp dsp.img
fastboot flash bluetooth bluetooth.img

# 动态分区(进 fastbootd)
fastboot reboot fastboot
fastboot flash super super.img
fastboot flash cust cust.img

# 清数据(可选)
fastboot erase userdata
fastboot erase metadata

fastboot reboot

三、Recovery 卡刷路径

卡刷不需要电脑(或只需 adb sideload),适合系统还能进 Recovery 的场景。

3.1 系统更新本地升级(最简单)

  1. 下载卡刷包 .zip,放到手机存储根目录(不要解压)
  2. 设置 → 我的设备 → 系统版本(或系统更新)→ 右上角菜单 → 手动选择安装包
  3. 选中 zip,等待校验后自动重启升级

📌 官方系统更新会校验系统完整性。已解锁 BL + Root 的设备,官方 OTA 通常会失败或刷完丢 Root。这种情况下要走 3.2 的 TWRP 卡刷。

3.2 TWRP 卡刷(需要第三方 Recovery)

步骤 操作
1 下载对应机型的 TWRP / OrangeFox 镜像(XDA 或官方站点)
2 fastboot flash recovery twrp.img 或 fastboot boot twrp.img(临时启动)
3 立刻进 Recovery(按住音量上 + 电源键,或 fastboot reboot recovery)
4 TWRP 中:清除 → 格式化 Data(首次需要,输入 yes)
5 安装 → 选择 ROM zip → 滑动刷入
6 刷入 Magisk zip(如需 Root)
7 重启系统
# 临时启动 TWRP(不修改 recovery 分区,更安全)
fastboot boot twrp.img

# 永久刷入 TWRP
fastboot flash recovery twrp.img
fastboot reboot recovery

⚠️ 警告

  • TWRP 必须刷对应机型专属版本,刷错机型 = 变砖
  • Android 12+ 的很多机型 TWRP 支持不完善(触摸失效、解密失败),优先用 fastboot 线刷
  • 格式化 Data 会清空内部存储,先备份
  • 部分新机型没有独立 recovery 分区(recovery 在 boot 里),需刷 boot

3.3 adb sideload

官方 Recovery 下侧载:

adb reboot recovery
# Recovery 界面 → 选择 "Apply update from ADB"(中文:从 ADB 应用更新)

adb devices
# 预期:8be64f1a    sideload

adb sideload miui_VERMEE_V14.0.8.0.zip
# 预期:Total xfer: 2.00x

四、EDL 9008 深刷

4.1 什么是 EDL

EDL(Emergency Download Mode) 是高通芯片内置的最底层下载模式,暴露为 Qualcomm HS-USB QDLoader 9008。它运行在芯片 ROM 里,不依赖 eMMC/UFS 上的任何软件——即使 bootloader、分区表全损坏,只要主板供电正常,理论上都能救。

📌 红米绝大多数机型是骁龙平台,支持 EDL。天玑平台(K40 游戏增强版、K50、Note 11T Pro 等)走的是联发科 BROM / SP Flash Tool 路径,工具完全不同。

4.2 进入 9008 的方式

方式 操作 门槛 适用
adb 命令 adb reboot edl 无 系统能启动
fastboot 命令 fastboot oem edl / fastboot reboot-edl 无 fastboot 可用
深刷线 特制 USB 线(内部短接特定引脚) 需制作/购买 最常用
按键组合 关机后按 音量上 + 音量下 插线 无 部分机型
主板短接 拆机短接测试点 需拆机 完全无响应时
# 软件方式(解锁 BL 后可用)
adb reboot edl

# 或
adb reboot bootloader
fastboot oem edl

进入成功的标志:

Windows 设备管理器 → 端口 (COM 和 LPT)
└── Qualcomm HS-USB QDLoader 9008 (COM3)
Get-WmiObject Win32_SerialPort | Select-Object Name, DeviceID
# Qualcomm HS-USB QDLoader 9008    COM3
# Linux
lsusb | grep -i -E "qcom|qualcomm"
# Bus 001 Device 012: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)

⚠️ 警告:未解锁 BL 的机型,adb reboot edl / fastboot oem edl 会被拒绝(这是小米的安全策略,防止绕过解锁直接深刷)。这种情况下只能用深刷线或主板短接。

4.3 深刷线

深刷线是在 USB 线内部做手脚,强制设备进入 9008。

类型 原理 说明
D+ / D- 短接 短接数据线正负极 老机型有效
特定电阻 D+ 或 ID 脚接特定阻值电阻接地 需查机型对应阻值
开关式深刷线 线上带拨码开关,可切换正常/深刷模式 最实用
主板测试点短接 不是线,是拆机用镊子短接 最后手段

📌 深刷线的制作方法因机型而异,网上教程五花八门且很多过时。购买现成的(十几块钱)比自己做更省事,购买时说明机型。

4.4 QPST / QFIL 用法

QPST(Qualcomm Product Support Tools)是高通官方工具包,QFIL 是其中的烧录组件。

组件 用途
QFIL 主要烧录工具,刷入 rawprogram.xml + patch.xml
QPST Configuration 端口管理,检测设备是否连接
QPST EFS Explorer 读写 EFS 分区
QPST Software Download 老版烧录工具

QFIL 操作步骤:

  1. 安装 QPST 工具包 + Qualcomm HS-USB QDLoader 驱动
  2. 设备进入 9008,确认 COM 口
  3. 打开 QFIL.exe
  4. 配置:
配置项 值
Select Build Type Flat Build(多数情况)或 Meta Build
Select Programmer 浏览选择 prog_firehose_ddr.elf 或 firehose_xxxx.mbn
Search Path 2 选择固件目录(含 rawprogram*.xml、patch*.xml)
  1. 点击 Download 或 Load XML → 选择 rawprogram.xml 和 patch.xml
  2. 进度条走完,显示 Download Succeed 或 Finished Download
  3. 断开 USB,长按电源键开机
QFIL 日志示例:
COM3
Sahara protocol detected
Programmer loading...
Binary build date: ...
...
Download Succeed
Finish Download

4.5 授权账号门槛(现实问题)

⚠️ 警告:这是红米 9008 深刷最核心的障碍:

  • 新版高通芯片(骁龙 8 Gen1 之后)要求 firehose 编程器文件必须官方签名,未签名的会报 Firehose Authentication Failed 或 Sahara Fail: Error while transferring
  • 小米官方的 prog_firehose_xxx.elf 不对个人公开
  • QPST/QFIL 本身的高阶功能需要授权账号
  • 网上流传的"小米 9008 一键深刷工具"多针对老机型(骁龙 835/845 时代),对 K60/K70 之类新机型基本无效
  • 淘宝/闲鱼的"远程深刷"本质是走售后授权账号,有隐私与诈骗风险,本文不推荐

现实建议:新机型真砖,官方售后是最靠谱的选择。小米售后有专用深刷设备,费用通常远低于换主板。

4.6 9008 排障

现象 原因 处理
设备管理器显示 QHSUSB_BULK(无 COM 号) 驱动未装 安装 Qualcomm QDLoader HS-USB Driver
COM 口出现后很快消失 供电/线缆问题 换原装线、后置 USB 口、换电脑
QFIL 提示 Sahara Fail firehose 不匹配或未签名 换对应机型的 firehose
Firehose Authentication Failed 芯片要求签名 个人无解,走售后
卡在 Downloading... 0% 存储芯片损坏 硬件故障
提示 Cannot load programmer 路径有中文/空格 移到纯英文路径
进不了 EDL 未解锁 BL 用深刷线或主板短接

五、分区备份(救命操作)

5.1 为什么必须备份

红米刷机最容易丢的是这几个分区,丢了很难恢复:

分区 内容 丢失后果 严重性
persist 传感器校准数据、DRM 密钥、WiFi/蓝牙 MAC 地址、指纹校准 WiFi/蓝牙 MAC 变 02:00:00:00:00:00、指纹不可用、传感器失灵、Widevine 降 L3 ⛔ 极严重
persistbak persist 的备份分区 同上 ⛔ 极严重
frp Factory Reset Protection 恢复出厂后要求原小米账号密码 ⚠️ 严重
nvram / nvdata 联发科平台的射频校准(天玑机型) 无信号、IMEI 丢失 ⛔ 极严重
efs / modemst1 / modemst2 IMEI、基带校准(骁龙机型) IMEI 丢失,无法打电话上网 ⛔ 极严重
misc 启动控制块 一般影响不大 低
devinfo 设备信息(含解锁标志) 可能导致解锁状态异常 中

⚠️ 警告:persist 分区是每个设备唯一的。你可以在网上下载固件,但下载不到别人设备的 persist。一旦丢失,指纹、传感器校准永久失效(除非售后重写)。

5.2 备份方法(需要 Root 或 TWRP)

方法一:fastboot 直接读取

# 骁龙平台(大部分红米机型)
adb reboot bootloader

# 查看分区是否可 dump
fastboot getvar all 2>&1 | grep -i persist

# 部分机型支持(fastboot 版本较新)
fastboot fetch persist persist_backup.img
# 或老命令
fastboot oem dump persist persist_backup.img

📌 不是所有机型/所有 fastboot 版本都支持 fastboot fetch。不支持时用方法二。

方法二:TWRP 中 dd 备份(最可靠)

# 进 TWRP
fastboot boot twrp.img

# ADB 连上(TWRP 下 adb 自动为 root)
adb shell

# 查看分区路径
ls -la /dev/block/bootdevice/by-name/ | grep -E "persist|frp|misc|efs|nvram|modemst"

# 备份(骁龙平台典型)
dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img
dd if=/dev/block/bootdevice/by-name/persistbak of=/sdcard/persistbak.img
dd if=/dev/block/bootdevice/by-name/frp of=/sdcard/frp.img
dd if=/dev/block/bootdevice/by-name/misc of=/sdcard/misc.img
dd if=/dev/block/bootdevice/by-name/modemst1 of=/sdcard/modemst1.img
dd if=/dev/block/bootdevice/by-name/modemst2 of=/sdcard/modemst2.img
dd if=/dev/block/bootdevice/by-name/fsg of=/sdcard/fsg.img

# 联发科平台(天玑)额外备份
dd if=/dev/block/by-name/nvram of=/sdcard/nvram.img
dd if=/dev/block/by-name/nvdata of=/sdcard/nvdata.img
dd if=/dev/block/by-name/proinfo of=/sdcard/proinfo.img

# 或用通配符一次性备份所有 by-name(体积较大)
cd /dev/block/bootdevice/by-name/
for p in persist persistbak frp misc modemst1 modemst2 fsg; do
  dd if=/dev/block/bootdevice/by-name/$p of=/sdcard/backup_$p.img
done

exit
# 拉回电脑
adb pull /sdcard/persist.img
adb pull /sdcard/persistbak.img
adb pull /sdcard/frp.img
adb pull /sdcard/misc.img
adb pull /sdcard/modemst1.img
adb pull /sdcard/modemst2.img

方法三:Root 后在系统内备份

adb shell
su

# 确认权限
id
# uid=0(root) ...

dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img bs=4096
ls -la /sdcard/persist.img
# persist.img 通常 32MB ~ 64MB

exit
adb pull /sdcard/persist.img ./backup/

5.3 恢复分区

# TWRP 中恢复
adb shell
dd if=/sdcard/persist.img of=/dev/block/bootdevice/by-name/persist
reboot

# fastboot 恢复(部分机型支持)
fastboot flash persist persist.img

⚠️ 警告

  • 绝不要刷他人的 persist / efs / nvram 备份,这属于篡改设备标识,在中国大陆等地区明确违法
  • 恢复时务必确认分区路径正确,写错分区 = 灾难
  • 每次刷机前备份一次,成本只有几秒钟

六、Root:Magisk

6.1 判断修补目标

情况 修补目标
Android 12 及更早(MIUI 13 及更早) boot.img
Android 13+(MIUI 14 / HyperOS) init_boot.img
官方包里两个都有 优先 init_boot.img
# 提取后检查
ls images/ | grep -E "boot"
# 有 init_boot.img → 修它

6.2 从线刷包提取

# 线刷包 images 目录里直接有 boot.img / init_boot.img
cp images/init_boot.img ./

# 若是卡刷包(payload.bin 格式),用 payload-dumper-go
./payload-dumper-go -p init_boot,boot -o ./out miui_VERMEE_*.zip
ls out/

6.3 修补与刷入

# 1. 传到手机
adb push init_boot.img /sdcard/Download/

# 2. Magisk App → 安装 → 选择并修补一个文件 → 选 init_boot.img
#    输出:/sdcard/Download/magisk_patched-27000_xxxxx.img

# 3. 拉回
adb pull /sdcard/Download/magisk_patched-27000_xxxxx.img

# 4. 进入 fastboot 并刷入
adb reboot bootloader
fastboot devices

# 5. 禁用 AVB 校验(关键)
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

# 6. 刷入修补镜像
fastboot flash init_boot magisk_patched-27000_xxxxx.img
# Sending 'init_boot_a' (8192 KB)     OKAY [  0.245s]
# Writing 'init_boot_a'               OKAY [  0.102s]

# 7. 重启
fastboot reboot

6.4 验证

adb shell su -c id
# uid=0(root) gid=0(root) groups=0(root) context=u:r:su:s0

6.5 红米 Root 的特殊问题

问题 说明 应对
官方 OTA 失败 官方 OTA 会校验系统完整性,Root 后 OTA 失败 用 TWRP 卡刷,或先卸载 Root 再 OTA
"您的设备已被锁定"提示 部分 MIUI 版本会检测 无解,属于系统层提示
银行 App 检测 小米金融、银行 App 检测严格 Zygisk + Shamiko
小米支付/公交卡 Root 后可能失效 无法彻底解决
Widevine 降级 部分机型解锁后 L1 → L3 不可逆
游戏封号 部分游戏检测 Root 隐藏 Root,风险自负

七、常见报错与解决

7.1 failed to verify whole-file signature

FAILED (remote: 'failed to verify whole-file signature')
fastboot: error: Command failed
原因 处理
AVB 校验失败(最常见) 刷 vbmeta 时加参数:fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
分区被修改过(如刷了 Magisk) 先刷回官方原版 boot/init_boot
固件版本不匹配 下载正确机型/版本的固件
镜像文件损坏 重新下载,校验 MD5
# 标准解法
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
fastboot --disable-verity --disable-verification flash vbmeta_system vbmeta_system.img
fastboot reboot

7.2 刷完无限重启(Bootloop)

排查顺序:
1. 能否进 fastboot?         → fastboot devices
2. 槽位对不对?              → fastboot getvar current-slot / set_active other
3. 清数据了吗?              → fastboot erase userdata + erase metadata
4. 是否跨大版本保留了数据?  → 改用 flash_all.sh(清空版本)重刷
5. 完整重刷官方包            → 执行 flash_all.sh
6. 还不行 → 9008 深刷或售后
fastboot set_active other
fastboot reboot
# 还是不行:
fastboot erase userdata
fastboot erase metadata
./flash_all.sh

7.3 fastboot 认不到设备

平台 排查
Windows 设备管理器 → 是否有 "Android" 感叹号设备 → 手动指定驱动(android_winusb.inf)
Windows 换 USB 2.0 口(USB 3.x 兼容性差)
Windows 关闭小米手机助手、Mi PC Suite(占用端口)
Windows 以管理员身份运行命令行 / MiFlash
Linux 检查 udev 规则
通用 换原装线(很多线只能充电不能传数据)
通用 重装 platform-tools 到最新版
# Windows 查看 USB 设备
Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match "USB" } |
  Select-Object FriendlyName, InstanceId

# 查看是否有未知设备
Get-PnpDevice -PresentOnly | Where-Object { $_.Status -ne "OK" }

7.4 MiFlash 卡在 image received

原因:路径含中文/空格、USB 口不稳定、驱动冲突
解决:
1. 固件移到 D:\fw\(纯英文无空格)
2. 换 USB 2.0 口
3. 设备管理器卸载所有 Android 设备 → 重插
4. 重启电脑
5. 改用 fastboot 脚本(更稳定)

7.5 error: cannot load 'xxx.img'

原因:文件路径错误、文件名错误、镜像不存在
解决:
1. 确认当前目录有 images/ 子目录
2. 脚本要在包含 images 的那层目录执行(不是进 images 里面)
3. 检查 .tgz 是否完整解压(需两次解压)

7.6 刷完无信号 / 基带未知

# 查看 IMEI
adb shell service call iphonesubinfo 1
# 或拨号 *#06#

# 排查
1. modem.img 刷了吗?       → fastboot flash modem modem.img
2. EFS 还在吗?             → 从备份恢复 modemst1/modemst2/fsg
3. 是否刷了他人固件?       → 刷回本机型官方包

7.7 刷完 WiFi/蓝牙 MAC 变 02:00:00:00:00:00

原因:persist 分区损坏或被清除
解决:
1. 从备份恢复 persist.img(见 5.3)
2. 无备份 → 售后(需要专用工具重写校准数据)
3. 无解 → 只能忍受(WiFi 仍可能能用,但 MAC 异常)

八、救砖速查表

症状 可进入的模式 救砖方案 成功率
卡 MI LOGO / bootloop fastboot fastboot erase userdata + flash_all.sh 很高
无限重启 fastboot 切槽 + flash_all.sh 很高
进不了系统但能进 fastboot fastboot flash_all.sh 完整刷入 高
只能进 Recovery recovery adb sideload 官方卡刷包 高
卡在 fastboot 界面 fastboot MiFlash(clean all) 高
黑屏但电脑有反应 9008 / fastboot fastboot 优先;不行试 9008 中
完全黑屏无反应 需深刷线/短接 9008 + QFIL(需 firehose) 中低
充电无任何反应 无 硬件故障,查电池排线/电源 IC 低
Qualcomm HS-USB QDLoader 9008 9008 QFIL + firehose 中(受授权限制)

九、操作检查清单

  • [ ] 确认 codename(adb shell getprop ro.product.device),不是市场名
  • [ ] 确认 MIUI / HyperOS 版本与固件包匹配
  • [ ] BL 解锁已完成(fastboot oem device-info 显示 Device unlocked: true)
  • [ ] 完整备份数据,含 persist / frp / modemst 分区备份
  • [ ] 备份文件已传到电脑(不能只留在手机上)
  • [ ] 固件包 MD5 校验通过
  • [ ] .tgz 已两次解压完整
  • [ ] 固件路径纯英文无空格
  • [ ] 明确要执行哪个脚本(flash_all / except_data_storage / lock)
  • [ ] 明确要刷 boot 还是 init_boot
  • [ ] adb / fastboot 能识别设备
  • [ ] 电量 ≥ 60%,原装线,后置 USB 口
  • [ ] 本地保留一份完整官方包作救砖用

参考资源

类型 说明
小米官方 ROM 下载页 官方线刷包与卡刷包
小米官方解锁页 Mi Unlock 工具与政策说明
XDA Forums → 对应机型版块 TWRP、第三方 ROM、救砖讨论
GitHub: topjohnwu/Magisk Magisk 官方仓库
GitHub: ssut/payload-dumper-go payload 提取工具
小米社区 → 对应机型版块 国内讨论、内测包
Qualcomm QPST 工具包 9008 烧录(需自行获取)

📌 小米/红米机型繁杂,同型号不同批次硬件可能不同,解锁政策与工具可用性也频繁变化。操作前请以对应机型的 XDA 原帖、小米官方页面与社区公告为准,不要轻信"一键解锁""免等待期"的商业服务。