I'm trying to unpack (extract) and analyse the firmware of an IP Camera (Xiaomi mjsxj02cm).
I have this tf_recovery.img that's supposedly a U-Boot image, but I can't unpack it either using dumpimage or other techniques because mkimage -l doesn't provide me with enough information.
dumpimage does nothing:
$ dumpimage -o out tf_recovery.img
$ ls
tf_recovery.img
mkimage -ldoesn't show any useful information:
$ mkimage -l tf_recovery.img
GP Header: Size 27051956 LoadAddr 5799cfc3
file gives some information, nothing I can use:
$ file tf_recovery.img
tf_recovery.img: u-boot legacy uImage, MVX2##I3g60b5603KL_LX318####[BR:\3757zXZ, Linux/ARM, OS Kernel Image (lzma), 1724412 bytes, Wed Jun 6 08:02:07 2018, Load Address: 0x20008000, Entry Point: 0x20008000, Header CRC: 0x5799CFC3, Data CRC: 0x2FF27A1D
What I've already tried without success
- Multiple versions of u-boot, including the latest (v2019.04-rc1) built from source.
- Tried every image type explicitly, by using
-Tparameter ofdumpimage - Simply extracting the image like if it was a compressed archive
- Searched for, to the best of my abilities, any alternative methods online
I'd really appreciate if anyone can provide additional ideias on how to unpack this. Thank you!
binwalk! However theddcommands are rather hard to construct. Thankfully,binwalksupports extracting everything automatically - with the-eor the--extractoption. – Doron Behar Jan 16 '24 at 08:48