在高通(Qualcomm)产品的固件中,dump(固件转储)、symbols(符号表)以及 about.html 文件的具体位置取决于固件的架构和处理器的类型,包括应用处理器(AP,Application Processor)、基带处理器(BP,Baseband Processor)以及传感器处理器(SP,Sensor Processor)。以下是对这些部分的分析以及可能的路径说明:

1. 固件转储(Dump)的位置

固件转储通常是通过特定的工具(如 QFIL、QPST 或 JTAG)从设备的存储中提取的完整或部分镜像,包含了 AP、BP 或 SP 的固件数据。转储的内容取决于目标处理器和存储类型(例如 eMMC 或 UFS)。

应用处理器(AP):

AP 通常运行 Android 或其他操作系统,其固件转储可能包含系统分区(system.img)、引导分区(boot.img)等。

转储文件通常位于设备的存储分区,例如 /dev/block 下的特定分区(如 /dev/block/bootdevice/by-name/system)。

使用工具如 QFIL 时,需加载对应的 Firehose 文件(prog_emmc_firehose_*.mbn 或 *.elf),这些文件通常位于固件的 /vendor/firmware 目录或设备特定的 OEM 分区。

路径示例:/vendor/firmware 或 /system 分区,具体取决于设备型号和 OEM 实现。

基带处理器(BP):

BP 负责调制解调器(modem)功能,其固件转储通常包含基带固件(modem.img 或类似文件)。

这些文件通常存储在设备的非用户可访问分区中,例如 /firmware 或 /modem 分区。

通过 DIAG 协议或工具(如 QCSuper)可以捕获基带相关的日志或固件数据,存储路径可能在 /dev/diag(需 root 权限)或通过 USB 导出的临时文件中。

路径示例:/firmware/modem 或 /vendor/firmware。

传感器处理器(SP):

SP(如 Hexagon DSP)处理传感器数据、音频或低功耗任务,其固件通常存储在 /vendor/firmware 目录下,文件名为类似 adspso.bin(音频 DSP)或 sdspso.bin(传感器 DSP)。

转储 SP 固件需要专门的工具(如 QFIL 或 QWinLog),且通常需要设备处于 EDL(Emergency Download)模式。

路径示例:/vendor/firmware/adspso.bin 或 /vendor/firmware/sdspso.bin。

转储工具相关路径:

使用 QPST/QFIL 转储时,生成的转储文件默认保存在主机 PC 的路径,例如 C:\Users\[username]\AppData\Roaming\Qualcomm\QFIL(Windows 系统)。

如果使用 JTAG 工具(如 RIFF Box),转储文件会根据工具配置保存到指定目录,需通过十六进制编辑器检查文件内容以确认是否包含特定分区数据。

2. 符号表(Symbols)的位置

符号表(symbols)通常用于调试固件或分析崩溃转储(crash dump),包含函数名、变量地址等信息,用于将机器代码映射到人类可读的代码。

应用处理器(AP):

符号表通常由 OEM 或开发者在编译固件时生成,可能包含在调试版本的固件中(例如 boot.img 或 system.img 内的内核符号表)。

在 Android 设备中,符号表可能以 kallsyms 文件的形式存在,位于 /proc/kallsyms(需 root 权限)。

如果是高通提供的开发工具包(如 Snapdragon SDK),符号表可能在调试工具(如 QXDM)生成的日志或专用符号文件中。

路径示例:/proc/kallsyms 或开发工具包中的调试目录。

基带处理器(BP):

基带固件的符号表通常由高通内部维护,且不公开提供。开发者可能需要从泄露的固件或调试工具中提取,例如使用 QCSuper 解析 DIAG 日志中的符号信息。

符号表可能嵌入在基带固件的 ELF 文件中(如 modem.elf),需要逆向工程工具(如 IDA Pro)进行分析。

路径示例:通常不直接暴露,可能在 /firmware 分区或高通内部调试工具中。

传感器处理器(SP):

SP 的符号表通常与 DSP 固件(如 libfastcvadsp_skel.so)相关,存储在 /vendor/lib 或 /vendor/firmware 目录。

这些符号表可能在高通提供的 DSP 开发工具中提供,用于调试音频或传感器处理。

路径示例:/vendor/lib/dsp 或 /vendor/firmware。

3. about.html 文件的位置

about.html 文件通常是与设备固件或系统相关的元数据文件,可能包含版本信息、版权声明等内容。在高通设备中,about.html 不一定是标准固件组件,但可能出现在以下场景:

应用处理器(AP):

如果 about.html 是系统 UI 或设置应用的一部分(例如“关于手机”页面),它可能位于 Android 的 /system 分区,具体在 /system/app 或 /system/priv-app 下的某个 APK 文件中。

也可能出现在 /vendor 分区,用于描述 OEM 定制的固件信息。

路径示例:/system/priv-app/Settings/Settings.apk(需解压 APK 检查)或 /vendor/etc/about.html。

基带处理器(BP):

基带固件通常不包含 about.html 文件,因为 BP 运行的是实时操作系统(如 QuRT),不使用 HTML 格式的元数据。

如果涉及基带相关的网页接口(如调试工具的 Web UI),about.html 可能由高通的调试工具(如 QXDM 或 QCAT)生成,存储在 PC 的工具安装目录中。

路径示例:C:\Program Files\Qualcomm\QXDM\about.html(Windows 系统)。

传感器处理器(SP):

SP 固件通常不包含 about.html,因为其功能专注于低功耗任务,不涉及用户界面。

如果 about.html 与传感器相关的调试工具有关,可能出现在高通提供的 SDK 或工具包中。

路径示例:高通 SDK 的文档目录,如 C:\Qualcomm\Snapdragon_SDK\docs\about.html。

4. 如何找到具体路径

由于高通设备的固件结构因设备型号、OEM 实现和固件版本而异,建议以下步骤定位具体路径:

使用 QPST/QFIL:

安装最新版本的 QPST(Qualcomm Product Support Tools),并使用 QFIL 加载 Firehose 文件以访问设备的存储分区。

检查分区表(通过 QFIL 的 Partition Manager),找到 system、vendor、firmware 或 modem 分区,提取相关镜像文件。

使用十六进制编辑器或解压工具检查镜像文件内容,搜索 about.html 或符号表相关数据。

使用 JTAG:

如果设备支持 JTAG 调试,使用 RIFF Box 或 JTAGulator 连接设备的 JTAG 测试点,提取整个闪存芯片的转储。

在转储文件中搜索特定字符串(如 QCOM、about.html)以定位文件。

使用 ADB(Android Debug Bridge):

如果设备已 root,运行 adb shell 并使用 find / -name about.html 或 find / -name *.mbn 查找文件。

检查 /vendor/firmware、/system 或 /firmware 目录。

逆向工程工具:

使用 IDA Pro 或 Ghidra 分析固件中的 ELF 文件(如 modem.elf 或 adspso.bin),提取符号表。

对于基带固件,使用 QCSuper 或 SCAT 解析 DIAG 日 logs 志,查找符号或元数据。

5. 注意事项

合规性:提取固件或符号表可能涉及知识产权或法律风险,需确保操作符合高通和设备 OEM 的许可协议。建议联系高通技术支持(https://www.qualcomm.com/support)获取官方文档或工具。

设备特定性:不同设备(如 Snapdragon 855、Helio 等)的固件结构差异较大,需参考设备的技术手册或服务论坛(如 XDA)。

EDL 模式:许多固件提取操作需要设备进入 EDL 模式,可通过硬件按键组合或 ADB 命令(如 adb reboot edl)触发。

安全风险:不正确的固件操作可能导致设备变砖,建议备份 EFS/QCN 分区以保护 IMEI 和网络设置。

6. 总结

Dump:AP(/system 或 /vendor/firmware)、BP(/firmware/modem)、SP(/vendor/firmware/adspso.bin 等)。

Symbols:AP(/proc/kallsyms 或调试工具)、BP(嵌入 ELF 文件,需逆向)、SP(/vendor/lib/dsp)。

about.html:通常在 AP 的 /system 或 /vendor 分区,或调试工具的 PC 路径中。

查找路径:使用 QPST/QFIL、JTAG 或 ADB 工具,结合设备型号和分区表定位具体文件。

dump是用qspt从机器里面抓的

总体而言,symbol是用来解析dump的,是编译完成后,同步生成的符号表,编译完成后,重新执行编译脚本,选择“package_all_images”会打包符号表,生成路径在SDK的根目录download_images/symbol 下,要注意的是符号表和当前版本必须匹配,也就是符号表和当前跑的镜像是同时编译出来的才能解析。about.html 是基线信息,一般是在QCM/QCSXXXX-wp-1-0目录下