真っ先にFroyoにアップデートしました。
次にadb経由でアクセスできるようにします。sdkをインストールして、USB ドライバをインストール。android-sdk/extras/google/usb_driver/android_winusb.infを開き、Google.NTx86とGoogle.NTamd64のところに以下の文字列を追加します。
;Creative Zen Touch 2
%SingleAdbInterface% = USB_Install, USBVID_041E&PID_4166
%CompositeAdbInterface% = USB_Install, USBVID_041E&PID_4166&MI_01
また、次のコマンドラインを実行して、新たにファイルを作成します。
echo 0x041E >> “%USERPROFILE%/.android/adb_usb.ini”
ひとまずPCをリブートし、USBでZen Touchを接続し、android-sdk/extras/google/usb_driver/にあるドライバを当てれば、これでPCからZen Touch 2へアクセスできるようになりました。
次にroot化。SuperOneClickv1.9.1-ShortFuse.zipをダウンロードして、「Root」ボタンを押すだけです。途中busyboxをインストールするかどうか聞いてきますが、これを入れないとadb経由でshellに入ったときにLinuxコマンドが使えないので、迷わず入れます。
これで準備OKです。
ここからカスタマイズしていきます。/systemのパーティションはあまり大きくないので、不要なファイルを(バックアップして)消していきます。まずはadb shellで端末に入り(当たり前ですが、端末側でUSBデバッグモードが有効になっている必要があります)、suになります。面倒なので、このまま/systemを丸ごと/sdcard(内蔵ストレジ)にコピーします。
cp -r /system /sdcard/
busyboxのシンボリックリンクなどはエラーが出てコピーできませんが、後から自分で入れたものなので、構いません。まず、/system/appから見ていきます。
CreativeReg.apk
CreativeUserGuide.apk
Email.apk(プロバイダメールなどは使わないので)
Mms.apk
OpenWnn.apk(Simejiを使うので)
などが消せそうです。今の状態では/systemはリードオンリーでマウントされているので、書き換えができるようにマウントしなおします。
mount -o rw,remount /dev/block/mmcblk0p2 /system
rmで上のアプリをどんどん消していきます。次に/system/mediaを見てみます。電話でもないのに/system/media/audio/ringtonesにたくさんのファイルが入っています。使わないのでごっそり削除します。
削除はこれくらいにしておいて、今度はいくつかファイルを端末にコピーしていきます。やり方としては一度adbから出て、端末をUSBストレジとしてPCに接続します。この際、内部ストレジと、SDカードが入っている場合SDカードもPCから見えるようになります。端末本体にコピーしたいファイルをどちらでもいいのでここでコピーしておきます。コピーし終えたら、PCとの接続を切断して、再度adb shellで端末に入り、su、書き換え可能で/systemをマウントしなおします。内部ストレジは/sdcard、SDカードは/extsdとして自動的にマウントされていますので、先ほど入れておいたファイルをここから/systemにコピー(cp)していきます。
この端末も日本語フォントが入っていないので、まずは日本語フォントを入れます。好みのものをDroidSansJapanese.ttfとリネームして、/system/fontsにコピー。これで簡体字ぽくない字で日本語が表示されます。くれぐれもサイズの大きなフォントを使わないようにしましょう。(と言いながら、私は8MBのフォントを使っているのですが…)
このままではマーケットも使えず、アプリのインストールが面倒なので、マーケットが使えるようにGappsをインストールします。ここにはFroyo用のGappsがいくつもありますが、すべて使えるわけではありません。また、新しければいいわけでもありません。ちなみに、
gapps-mdpi-20110501-signed.zip=/dataにアプリがインストールできない
gapps-mdpi-20110301-signed.zip=立ち上がらない
gapps-mdpi-20101020-signed.zip=不安定
gapps-mdpi-20100930-signed.zip=gapps-mdpi-20101020-signed.zipよりはまし
ということで、今回はgapps-mdpi-20100930-signed.zipを使います。このファイルをPCでダウンロードして、中身を解凍してSDカードに保存しました。この中にはたくさんのファイルが入っていますが、必要最小限のものだけ端末本体にコピーして、それ以外は後からマーケットでダウンロードしてくることにします。今回まず入れたファイルは以下の通りです。
cp -f /extsd/gapps/system/app/Gmail.apk /system/app
cp -f /extsd/gapps/system/app/GoogleBackupTransport.apk /system/app
cp -f /extsd/gapps/system/app/GoogleCalendarSyncAdapter.apk /system/app
cp -f /extsd/gapps/system/app/GoogleContactsSyncAdapter.apk /system/app
cp -f /extsd/gapps/system/app/GooglePartnerSetup.apk /system/app
cp -f /extsd/gapps/system/app/GoogleQuickSearchBox.apk /system/app
cp -f /extsd/gapps/system/app/GoogleServicesFramework.apk /system/app
cp -f /extsd/gapps/system/app/MarketUpdater.apk /system/app
cp -f /extsd/gapps/system/app/MediaUploader.apk /system/app
cp -f /extsd/gapps/system/app/NetworkLocation.apk /system/app
cp -f /extsd/gapps/system/app/OneTimeInitializer.apk /system/app
cp -f /extsd/gapps/system/app/Vending.apk /system/app
cp -f /extsd/gapps/system/app/VoiceSearch.apk /system/app
cp -f /extsd/gapps/system/etc/permissions/com.google.android.maps.xml /system/etc/permissions
cp -f /extsd/gapps/system/etc/permissions/features.xml /system/etc/permissions
cp -f /extsd/gapps/system/framework/com.google.android.maps.jar /system/framework
cp -f /extsd/gapps/system/lib/libspeech.so /system/lib/
cp -f /extsd/gapps/system/lib/libvoicesearch.so /system/lib/
更に、/system/build.propのfingerprintの部分を次のように書き換えます。
ro.build.fingerprint=google/passion/passion/mahimahi:2.2/FRF91/43546:user/release-keys
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.com.google.clientidbase=android-google
ro.com.android.wifi-watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
これで一度端末をリブートすれば、Gmailやマーケットが使えるようになっているはずです。とはいえ、ここで問題が… もともとZen Touch 2には連絡先とカレンダーが入っていますが、何故か見えないようになっています。上でGappsをインストールしたので、連絡先とカレンダーの同期はできるし、連絡先やカレンダーを呼び出すアプリからは正しく連絡先やカレンダーを呼び出せるのですが、ドロアーの中に何故かアイコンがないので直接呼び出すことができません… あまり直接呼び出すことはないのですが、ちょっと気持ち悪いです。これは今後の宿題として、後でちょっとググってみる必要がありそうです。当面は、ジョルテとGo Contactsを代わりに使おうと思います。
挙動不審な動きは他にもあります。素のAndroidなら、/system/build.propの中で、
ro.product.locale.language=ja
ro.product.locale.region=JP
と設定すると、デフォルトの地域とロケールが日本語になるのですが、Zen Touch 2の場合、初回起動時に日本語で立ち上がるものの、次の瞬間直ちに英語に戻ってしまいます。設定→言語とキーボードで、改めて日本語を設定する必要があります。連絡先やカレンダーが見えないのも含め、どこかに何かが設定されているように思えます。
とここまで書いたものの、このカスタマイズは非常に危険だと思いました。ZenTouch2GPS_1_00_38to2_00_23_fwupd.apk\assetsの下にある「data」をupdate.zipとリネームして、/sdcardか/extsdの直下に置いておけば、リカバリーモードからROMを焼きなおせるような気がしますが(最後の手段なので試していません)、/systemを直接書き換えできるので、間違って起動に必要なファイルなどを消して、システムが立ち上がらなくなった場合に、元に戻す術がありません。rmコマンドを使う前には、必ずファイルを/sdcardなどにコピーしておくなど、気をつけながら進めていかないと、失敗する可能性は大だと思いました。
一応、連絡先とカレンダー以外は落ち着いたので、ddコマンドで/systemと/dataのイメージをバックアップしておこうと思います。
(modified on 05/18/2011: build.propの書き換え部分を追記)
はじめまして
教えてもらいたいのですが
コマンドプロントからadb shll は出来たのですが
その後の Cp-rコマンドが認識されません
【suになります。面倒なので、このまま/systemを丸ごと/sdcard(内蔵ストレジ)にコピーします。】この分のSuのコマンドは何か設定がありますか
基本的なことなのでしょうがお願いします
その前の段階のSuperOneClickでのroot化がうまくいっていないのではないですか?
ちなみに、オリジナルのファイルをバックアップしたいので、
cp -r /system /sdcard/
を行うだけで、別にやらなくてもその後の作業に支障はないですよ。