红米手机刷机教程
⚠️ 风险提示
- 刷机会清空全部数据,操作前完整备份(照片、通讯录、微信记录、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 — 手机端准备
设置 → 我的设备 → 全部参数,连点 MIUI 版本 / HyperOS 版本 7 次开启开发者选项设置 → 更多设置 → 开发者选项(HyperOS 在设置 → 关于手机附近)- 打开 USB 调试
- 打开 OEM 解锁
- 进入
设备解锁状态(在开发者选项内,部分机型叫「解锁状态」) - 点击 绑定账号和设备 → 登录小米账号 → 绑定
绑定成功后,页面会显示:
"账号已与设备绑定,可在 X 小时后解锁"
⚠️ 警告
- 绑定期间不要退出小米账号、不要恢复出厂、不要换主板,否则计时可能重置
- 绑定后需要保持联网(小米建议),部分机型要求期间至少联网一次
- 等待期内不要重复点击绑定,可能重置计时
Step 2 — 下载 Mi Unlock 工具
- 电脑访问小米官方解锁页面(具体 URL 请从小米社区/官方支持页获取,避免访问到钓鱼站)
- 登录与手机上相同的小米账号
- 下载 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 userdatafastboot 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)是小米官方线刷工具,适合不想敲命令的场景。
操作步骤:
- 解压线刷包到纯英文路径(如
D:\fw\vermee,不能有中文、空格) - 手机进入 fastboot 模式(音量下 + 电源键),USB 连电脑
- 以管理员身份运行
XiaoMiFlash.exe - 点击 Driver → 安装驱动(首次使用)
- 点击 选择(select) → 选择线刷包的
images目录的上一级目录(即包含images文件夹的那层) - 点击 加载设备(refresh) → 应显示设备序列号和 COM 口
- 右下角选择刷机模式(关键):
| 模式 | 行为 | 说明 |
|---|---|---|
| 全部删除(clean all) | 清空所有数据 + 刷入 | 等价 flash_all.sh |
| 保留用户数据(save user data) | 保留 /data | 等价 flash_all_except_data_storage.sh |
| 全部删除并 lock(clean all and lock) | 清空 + 重新上锁 | 等价 flash_all_lock.sh |
- 点击 刷机(flash)
- 等待进度条走完,显示
操作成功完成
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 系统更新本地升级(最简单)
- 下载卡刷包
.zip,放到手机存储根目录(不要解压) 设置 → 我的设备 → 系统版本(或系统更新)→ 右上角菜单 → 手动选择安装包- 选中 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 操作步骤:
- 安装 QPST 工具包 + Qualcomm HS-USB QDLoader 驱动
- 设备进入 9008,确认 COM 口
- 打开
QFIL.exe - 配置:
| 配置项 | 值 |
|---|---|
| Select Build Type | Flat Build(多数情况)或 Meta Build |
| Select Programmer | 浏览选择 prog_firehose_ddr.elf 或 firehose_xxxx.mbn |
| Search Path 2 | 选择固件目录(含 rawprogram*.xml、patch*.xml) |
- 点击 Download 或 Load XML → 选择
rawprogram.xml和patch.xml - 进度条走完,显示
Download Succeed或Finished Download - 断开 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 原帖、小米官方页面与社区公告为准,不要轻信"一键解锁""免等待期"的商业服务。