HWなしでgTV hack 04: recovery.imgの展開
recovery.imgの解析。
頭に何かついているので、まずそれを切らないと。
boot.imgがSquashfsなので、recovery.imgも同じである可能性が高い。
頭を探す。
root@debian:~/gtv# hexdump -C system/boot/recovery.img | grep hsqs 001e7d80 68 73 71 73 af 00 00 00 00 00 00 00 00 00 00 00 |hsqs............|
あった。
計算計算。
root@debian:~/gtv# python >>> int("001e7d80", 16) 1998208 >>> 1998208/8 249776 >>>
取り出す。
root@debian:~/gtv# dd if=system/boot/recovery.img of=./recovery_squashfs.img bs=8 skip=249776 378880+0 records in 378880+0 records out 3031040 bytes (3.0 MB) copied, 0.61964 s, 4.9 MB/s root@debian:~/gtv# file recovery_squashfs.img recovery_squashfs.img: Squashfs filesystem, little endian, version 3.1, 3028425 bytes, 175 inodes, blocksize: 131072 bytes, created: Thu Dec 16 10:24:48 2010
それらしいのがとれた。
バラす。
root@debian:~/gtv# mkdir -p temp/reco root@debian:~/gtv# cp recovery_squashfs.img temp/reco/ root@debian:~/gtv# cd temp/reco/ root@debian:~/gtv/temp/reco# unsquashfs recovery_squashfs.img Parallel unsquashfs: Using 1 processor 158 inodes (197 blocks) to write [===============================================================|] 197/197 100% created 87 files created 17 directories created 70 symlinks created 1 devices created 0 fifos
こちらは、それほどでもない。
root@debian:~/gtv/temp/reco# cd squashfs-root/ root@debian:~/gtv/temp/reco/squashfs-root# find ./ ./ ./tmp ./res ./res/keys ./res/images ./res/images/icon_installing.png ./res/images/progress_bar_empty_right_round.png ./res/images/indeterminate3.png ./res/images/indeterminate2.png ./res/images/indeterminate5.png ./res/images/icon_crash_recovery.png ./res/images/progress_bar_left_round.png ./res/images/button_wipe_selected.png ./res/images/progress_bar_fill.png ./res/images/progress_bar_right_round.png ./res/images/indeterminate6.png ./res/images/button_reboot.png ./res/images/indeterminate4.png ./res/images/indeterminate1.png ./res/images/icon_firmware_install.png ./res/images/button_wipe.png ./res/images/icon_firmware_error.png ./res/images/progress_bar_empty.png ./res/images/progress_bar_empty_left_round.png ./res/images/button_reboot_selected.png ./res/images/icon_error.png ./etc ./etc/sda.sfdisk.cfg ./etc/mtab ./etc/platform_config ./etc/platform_config/ce4100 ./etc/platform_config/ce4100/local_tweaks.hcfg ./etc/platform_config/ce4100/memory_layout_googletv_recovery.hcfg ./etc/platform_config/ce4100/platform_config.hcfg ./init.logitech_ka3.rc ./sys ./init.logitech_ka5.rc ./dev ./dev/console ./bin ./bin/sendevent ./bin/toolbox ./bin/iftop ./bin/lsmod ./bin/route ./bin/display_setup ./bin/platform_config_app ./bin/load_pd ./bin/printenv ./bin/insmod ./bin/gdl_server ./bin/recovery ./bin/renice ./bin/sync ./bin/stop ./bin/vmstat ./bin/mkdir ./bin/ls ./bin/date ./bin/dmesg ./bin/schedtop ./bin/top ./bin/flash_image ./bin/newfs_msdos ./bin/rmmod ./bin/umount ./bin/cat ./bin/sleep ./bin/hdmi_off ./bin/wipe ./bin/chmod ./bin/sh ./bin/cmp ./bin/id ./bin/ps ./bin/smd ./bin/ifconfig ./bin/log ./bin/getprop ./bin/netstat ./bin/mv ./bin/setconsole ./bin/getevent ./bin/rm ./bin/hd ./bin/chown ./bin/mount ./bin/pidof ./bin/notify ./bin/ioctl ./bin/dd ./bin/rmdir ./bin/setprop ./bin/df ./bin/ln ./bin/kill ./bin/watchprops ./bin/start ./bin/flash_tool ./init ./default.prop ./proc ./mnt ./system ./system/build.prop ./lib ./lib/libz.so.1 ./lib/libcrypto.so.1.0.0 ./lib/libz.so ./lib/libpthread.so.0 ./lib/libstdc++.so ./lib/librt-2.7.so ./lib/libosal.so ./lib/libgcc_s.so ./lib/libpthread-2.7.so ./lib/libplatform_config.so ./lib/libcutils.so ./lib/libcrypt.so.1 ./lib/libstdc++.so.6 ./lib/modules ./lib/modules/idl_i2c.ko ./lib/modules/pal_linux.ko ./lib/modules/clock_control.ko ./lib/modules/sec_kernel.ko ./lib/modules/intel_ce_pm.ko ./lib/modules/platform_config.ko ./lib/modules/gdl_mm.ko ./lib/modules/osal_linux.ko ./lib/modules/sven_linux.ko ./lib/librt.so.1 ./lib/libsec.so ./lib/libstdc++.so.6.0.8 ./lib/libcrypt-2.7.so ./lib/libcrashhandler.so ./lib/libdl-2.7.so ./lib/libz.so.1.2.3 ./lib/libgcc_s.so.1 ./lib/libm-2.7.so ./lib/libsec_hdcp.so ./lib/libresolv-2.7.so ./lib/libm.so.6 ./lib/libhdmi-hdcp.so ./lib/libflash_appdata.so ./lib/libcrypto.so ./lib/libpal.so ./lib/libsystem_utils.so ./lib/libgdl.so ./lib/libc.so.6 ./lib/ld-2.7.so ./lib/ld-linux.so.2 ./lib/libnand_config.so ./lib/libsven.so ./lib/liblog.so ./lib/libclock_control.so ./lib/pd_hdmi.so ./lib/libglibc_bridge.so ./lib/libcrypto.so.1.0.0a ./lib/libdl.so.2 ./lib/libresolv.so.2 ./lib/libc-2.7.so ./init.tatung4.rc ./init.logitech_ka4.rc ./sdcard ./sbin ./sbin/auto-recovery ./sbin/reboot ./sbin/fts ./sbin/init ./sbin/mkfs.ext3 ./sbin/check_e2fs ./sbin/mke2fs ./sbin/e2fsck ./sbin/mkfs.ext2 ./sbin/sfdisk ./init.rc
いい感じに揃ってきそうね。
やっぱ、CE4100カスタムなとこもあるのね...