MOTOACTV使用開始前にしておきたいGoogle Apps導入

2012年1月11日 by · コメント(3)
カテゴリ: Android 

前回の続き

元々マップとか入ってない MOTOACTV ですが、すっかり Android 2.3 なので是非使いたいとお思いの諸兄!そこのあなたですよ。あなた!黴びた餅とか乗っけてるあなた!

色々アプリを入れた後に Google Apps を入れると以前に入れたアプリで C2DM を利用するのがあったとかすると権限の足りないとかブチブチ落ちるようになるのではじめに入れとくといいですね。

とりあえず↓から CyanogenMod 7 用のファイルをダウンロードしておく。

Latest Version-Google Apps – CyanogenMod Wiki

本来はリカバリーから導入するためのファイルなんですが、標準のリカバリーは署名の問題で使うことができないので手動で入れることにしましょう。

その前に。

ContactsProvider が存在しないため Google Service Frameworks がエラーで落ちるのでどっかから Defy かなにかの 2.3.x な ContactsProvider2_0.apk(deodexed) を拝借して /system/app/ に追加しておきましょう。Motorola の機種ならほかのでも大丈夫かどうかは検証してません。

なお、目標はマーケットから正規にアプリをインストールすることなんですが現状よそから持ってきた DownloadProvider.apk で android.media ユーザーの署名が違うって文句言われて読み込めてないためできてません。めんどくさい。

 

で、先ほどダウンロードした gapps-gb-(中略).zip ファイルからコピーする必要があるのは最低限

/system/app/GoogleServicesFramework.apk
/system/etc/permissions/com.google.android.maps.xml
/system/etc/permissions/features.xml
/system/framework/com.google.android.maps.jar

ぐらいかな。権限はみんな 644 でよいです。

Talk 使いたい人は Talk.apk 、古いマーケット使いたい人は Vending.apk とか適宜入れてみればいいと思います。マップとかはマーケットがまともに動けばそっちで入れたほうがいいんですが、いまんとこ別端末から持ってきて入れてます。

 

そんなこんなで手動であれこれ入れてみた感じ。

Latitude のアイコンがおかしいとか Google Music の再生ボタンが押しにくいとか色々ありますが、まあなんとか使えてる。

imageimage
imageimage
imageimage
imageimage

Google Music はちゃんとサーバーにアップロードした曲を再生できますよ!電池はそれなりに消費しますが、Wi-Fi で5時間ぐらいは聞けると思います。たぶん。電池ちっちゃいんで勘弁して下さい。

なお、Music アプリは例によって最初の起動時に表示される「新着」画面でメニューキーを押しても設定が出てこないことがまれにあるので、そういう時は「アルバム」とかに切り替えてメニューを押すと設定を表示することができたりします。

あと検索ボタンを押すと落ちるので困ってるのと ATOK がマーケット認証で正常に購入したことが確認できないみたいでキーボードが表示されなくてしょんぼり。

 

今日のところはこれぐらいで勘弁してやる!

遅ればせながらアップデートファイルに含まれているパッチの適用方法

2012年1月11日 by · コメント(2)
カテゴリ: Android 

アップデートファイルに含まれている ファイル名.p というファイルは差分ファイルです。

以前のバージョンのファイルに差分を適用することで新しいバージョンのファイルが出来るというカラクリ。

その差分ファイルを元ファイルに適用するのが /system/bin/applypatch です。

とりあえず端末上で実行してみましょう

# applypatch
applypatch
usage: applypatch <src-file> <tgt-file> <tgt-sha1> <tgt-size> [<src-sha1>:<patch> …]
or  applypatch -c <file> [<sha1> …]
or  applypatch -s <bytes>
or  applypatch -l

Filenames may be of the form
MTD:<partition>:<len_1>:<sha1_1>:<len_2>:<sha1_2>:…
to specify reading from or writing to an MTD partition.

どうやら <src-file> というのが元のファイルで <tgt-file> というのが出力先。sha1 ってのはハッシュで size はファイルサイズです。

はぁ?って感じw

そこで参考にするのはアップデートファイルに含まれている /META-INF/com/google/android/updater-script というファイル。

例えば boot 領域に boot.img.p を適用するっぽいところにはこう書かれています。

apply_patch(“MTD:boot:2955264:(中略)”, “-“, bdf23d8737e235a6bd38ab017d2a39baf678f74a, 2957312, 69d5cb317b7293600a329855094f33322ac261e8, package_extract_file(“patch/boot.img.p”));

はい。 MTD から始まる部分は /dev/block/boot のパーティションを示してますが、今回はファイル(boot76.img)に差分ファイル(boot.img.p)を適用するので気にしない。

applypatch /sdcard/boot76.img /sdcard/boot78.img bdf23d8737e235a6bd38ab017d2a39baf678f74a 2957312 69d5cb317b7293600a329855094f33322ac261e8:/sdcard/boot.img.p

というふうに書いて実行すると

applying patch to /sdcard/boot76.img
failed to stat “/sdcard/boot78.img”: No such file or directory
target 2957312 bytes; free space -1688469504 bytes; retry 1; enough 1

のように表示されて /sdcard/boot78.img ができます。

差分ファイルの書き方が罠で、「sha1ハッシュ:ファイル名」と「:」で繋げて書かねばいけません。

ええ、はまりました。

以上ご参考まで。