Creative ZEN Touch 2 (with GPS)のカスタマイズ その1

真っ先に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の書き換え部分を追記)

2 Replies to “Creative ZEN Touch 2 (with GPS)のカスタマイズ その1”

  1. はじめまして
    教えてもらいたいのですが
    コマンドプロントからadb shll は出来たのですが
    その後の Cp-rコマンドが認識されません
    【suになります。面倒なので、このまま/systemを丸ごと/sdcard(内蔵ストレジ)にコピーします。】この分のSuのコマンドは何か設定がありますか
    基本的なことなのでしょうがお願いします

    1. その前の段階のSuperOneClickでのroot化がうまくいっていないのではないですか?

      ちなみに、オリジナルのファイルをバックアップしたいので、
      cp -r /system /sdcard/
      を行うだけで、別にやらなくてもその後の作業に支障はないですよ。

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.