A Windows desktop application for inspecting, comparing, and editing Qualcomm XQCN modem calibration files. Built for engineers working with Quectel modem modules.
Version 0.10 — Active development. The XQCN Editor feature is experimental.
Side-by-side comparison of two XQCN files.
- Detects entries that match, differ, or exist only in one file
- 6-column view: Path/Name, NV Name, Section, Status, Length A, Length B
- Bottom pane with Item Info, Payload A, Payload B, and a synchronized side-by-side Diff View (differing bytes highlighted)
- Filter by status (All / Match / Only A / Only B / Different) with live search
- Export a text report of the comparison
Selectively remove NV entries from an XQCN file and save a trimmed copy.
- Loads all entries grouped by section
- Check/uncheck individual entries or entire sections
- Double-click any entry for a hex payload preview
- Saves only checked entries to a new file — original is never modified
- Correctly removes paired EFS_Dir + EFS_Data entries together
Friendly names and descriptions are resolved from three Qualcomm definition files bundled in addons/:
| File | Contents |
|---|---|
NvDefinition.xml |
RF NV items by numeric ID (~14k items) |
NvDefinition5g.xml |
5G NR tree file IDs |
nv_efs_data_format.xml |
EFS path → name + description |
- Python 3.10+
tkinter(included with standard Python on Windows and macOS; on Linux:sudo apt install python3-tk)- On macOS/Linux, Pillow is required for the app icon:
pip install pillow
Or use the pre-built binary from the Releases page — no Python required.
| Platform | Python install |
|---|---|
| Windows 10/11 | python.org — tkinter included |
| macOS | python.org or brew install python-tk |
| Linux (Ubuntu/Debian) | sudo apt install python3 python3-tk |
Windows:
XQCNPowerTools.batmacOS / Linux:
chmod +x XQCNPowerTools.sh
./XQCNPowerTools.shOr directly on any platform:
python3 XQCNPowerTools.pyRequires PyInstaller. Build must be run on the target platform.
pip install pyinstaller
pyinstaller XQCNPowerTools.spec| Platform | Output |
|---|---|
| Windows | dist/XQCNPowerTools.exe |
| macOS | dist/XQCNPowerTools |
| Linux | dist/XQCNPowerTools |
FirmwareExtractor.py extracts XQCN calibration files from raw Quectel modem firmware images (modem.img).
Dependencies:
pip install ubireader PySquashfsImage lzallrightRun:
FirmwareExtractor.batBuild:
pyinstaller FirmwareExtractor.specXQCNPowerTools.py Main application
XQCNPowerTools.spec PyInstaller build spec
XQCNPowerTools.bat Windows launcher
XQCNPowerTools.sh macOS / Linux launcher
FirmwareExtractor.py Firmware extraction tool
FirmwareExtractor.spec PyInstaller build spec
FirmwareExtractor.bat Windows launcher
fallout.ico Application icon
addons/
NvDefinition.xml
NvDefinition5g.xml
nv_efs_data_format.xml
Developed and tested against firmware from:
- Quectel RM551E-GL
- Quectel RM521F-GL
XQCN files from other Qualcomm-based Quectel modules should also work.
UI uses the Catppuccin Mocha dark color palette.
MIT