From 827b1a647fc323cfb966c576f9dbc0c7c32794c7 Mon Sep 17 00:00:00 2001 From: Thomas Hebb Date: Mon, 15 Jan 2024 11:26:25 -0500 Subject: [PATCH] Add Qualcomm QDB (Qshrink Database) format 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. --- firmware/qualcomm_qdb.ksy | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 firmware/qualcomm_qdb.ksy diff --git a/firmware/qualcomm_qdb.ksy b/firmware/qualcomm_qdb.ksy new file mode 100644 index 000000000..c7e8a5218 --- /dev/null +++ b/firmware/qualcomm_qdb.ksy @@ -0,0 +1,25 @@ +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". + +seq: + - id: magic + contents: [0x7f, "QDB"] + - id: guid + size: 0x10 + doc: Matches the top-level element in the compressed XML + +instances: + compressed_xml: + pos: 0x40 + size-eos: true + process: zlib