Looking at the binwalk output listing we can easily find the boot loader, Linux kernel and a squashfs image.
461744 0x70BB0 uImage header, header size: 64 bytes, header CRC: 0x775F4C1C, created: Wed Oct 24 10:43:23 2012, image size: 1573204 bytes, Data Address: 0xDA00000, Entry Point: 0xDA00000, data CRC: 0x782925E7, OS: Linux, CPU: ARM, image type: OS Kernel Image, compression type: none, image name: 479272 0x75028 gzip compressed data, from Unix, last modified: Wed Oct 24 10:38:55 2012, max compression 2574912 0x274A40 Squashfs filesystem, little endian, version 3.1, size: 59779047 bytes, 471 inodes, blocksize: 131072 bytes, created: Wed Oct 24 10:51:11 2012
Extract the filesystem image with dd, like so:
$ dd if=BDP-150_V01.05.bin of=sqfs.img bs=2574912 skip=1 23+1 records in 23+1 records out 60048084 bytes (60 MB) copied, 1.03521 s, 58.0 MB/s
Now you have a Squashfs image. You can mount it or extract the contents using unsquashfs, like so:
$ unsquashfs sqfs.img Parallel unsquashfs: Using 4 processors 726 inodes (1492 blocks) to write [===================================================================================================================================================================================/] 1492/1492 100% created 330 files created 63 directories created 78 symlinks created 0 devices created 0 fifos
Now you have the firmware extracted and you can start looking around. There are some interesting looking bits in there. For example the UI is built on DirectFB and there is a Netflix binary (/usr/local/bin/netflix_qt/netflix ) linked against Qt. Pretty silly of Netflix not to support desktop linux users...
Who knows, with some luck this might run on some other ARM based thingy ? Oh, right.. that is the next thing I'll try :)
No comments:
Post a Comment