HWなしでgTV hack 01: OTAイメージの取得と展開


アーカイブ先はこのへんに。
http://www.gtvhacker.com/index.php/Logitech_Revue_Technical
一番新しそうな以下をもらって展開する。
b42732 2.1-Update1 01-12-11 175MB

root@debian:~# mkdir gtv
root@debian:~# cd gtv
root@debian:~/gtv# wget http://android.clients.google.com/packages/ota/logitech_ka/9504d579bade.mp-signed-ota_update-b42732.zip
root@debian:~/gtv# unzip 9504d579bade.mp-signed-ota_update-b42732.zip 


中身はこんな感じ。

root@debian:~/gtv# mv 9504d579bade.mp-signed-ota_update-b42732.zip ../
root@debian:~/gtv# du ./ -h
252K	./META-INF/com/google/android
256K	./META-INF/com/google
260K	./META-INF/com
468K	./META-INF
20K	./system/etc/dhcpcd/dhcpcd-hooks
44K	./system/etc/dhcpcd
68K	./system/etc/security
80K	./system/etc/permissions
12K	./system/etc/ppp
8.0K	./system/etc/wifi
24K	./system/etc/client_auth
976K	./system/etc
16K	./system/chrome/bin/extensions/gtv
20K	./system/chrome/bin/extensions
9.9M	./system/chrome/bin/locales
96K	./system/chrome/bin/cacerts
92K	./system/chrome/bin/resources/net_internals
44K	./system/chrome/bin/resources/bookmark_manager/images
32K	./system/chrome/bin/resources/bookmark_manager/css
96K	./system/chrome/bin/resources/bookmark_manager/js/cr/ui
124K	./system/chrome/bin/resources/bookmark_manager/js/cr
32K	./system/chrome/bin/resources/bookmark_manager/js/bmm
188K	./system/chrome/bin/resources/bookmark_manager/js
320K	./system/chrome/bin/resources/bookmark_manager
984K	./system/chrome/bin/resources/inspector/Images
2.7M	./system/chrome/bin/resources/inspector
3.1M	./system/chrome/bin/resources
11M	./system/chrome/bin/plugins
64M	./system/chrome/bin
8.0K	./system/chrome/share/defoma/scripts
12K	./system/chrome/share/defoma
16K	./system/chrome/share
28K	./system/chrome/fonts
52K	./system/chrome/lib/libgtk2.0-0
1012K	./system/chrome/lib/nss
208K	./system/chrome/lib/pango/1.6.0/modules
8.0K	./system/chrome/lib/pango/1.6.0/module-files.d
220K	./system/chrome/lib/pango/1.6.0
224K	./system/chrome/lib/pango
152K	./system/chrome/lib/gtk-2.0/2.10.0/immodules
216K	./system/chrome/lib/gtk-2.0/2.10.0/loaders
68K	./system/chrome/lib/gtk-2.0/2.10.0/engines
16K	./system/chrome/lib/gtk-2.0/2.10.0/loader-files.d
8.0K	./system/chrome/lib/gtk-2.0/2.10.0/immodule-files.d
100K	./system/chrome/lib/gtk-2.0/2.10.0/printbackends
564K	./system/chrome/lib/gtk-2.0/2.10.0
372K	./system/chrome/lib/gtk-2.0/modules
940K	./system/chrome/lib/gtk-2.0
15M	./system/chrome/lib
78M	./system/chrome
116K	./system/media/audio/ui
40K	./system/media/audio/notifications
160K	./system/media/audio
19M	./system/media
3.2M	./system/bin
52K	./system/netflix/dist/etc/certs
92K	./system/netflix/dist/etc
52K	./system/netflix/dist/bin
14M	./system/netflix/dist/lib
14M	./system/netflix/dist
104K	./system/netflix/usr/local/qtc/imports/QtWebKit
56K	./system/netflix/usr/local/qtc/imports/Qt/labs/gestures
52K	./system/netflix/usr/local/qtc/imports/Qt/labs/folderlistmodel
112K	./system/netflix/usr/local/qtc/imports/Qt/labs/particles
224K	./system/netflix/usr/local/qtc/imports/Qt/labs
228K	./system/netflix/usr/local/qtc/imports/Qt
336K	./system/netflix/usr/local/qtc/imports
272K	./system/netflix/usr/local/qtc/lib/fonts
52M	./system/netflix/usr/local/qtc/lib
288K	./system/netflix/usr/local/qtc/plugins/accessible
124K	./system/netflix/usr/local/qtc/plugins/imageformats
40K	./system/netflix/usr/local/qtc/plugins/kbddrivers
452K	./system/netflix/usr/local/qtc/plugins/sqldrivers
48K	./system/netflix/usr/local/qtc/plugins/iconengines
212K	./system/netflix/usr/local/qtc/plugins/gfxdrivers
68K	./system/netflix/usr/local/qtc/plugins/bearer
1.3M	./system/netflix/usr/local/qtc/plugins
54M	./system/netflix/usr/local/qtc
54M	./system/netflix/usr/local
54M	./system/netflix/usr
67M	./system/netflix
4.1M	./system/fonts
6.1M	./system/tts/lang_pico
6.1M	./system/tts
7.8M	./system/boot
24K	./system/lib/hw
664K	./system/lib/modules
136K	./system/lib/egl
118M	./system/lib
43M	./system/app
23M	./system/framework
212K	./system/usr/share/zoneinfo
40K	./system/usr/share/bmd
256K	./system/usr/share
20K	./system/usr/keychars
20K	./system/usr/keylayout
300K	./system/usr
368M	./system
384M	./

これはOTAなので、全部入りというわけじゃなさそう。
systemしか入っていないし。
果たして、この状態から動くもの作れるのかね?


META-INF/com/google/android/update-*あたりがOTAの実体なんだろうな。

META-INF/com/google/android/update-binary
META-INF/com/google/android/update-script
META-INF/com/google/android/updater-script

update-binaryは実行ファイル。あとの2つはテキスト。
スクリプトファイル読むと、OTAの勉強になりそうだけど、このへんはまた機会があったら。

root@debian:~/gtv# cat ota.prop
ro.ota.version=5

ほー、何かチェックに使っているのかな。


boot.imgは直置きね。
build.propはこんな感じ。

root@debian:~/gtv# cat system/build.prop
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KA1X-20101215.164651
ro.build.display.id=KA1X-20101215.164651.user-b42732
ro.build.version.incremental=user-b42732
ro.build.version.sdk=7
ro.build.version.codename=REL
ro.build.version.release=2.1-update1
ro.build.date=Wed Dec 15 16:47:55 MST 2010
ro.build.date.utc=1292456875
ro.build.type=user
ro.build.user=parabuild
ro.build.host=vdc01b01ubuntu05
ro.build.tags=test-keys
ro.product.model=Revue
ro.product.brand=logitech
ro.product.name=ka
ro.product.device=ka
ro.product.board=
ro.product.cpu.abi=i386
ro.product.manufacturer=logitech
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=
# ro.build.product is obsolete; use ro.product.device
ro.build.product=ka
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=ka-user 2.1-update1 KA1X-20101215.164651 user-b42732 release-keys
ro.build.fingerprint=logitech/ka/ka/:2.1-update1/KA1X-20101215.164651/user-b42732:user/release-keys
# end build properties
# begin system.prop for fishtank
ro.config.sync = yes
app.setupwizard.disable=1
keyguard.no_require_sim=1
net.ethernetdev=eth0
wifi.interface=ath0
ro.checkin.onboot=1
net.wifi.driver_unloadable=0

# The lease length for addresses supplied by the DHCP server if the private
# network is enabled.
net.privatenet.leaselength=86400

# GTV has a large screen and plenty of RAM, so enlarge the Dalvik heap
# 48m for 1080 output.
dalvik.vm.heapsize=48m

# end system.prop for fishtank

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.com.android.wifi-watchlist=GoogleGuest
ro.config.notification_sound=Default.ogg
ro.error.receiver.system.apps=com.google.android.feedback
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-yyyy
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.googletv=yes
net.bt.name=Android
ro.config.sync=yes
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.build.version.intel=IntelCE-13.226627

ヒープサイズが超でかい。
HD画像用か。


このへんが起動関連か。

root@debian:~/gtv# ls -lh system/boot/*      
-rw-r--r-- 1 root root  2.0M Jul 24  2010 system/boot/kernel
-rw-r--r-- 1 root root  4.8M Jul 24  2010 system/boot/recovery.img
-rw-r--r-- 1 root root 1013K Jul 24  2010 system/boot/splash.bmp

recovery.img小さいなぁ。全部はいってなさそう。
chromegtk入っているのね。うざいよ。

system/chrome/lib/gtk-2.0/2.10.0/

pangoってなんだっけ?
テキストのレイアウトとレンダリングするフレームワークだっけか。

system/chrome/lib/pango/

このへんが問題のQt。これもうざい。

system/netflix/usr/local/qtc/imports/Qt/labs/