Skip to content

Commit

Permalink
Add Qualcomm QDB (Qshrink Database) format
Browse files Browse the repository at this point in the history
This is a very simple wrapper around compressed XML used by Qualcomm to
store modem debug info. I gather that these files are used by Qualcomm's
official QXDM diagnostic software, but I derived the format without
reference to any documentation or tooling; it's just that simple.
  • Loading branch information
tchebb committed Jan 15, 2024
1 parent 09f4172 commit 4fceb65
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions firmware/qualcomm_qdb.ksy
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
meta:
id: qualcomm_qdb
title: Qualcomm Qshrink hash database file
application: Qualcomm QXDM
file-extension: qdb
license: CC0-1.0

doc: |
This format is nothing more than zlib-compressed XML appended to a trivially
simple binary header. The XML maps diagnostic codes emitted by Qualcomm modem
firmware to textual log messages. A file of this type typically resides on the
"modem" partition of a Qualcomm device with a name like "qdsp6m.qdb".
doc-ref:
- https://github.com/mzakocs/qualcomm_baseband_scripts/blob/main/qshrink4_qdb_ghidra_script.py

seq:
- id: magic
contents: [0x7f, "QDB"]
- id: guid
size: 0x10
doc: Matches the top-level <GUID> element in the compressed XML

instances:
xml:
pos: 0x40
size-eos: true
process: zlib

0 comments on commit 4fceb65

Please sign in to comment.