DiagNG is a general purpose client purpose for the diagnostic interface of Qualcomm Snapdragon basebands, present on a large part of Android phones and various USB modems.
It can be considered as a sequel for QCSuper, and also takes large inspiration from SCAT. Like these tools, it allows to capture 2G/3G/4G/5G air interface network traces and save them to the GSMTAP/PCAP format, so that you can visualize these in Wireshark.
It is an experimental, Linux-first, open-source, interoperable, brand-new way to connect to baseband USB diagnostic interfaces; whether for pedagogic or security research purposes.
It should eventually support other basebands such as Samsung Exynos processors, and why not other protocols such as AT commands.
Features:
- Connect a Linux raw SPI port.
- Connect a Linux raw USB interface.
- A sleek GTK 4/Adwaita-based UI.
- SPI and USB connections are safely connected to the Python UI through a privileged Rust daemon, using a Polkit/DBus-based interface to secure privileged actions, to ensure good integration with Flatpak.
- Wireshark plug-in management and automated installation for GSMTAP v3/5G RRC decoding (taken from SCAT).
- Gather phone-related information through ADB, with shortcuts to enable the QCDM USB interface easily.
- Import DLF or QMDL files in order to enable interoperability with other software.
- Support basic QCDM (Qualcomm diagnostic monitor) log registration.
- Support basic QCDM 2G/3G/4G/5G log conversion to GSMTAP/PCAP (without advanced features such as SIB decoding, reassembly).
- Flatpak packaging for good integration to the Linux desktop.