Today i hacked my SSA3021X and turned it into a SSA3032X with ALL options permanent AND KEPT MY SERIAL NUMBER, therefore (hopefully) future proofing it against any firmware updates
![Grin ;D](https://www.eevblog.com/forum/Smileys/default/xgrin.gif.pagespeed.ic.QVVz6XIT20.png)
When i received the unit the installed firmware was 1.2.9.2a which (thankfully) still had telnet access.
Whilst waiting for delivery i read this whole thread 3 or 4 times to get as much information as i could and it has been invaluable, thanks to all who contributed
![Smiley :)](https://www.eevblog.com/forum/Smileys/default/xsmiley.gif.pagespeed.ic.R8GFI-pF6f.png)
Ok, so we know if the "NSP_system_info.xml" from version 7 was edited so that the license info was TRUE that this would open it up on that firmware series.
Hint....Create one now and make sure it has YOUR serial number ..
<?xml version="1.0" encoding="UTF-8"?>
<nsp_system_info_root>
<device>
<system_information>
<serial_number>
<chip>SSA3xxxxxxxxxx</chip>
</serial_number>
<license><_3032>TRUE</_3032><_3021>FALSE</_3021><_TG>TRUE</_TG><_EMI>TRUE</_EMI><_Meas>TRUE</_Meas><_CAT>TRUE</_CAT></license></system_information>
</device>
</nsp_system_info_root>
Copy it to a blank USB stick.
Next step is to obtain a copy of the V8.01 firmware (1.2.8.1) and using the "converter tool", make a zip file and extract it with 7-Zip (details are on this thread).
In the extracted folder you will find a copy of the main application file "ecomb", copy this to the USB stick and rename it "ecomb8".
Place the USB stick into the SSA and open a telnet session.
Here is what i did, i'm not a linux user but there is plenty of info here and on the web to get some basics.
Remember, dont enter the " marks, just the text between them.
Enter "mount -o remount, rw /"
Enter "cd /usr/bin/siglent"
Enter "ps"
You will get a list like this...
PID USER VSZ STAT COMMAND
1 root 1320 S init [5]
2 root 0 SW [kthreadd]
3 root 0 SW [ksoftirqd/0]
4 root 0 SW [kworker/0:0]
5 root 0 SW [kworker/u:0]
6 root 0 SW< [khelper]
7 root 0 SW< [netns]
8 root 0 SW [kworker/u:1]
154 root 0 SW [sync_supers]
156 root 0 SW [bdi-default]
158 root 0 SW< [kblockd]
168 root 0 SW< [omap2_mcspi]
179 root 0 SW [khubd]
286 root 0 SW< [musb-hdrc.0]
291 root 0 SW< [musb-hdrc.1]
293 root 0 SW< [rpciod]
295 root 0 SW [kworker/0:1]
305 root 0 SW [kswapd0]
306 root 0 SW [fsnotify_mark]
307 root 0 SW< [nfsiod]
308 root 0 SW< [crypto]
324 root 0 SW< [OMAP UART0]
326 root 0 SW< [OMAP UART1]
328 root 0 SW< [OMAP UART2]
330 root 0 SW< [OMAP UART3]
332 root 0 SW< [OMAP UART4]
334 root 0 SW< [OMAP UART5]
411 root 0 SW [mtdblock0]
416 root 0 SW [mtdblock1]
421 root 0 SW [mtdblock2]
426 root 0 SW [mtdblock3]
431 root 0 SW [mtdblock4]
436 root 0 SW [mtdblock5]
441 root 0 SW [mtdblock6]
446 root 0 SW [mtdblock7]
451 root 0 SW [mtdblock8]
456 root 0 SW [mtdblock9]
461 root 0 SW [mtdblock10]
466 root 0 SW [mtdblock11]
471 root 0 SW [mtdblock12]
479 root 0 SW [ubi_bgt0d]
495 root 0 SW [irq/172-ads7846]
540 root 1776 S < /sbin/udevd -d
719 root 2112 S /usr/sbin/telnetd
726 root 152m S ./ecomb
727 root 1572 S /sbin/getty 115200 ttyO0
728 daemon 1456 S portmap
745 root 0 SW [ubi_bgt1d]
750 root 0 SW [ubifs_bgt1_0]
767 root 0 SW [ubi_bgt2d]
834 root 1772 S < /sbin/udevd -d
873 root 2588 S -sh
2530 root 0 SW [ubifs_bgt0_0]
2651 root 0 SW [flush-ubifs_0_0]
2652 root 0 SW [flush-ubifs_1_0]
2656 root 0 SW [flush-ubifs_2_0]
2704 root 0 SW [scsi_eh_0]
2705 root 0 SW [usb-storage]
2708 root 0 SW [kworker/u:2]
2711 root 1772 S < /sbin/udevd -d
2720 root 2112 R ps
in YOUR list find "./ecomb" and get the "PID" number, in my case above, it was "726"
Enter "kill -9 726" - not sure if the "-9" is needed but it certainly killed the process.
Enter "ps" again and make sure "./ecomb" is NOT shown
Enter "cp /usr/bin/siglent/usr/mass_storage/U-disk0/ecomb8 ecomb8" - This copies "ecomb8" from the USB stick to the "/usr/bin/siglent" directory.
Enter "ls -l" - and make sure it is there.
Enter "mount -o remount,rw /dev/ubi2_0 /usr/bin/siglent/firmdata0"
Enter "cd firmdata0"
Enter "cp /usr/bin/siglent/usr/mass_storage/U-disk0/NSP_system_info.xml NSP_system_info.xml" - this copies the "NSP_system_info.xml" file you created above to "/usr/bin/siglent/firmdata0"
Enter "ls -l" and make sure it is there.
Enter "cd .." to drop back one level to the "/usr/bin/siglent" directory.
NOW FOR THE FUN PART
Enter "./ecomb8" - Loads of text will appear on the telnet screen, the application will start and will read the "NSP_system_info.xml" file and will automatically create a fully licensed "NSP_sn_bandwidth.xml" file, the application will start up on the SSA and using "System info" you will see that your SSA3021X is now a SSA3032X with all options permanent and with the correct serial number.
Power off the SSA, remove the USB and power it back on, all options will remain and it will be running the correct version of "ecomb"
Dont forget to backup to USB stick your new "NSP_sn_bandwidth.xml" file (details are in this thread).
Hope this helps and thanks again to those you have provided the tools and knowledge that has enabled me to do this, now i dont care if telnet has been removed as i can carry out firmware updates knowing it is safe.
![Grin ;D](https://www.eevblog.com/forum/Smileys/default/xgrin.gif.pagespeed.ic.QVVz6XIT20.png)
P.S. One thing to note was i did have both the original "NSP_sn_bandwidth" files in place, the process just added all the licenses to it.