# qc_debug_monitor

> Python monitor by Dmytro Oleksiuk (Cr4sh) that reads debug messages from Qualcomm cellular-modem firmware in real time over the modem's DIAG serial port, on a rooted Android phone or a USB modem. It enables message reporting for chosen 16-bit subsystem IDs, prints or logs text messages with their firmware source file and line, and decodes terse messages, which carry only a 32-bit format-string hash and arguments, when given a hash database. A discovery mode lists the subsystem ID ranges a modem answers to, and logs can be split into one file per subsystem.

- Type: Tool
- Targets: Firmware
- Category: Firmware tools
- Relationship: Foundation tool
- Sources reviewed: 2026-10-27
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/Cr4sh/qc_debug_monitor>
- Primary source: <https://github.com/Cr4sh/qc_debug_monitor/blob/d4c2f80c8077adc1b6a9e99b0c1c4bc9ed43b40d/README.MD>
- Catalog page: <https://awesomerea.org/resources/qc-debug-monitor/>
- Record JSON: <https://awesomerea.org/resources/qc-debug-monitor/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/qc-debug-monitor/index.md)

## Requirements & limits

- **Prerequisites:** Run the Python 2 script with pySerial and access to a serial device such as /dev/ttyUSB0; the README uses sudo. The repository has no tags or releases.
- **Prerequisites:** A Qualcomm modem with an exposed DIAG serial port is required. The documented Quectel EC25 example uses an MDM9607; other devices may need subsystem ranges found with discovery mode.
- **Prerequisites:** Terse-message decoding requires an external database of Qualcomm firmware debug-message hashes. The README gives no provenance or reuse terms for that database; without it, terse messages remain undecoded.
- **Testing evidence:** The README describes example logs from an EC25 connected to an srsLTE eNodeB and labels subsystem descriptions as guesses. The repository contains no firmware images, and the project has no tests.
- **License:** The repository has no license file or license statement.

## Primary sources

1. <https://github.com/Cr4sh/qc_debug_monitor/blob/d4c2f80c8077adc1b6a9e99b0c1c4bc9ed43b40d/README.MD>
2. <https://github.com/Cr4sh/qc_debug_monitor/blob/d4c2f80c8077adc1b6a9e99b0c1c4bc9ed43b40d/README.MD#L44-L46>
3. <https://github.com/Cr4sh/qc_debug_monitor/blob/d4c2f80c8077adc1b6a9e99b0c1c4bc9ed43b40d/README.MD#L89-L93>
4. <https://github.com/Cr4sh/qc_debug_monitor/blob/d4c2f80c8077adc1b6a9e99b0c1c4bc9ed43b40d/qc_debug_monitor.py>
5. <https://github.com/Cr4sh/qc_debug_monitor/tree/d4c2f80c8077adc1b6a9e99b0c1c4bc9ed43b40d/examples>

## More in Firmware and hardware

- [sasquatch](https://awesomerea.org/resources/sasquatch/index.md) · Tool
- [FIRMADYNE](https://awesomerea.org/resources/firmadyne/index.md) · Tool
- [flashrom](https://awesomerea.org/resources/flashrom/index.md) · Tool
- [InternalBlue](https://awesomerea.org/resources/internalblue/index.md) · Tool
- [MC Extractor](https://awesomerea.org/resources/mc-extractor/index.md) · Tool
- [MTKClient](https://awesomerea.org/resources/mtkclient/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
