2. QPST主界面布局与功能分区

QPST(Qualcomm Product Support Tool)是高通平台固件烧录与调试的核心套件。主窗口采用四区布局:主窗口承载全局操作入口,设备列表显示已连接设备状态,分区管理负责分区表与镜像映射,日志面板实时输出烧录与诊断信息。掌握每一分区的功能与操作入口,是后续烧录脚本编写、错误排查的基础。

实操前置:确保已安装QPST 2.7.496(含QFIL),并已连接至少一台高通设备(如MSM8953目标板),且设备处于EDL(Emergency Download)模式。未进入EDL时设备列表显示为“No Port Available”。
QPST 2.7 主界面布局与功能分区 主窗口(Main Window) 菜单栏:File / Tool / Help 服务启动 / 停止 QFlash / QFIL 启动入口 PST / RF Calibration 入口 配置路径:C:\QPST\... 设备列表(Device List) 端口号:COM27, COM28 型号:MSM8953 / SDM660 状态:Online / EDL / … 右键:View Info / Save Log VID: 05C6, PID: 9008 分区管理(Partition Manager) 分区表文件:rawprogram0.xml 挂载点:system / vendor / boot 镜像文件:super.img / boot.img 操作:Add / Remove / Edit 地址偏移:0x2000000 日志面板(Log Panel) 时间戳 / 级别 / 模块 | 10:23:45 | INFO | QFP: … | 10:23:46 | WARN | … | 10:23:47 | ERROR| … 按钮:Clear, Save, Filter 四个分区相互联动,设备列表选定端口后,分区管理加载对应分区表,日志面板输出全程信息

2.1 主窗口(Main Window)

主窗口是QPST的控制中枢,提供菜单栏与快速启动入口。典型操作包括:

  • 启动QFIL:点击 Start QFIL 按钮,或菜单 Tool > QFIL。QFIL是分区烧录的主要界面。
  • 启动QDART:用于RF校准与调试,路径 Tool > QDART。
  • 配置服务端口:File > Configure 中设置COM端口范围(如COM1-COM256)。
  • 查看已安装组件:Help > About 显示QPST版本及依赖DLL。

主窗口标题栏会显示当前连接的设备台数,例如:QPST 2.7.496 - 1 device(s) active。

2.2 设备列表(Device List)

设备列表实时显示所有已检测到的高通设备(通过USB或串口)。每一项包含:

字段说明示例值
PortCOM端口号COM27
Model设备型号或芯片代号MSM8953
Status连接状态(Online / Offline / EDL)EDL
VIDUSB Vendor ID(十六进制)05C6
PIDUSB Product ID(十六进制)9008

常见操作:

  • 右键选择设备 → View Info 可获取详细硬件信息(如闪存类型、序列号)。
  • 右键 → Save Log 导出该设备的历史日志。
  • 若设备未显示,请检查驱动是否正确安装(Qualcomm HS-USB QDLoader 9008驱动)。
调试技巧:在设备列表中选中某设备后,主窗口底部的状态栏会显示该设备的烧录进度条与当前操作名称。这是确认烧录是否开始的关键视觉反馈。

2.3 分区管理(Partition Manager)

分区管理是QFIL核心区,负责加载分区表(如 rawprogram0.xml)并关联镜像文件。当设备处于EDL模式时,此面板允许:

  • 加载分区表:点击 Load XML 选择 rawprogram0.xml 与 patch0.xml。
  • 手动添加分区:右键 → Add Partition,填入名称、起始地址(LBA)、长度、镜像路径。
  • 查看分区属性:点击分区行,弹出对话框显示物理地址、文件系统类型(如EXT4、F2FS)。
  • 擦除分区:选中后点击 Erase,日志面板输出擦除成功/失败信息。

典型的分区表结构示例:

<?xml version="1.0"?>
<data>
  <program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="boot.img" label="boot" num_partition_sectors="98304" physical_partition_number="0" size_in_KB="49152" start_byte_hex="0x0" start_sector="0"/>
  <program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system.img" label="system" num_partition_sectors="2097152" physical_partition_number="0" size_in_KB="1048576" start_byte_hex="0x1800000" start_sector="24576"/>
</data>

2.4 日志面板(Log Panel)

日志面板输出QPST/QFIL的所有调试信息,格式为:[时间戳] [级别] [模块] 消息。

日志级别:

  • INFO:常规操作提示(如“开始下载 boot.img”)。
  • WARN:可恢复问题(如“分区表校验和跳过”)。
  • ERROR:致命错误(如“Sahara握手失败”)。

实际日志片段(从QFIL烧录过程截取):

10:23:45.001 INFO  QFP: Downloading boot.img ...
10:23:45.204 INFO  QFP: Download completed (size=49152KB)
10:23:45.205 WARN  QFP: sector count mismatch in patch file, ignoring
10:23:45.206 INFO  QFP: Downloading system.img ...
10:23:47.890 ERROR QFP: Sahara protocol error: timeout waiting for ACK
10:23:47.891 ERROR QFP: Reinitializing connection ...

面板提供两个常用按钮:

  • Clear:清空当前日志(不保存文件)。
  • Save:将日志保存为 .log 文件,用于后续分析。
常见陷阱:当日志面板出现大量 ERROR: No response from target 时,很可能是USB线缆质量差或电源不足导致通信中断。请优先更换线缆并检查设备供电。

2.5 四区联动操作示例

以一次完整的 单分区烧录 为例,展示四个分区的协作:

  1. 主窗口:点击 Start QFIL 打开QFIL窗口。
  2. 设备列表:确认目标设备状态为 EDL,选中后日志面板显示 INFO: Device attached。
  3. 分区管理:点击 Load XML 选择 rawprogram0.xml,再添加 patch0.xml。列表中出现所有分区。
  4. 日志面板:点击 Download 按钮,面板实时滚动烧录进度。若出现错误,根据ERROR行排查。
  5. 主窗口:烧录完成后,主窗口状态栏显示 Download succeeded,设备自动重启。
扩展功能:QFIL中还集成了 QFlash 模式(需要单独配置脚本)以及 EFS Sync 工具。这些工具均复用相同的四区布局,仅在分区管理面板中提供不同操作按钮。