第1章 课程全景与目标:QPST烧录与FastBoot刷机的区别、课程适用设备范围、最终交付能力

本章作为整门课程的开篇,首先明确两个核心刷机路径的底层差异,界定课程覆盖的设备范围,并列出学员在完成全部30章后应当具备的实际交付能力。理解这些全景信息,有助于在学习后续章节时建立清晰的技术映射。

1.1 QPST 与 FastBoot 本质区别

QPST(Qualcomm Product Support Tool)是高通芯片平台在与设备完全失活(通过硬件进入 EDL 模式)时使用的底层烧录工具,绕开了 Android 操作系统本身,通过串行总线写入整个物理分区。FastBoot 则是 Android 系统 bootloader 阶段对外暴露的协议,仅在启动未完全损坏时可用,负责单分区镜像的写入或擦除。
下表从关键维度对两者进行对比:

对比维度 QPST 烧录 FastBoot 刷机
烧录类型 全量物理分区(rawprogram) 逻辑镜像单分区写入
底层协议 USB 串行 + QDloader gadget USB bulk + FastBoot 协议
使用场景 救砖、完全变砖、高通平台工厂恢复 日常刷机、OTA 切换、系统修复
典型命令/操作 QPST → 选择 rawprogram0.xml → 点 Download fastboot flash boot boot.img && fastboot reboot
文件格式 rawprogram0.xml + patch0.xml + 分区镜像 .bin/.mbn boot.img、system.img 等 ext4/sparse 镜像
风险等级 高(全分区擦写,无校验) 中(可单分区操作,但错误也致命)

1.2 课程适用设备范围

  • 搭载高通骁龙 6xx/7xx/8xx 系列芯片的 Android 手机/平板(如小米、一加、OPPO、vivo 等主流机型)
  • 高通平台的 IoT 开发板、车机模块(如 DragonBoard 410c / 820c)
  • 运行 Android 8.0+ 并保持 bootloader 未上锁或已解锁的设备
  • 具备 USB 串口访问权限的 Windows/macOS/Linux 主机
  • 不覆盖:联发科、Exynos、麒麟、谷歌 Tensor、苹果 A 系列芯片

1.3 最终交付能力

完整学完本课程后,学员将具备以下可验证的能力:

  • 区分故障阶段:根据设备指示灯、USB 枚举 ID、ADB / FastBoot 响应判断应使用 QPST 还是 FastBoot
  • 搭建 QPST 环境:安装驱动、配置 QPST 2.7.496,载入高通 Firehose worker 并在 EDL 模式下完成全分区恢复
  • FastBoot 多分区操作:刷写 boot、system、vendor、dtbo、vbmeta,并正确处理 AVB / dm-verity
  • 自定义分区表:修改 rawprogram0.xml 中的分区大小与偏移,适配高容量 ROM
  • 故障定位与回滚:通过 QPST 日志识别分区烧录失败原因,使用 FastBoot 恢复原厂镜像
  • 自动化刷机脚本:编写跨平台 shell/Python 脚本,实现一键刷机中的版本校验、备份与重试
学习建议:建议在正式开始前准备好至少一台已解锁的高通设备(如小米 6 或 OnePlus 5T)、一条高质量 USB 数据线,以及一台安装 Windows 10 的 PC。EDL 模式下驱动安装是第一个门槛,可先参考附录 A 调试驱动签名问题。

1.4 核心流程架构

刷机路径选择架构图(QPST vs FastBoot) 无法正常开机 EDL 模式(无 FastBoot) FastBoot 模式(bootloader 存活) QPST Download fastboot flash 写入全部分区(物理) / 写入单个分区(逻辑) 设备重启验证

上图清晰展示了两种刷机路径的入口差异:设备完全失去 FastBoot 时只能走左侧 EDL → QPST 路径,而 bootloader 存活时则可通过 FastBoot 进行精细分区操作。课程第2~15章覆盖左侧路径,第16~28章覆盖右侧路径,最后两章进行整合与自动化。

1.5 常见误区与预备检查

常见误区:部分初学者误以为 QPST 可以像 FastBoot 一样任意选择性刷写分区。实际上 QPST 的 rawprogram0.xml 会一次性擦写整块 eMMC/UFS 物理分区,即使只修改一个分区,也必须在 xml 中声明所有分区镜像,否则会导致缺失部分被擦空。
预备检查:在进入任何烧录操作前,务必使用 fastboot getvar all 或 QPST 的“Read from Device”功能备份原始分区表。
命令行示例(FastBoot 侧):
# 检查设备是否进入 FastBoot
fastboot devices

# 读取当前分区结构(备份参考)
fastboot getvar partition-type:boot
fastboot getvar max-download-size

# 典型的刷写 boot 分区
fastboot flash boot boot.img

课程后续所有章节均以本章的全景地图为框架展开。请确保您已对照适用设备范围确认手中的硬件,并准备好实验环境。