[UTILITY] qcndiff: analyze differences between Qualcomm QPST files

dl12345

Senior Member
Aug 1, 2014
293
814
123
[size=+1]QCNDIFF[/size]

This is a utility that parses and displays differences between two text format .qcn files produced by Qualcomm's QPST (Qualcomm Product Support Tools). It's intended use is to display the differences between two files from two different phones in order to help determine which of the nvitems are involved in enabling the different radio frequency bands. This application is meant to be run on Linux or on Windows. Examples for Linux usage and compilation are given for a RHEL / Centos / Fedora distribution. Adapt as necessary to your own distribution.

[size=+1]HOW TO USE[/size]

There are pre-built binaries for 64 and 32 bit Windows as well as pre-built binaries for 64 and 32 bit Linux. The Linux binaries were built on Fedora 20 and the Windows binaries were built with MinGW and statically linked. For Linux you will need to install the boost shared libraries.

Code:
yum install boost
Program usage is as follows

Code:
Usage: qcndiff64 [options] file file

  -h [ --help ]                 show help message
                                
  -t [ --type ] arg (=p)        show differences
                                    p for items present in both files
                                    m for items missing in either file
                                    b for both present and missing items
                                
  -f [ --format ] arg (=i)      output format
                                    i for interleaved output
                                    s for sequential output
                                    c to suppress item data and print only 
                                count
                                
  -l [ --lookup ] arg (=nv.txt) nv item descriptions
Interleaved output shows the nvitem that is different for both files before displaying the next one. Sequential output displays all the differing items in the first file before proceeding to display the second file.

If the file nv.txt exists (use -l to override the name) it will be used to look up text descriptions of the codes in order to render the output more friendly.

[size=+1]HOW TO COMPILE[/size]

Linux

Code:
yum install boost boost-devel
make
If you wish to compile for a different architecture, for example you run x86_64 and you wish to compile a 32 bit variant, then first make sure you have the 32 bit libraries and then override the target with the ARCH commandline option

Code:
yum install boost.i686 boost-devel.i686
make ARCH=32
Windows

You will need to install MinGW. You need separate toolchains for the 64 bit versions and the 32 bit versions. You will also need to compile the boost libraries.

Once Boost is compiled, edit the Makefile to change the paths to the libraries and include files to conform to where you have them installed. Take note that if the default --layout==versioning option is used to compile Boost then you may also need to change the suffix option in the Makefile

[size=+1]CHANGELOG[/size]

  • 0.2 - add dictionary facility to allow the lookup of text descriptions
  • 0.1 - initial release
[size=+1]DOWNLOAD LINKS[/size]

Binaries and source are available on github

[size=+1]CREDITS[/size]

autoprime for the complete list of nv items used in the dictionary implementation

XDA:DevDB Information
qcndiff, Tool/Utility for the Samsung Galaxy S 5

Contributors
dl12345, autoprime
Source Code: https://github.com/dl12345/qcn


Version Information
Status: Beta
Current Beta Version: 0.2
Beta Release Date: 2014-11-14

Created 2014-11-09
Last Updated 2014-11-13
 

dl12345

Senior Member
Aug 1, 2014
293
814
123
Version 0.2

Version 0.2 released. This implements a dictionary lookup facility to print textual descriptions of the non-matching nv items so as to make the resulting analysis easier to complete. The included dictionary is not complete but has a substantial number of items defined.

Thanks to autoprime for the list used in the implementation.
 

AngelescuO

Member
Oct 22, 2017
8
2
0
Hello
I have tried qcndiff for windows and despite you saed that are statically linked I have an error:

C:\Users\Ovidiu\Desktop\New folder>qcndiff64 80CB5BDE_1.qcn 80CB5BDE_0.qcn
Assertion failed!

Program: C:\Users\Ovidiu\Desktop\New folder\qcndiff64.exe
File: D:\boost_1_57_0/boost/spirit/home/support/char_encoding/ascii.hpp, Line 25
6

Expression: isascii_(ch)

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

C:\Users\Ovidiu\Desktop\New folder>

Thank you