Ok, here we go. These instructions are based on a Debian 8 system. But this should work on most distributions i guess, only the package installation will be different. You must have root rights for this to work !   Install Python 3: apt install python3
Install needed tools for next steps: apt install build-essential wget unzip cramfsprogs u-boot-tools squashfs-tools
IMPORTANT: Install modified squashfs3 tools as our old VTO Linux kernel does not support squashfs4 (that is how you can easily brick your VTO)
cd wget https://github.com/BotoX/squashfs-tools/archive/v3.4.zip unzip v3.4.zip cd squashfs-tools-3.4/squashfs-tools make install
Download the firmware-mod-tools:cd wget https://github.com/BotoX/Dahua-Firmware-Mod-Kit/archive/master.zip unzip master.zip
Extract / Unpack the firmware. Be sure the extract script says "WARNING Autodetected config: VTO":cd Dahua-Firmware-Mod-Kit-master cp ~/General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin . <------ copy your img file into this directory, this line must of course be adapted ./extract.py General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin
Make your modifications. Sound files for example are in General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin.extracted/data-x.cramfs.img.extracted/Sounds
Go back to Dahua-Firmware-Mod-Kit-master root folder. If you followed step by step it should be in your home directory:
cd ~/Dahua-Firmware-Mod-Kit-master
Repack the firmware. Be sure the build script says "WARNING Autodetected config: VTO":./build.py General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin.extracted
The newly packed firmware is now in the General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin.extracted/build subdirectory:cd General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin.extracted/build ls -la drwxr-xr-x 2 root root 4096 Oct 17 17:59 . drwxr-xr-x 9 root root 4096 Oct 17 17:59 .. -rw-r--r-- 1 root root 12352 Oct 17 17:59 custom-x.cramfs.img -rw-r--r-- 1 root root 12288 Oct 17 17:59 custom-x.cramfs.img.raw -rw-r--r-- 1 root root 901184 Oct 17 17:59 data-x.cramfs.img -rw-r--r-- 1 root root 901120 Oct 17 17:59 data-x.cramfs.img.raw -rw-r--r-- 1 root root 255584 Oct 17 17:59 dm365_ubl_boot_16M.bin.img -rw-r--r-- 1 root root 13073267 Oct 17 17:59 General_VTO2000A_Eng_P_16M_SIP_V1.200.1000.0.R.20160505.bin <---------------- -rw-r--r-- 1 root root 467 Oct 17 17:59 Install -rw-r--r-- 1 root root 1686604 Oct 17 17:59 kernel-x.cramfs.img -rw-r--r-- 1 root root 45120 Oct 17 17:59 pd-x.cramfs.img -rw-r--r-- 1 root root 45056 Oct 17 17:59 pd-x.cramfs.img.raw -rw-r--r-- 1 root root 3117120 Oct 17 17:59 romfs-x.cramfs.img -rw-r--r-- 1 root root 3117056 Oct 17 17:59 romfs-x.cramfs.img.raw -rw-r--r-- 1 root root 5857344 Oct 17 17:59 user-x.cramfs.img -rw-r--r-- 1 root root 5857280 Oct 17 17:59 user-x.cramfs.img.raw -rw-r--r-- 1 root root 1441856 Oct 17 17:59 web-x.cramfs.img -rw-r--r-- 1 root root 1441792 Oct 17 17:59 web-x.cramfs.img.raw That's it. This should work .....   Flash it and light a candle before rebooting   edit1: added mkimage edit2: added squashfs-tools edit3: added info about config file autodetection   Serge