
On to the next candidate. The Hikvision DS-2CD3132-I.
Now, these inhabit the soffits of my house, outside where its cold, and ladders are needed. So i’m naturally a bit reluctant to brick them and need some sort of local reset button. But, well, once more into the breach.
Fortunately I have a spare to play with (this one mysteriously went purple+white, not black+white, and not colour), so it was decommissioned. But, it otherwise works for hackery.

These Internet resellers hacked up some version of the software to make it work in English, and shipped them, but if you upgrade them, blammo. So, uh, caution is needed 🙂
So, armed with some google search, and not a lot of common sense, but some tools, lets investigate the patient.
Now, there is a bit of a recipe for unhacking them (or re-hacking? enhanced hacking?) which involves taking a copy of mtd6 flash block, changing a couple of bytes, and then recalculating the checksum. So, uh, lightly documented, lets try.

U-Boot 1.3.4-121219 (Apr 8 2015 - 14:34:29) ARM Clock: 480MHz DDR Clock: 336MHz Hit Ctrl+u to stop autoboot: 0 |BIND err| Unknown command:null booting from pri part... load kernel... load ramdisk... init started: BusyBox v1.19.3 (2014-07-11 11:25:54 CST)
OK, lets try, patch /dev/mtdblock6, now find the upgrade. Nice, the upgrade is 2-step (upgrade 1 newer and then newest). Except… the upgrade needs a ‘WebComponents.exe’ plugin. OK, fire up windows vm. Wait, its worse than that. This only works in Chrome older than ’44’, and Internet Explorer 7. Ugh, so even my Windows VM cannot upgrade.
OK, but you guys said I shouldn’t be lazy.
So this leads to a moral quandry. To upgrade some older software, you need access to other older software. And this in turn has security flaws. I mean, the irony here, I will likely have to install Windows XP (long off support) and let it have at least some network access, to upgrade this camera. Its kind of like saying I need to keep doctors around who have treated smallpox (and who themselves might have it!).
OK, installed Firefox 51 (I feel a bit dirty about that, but, well, its for a good cause and its not allowed Internet access and its in a segregated vm). And it runs the dreaded WebComponents.exe. Great. And now:
[01-10 16:42:27][pid:852][UNI_IF][ERROR][UPG_ASSERT] 0x484b5753 == tHeadDec.iMagicNum fail to eRetVal UPG_STAT_ERR_PACK_MAGIC=0x00000041! [01-10 16:42:28][pid:852][UNI_IF][ERROR][UPG_ASSERT] UPG_STAT_OK == (eRet = firm_pack_head(pUpgInfo)) fail to eRetVal eRet=0x00000041!
So, sigh, what new hell is this? Oh the horror, you actually have to upgrade *all* of the intermediate versions. Not just rev-1 and rev, its rev-N, rev-N-1, … until current. This will take all night? You sure I can’t just be lazy? OK, no, will not accept that. So onwards.
OK, upgrade from 5.2.5 to 5.3.0 worked upgrade took, now it just endlessly reboots. This is definitely a job for tomorrow!

Leave a Reply