This tool extracts the main firmare .bin file. It exports all of the packed modules into seperate, single .bin files, as well as a .ini file matching that bin file, presenting information about it.
The command for the python script is as follows:
dji_xv4_fwcon.py <-x|-a> [-v] [-f] [-c] -p <fwpkgfile> [-d <dcprefix>] -h help -p <fwpkgfile> - name of the firmware package file -m <mdprefix> - file name prefix for the single decomposed firmware modules, defaults to base name of firmware package file -f force continuing execution despite warning signs of issues -c disable cryptography - do not encrypt/decrypt modules, -x extract firmware package into modules -a add module files to firmware package -v increases verbosity level; max level is set by -vvv
dji_xv4_fwcon.py -vv -x -p <filename>
This is the script which will extract the contents of the flight controller module, m306. This is important, as this module (m306) contains the flight parameters. The tool will export a file named flyc_param_infos which js a JSON formatted text file. You can edit this file, save it (in the same folder) and then remake the m306 module, to allow 'installing' the mods into your aircraft.
The command for the python script is as follows:
dji_flyc_param_ed.sh <-l|-x|-u> [-v] -m <mdlfile> -h help -m <mdlfile> - Flight controller firmware binary module file -l list parameters stored in the firmware -x extract parameters array to infos json text file -u update parameters array in binary fw from infos text files -b <baseaddr> set base address; crucial for finding the array -v - increases verbosity level; max level is set by -vvv
dji_flyc_param_ed.py -vv -x -m <filename>
dji_flyc_param_ed.py -vv -u -m <filename>