Desire X06HT – Gingerbread(2.3)の導入でHTC公式のGingerbreadを導入したのはいいのですが、WWE版ROMなのでいろいろと調整が必要です。
expert/developer版という時点で、SBMのOTAが降りてくることはまずないと考えられますので、自力でSBM版+αのアップデータを作成することにしました。
なるべくSBM版に近づくよう(といっても、WiFi HotSpot等はもちろん残しますが)、2.2SBM版と2.3WWE版を比較しながら修正をかけていくこととします。
SBM化することにそこまで大きなメリットがあるわけでもないので、ほとんどの人はCyanogenMod等の既製GingerbreadベースROMを入れるほうがいいと思われます。
フォントの修正
海外ROMそのままでも日本語の表示は可能ですが、そのままでは中華フォントで表示されてしまうため、生粋の日本人としてはちょっと気持ち悪いと感じてしまいます。フォントの入れ替えについては様々な場所で情報が出ていますので詳細は割愛します。
将来的にsystemパーティションにアプリを追加するなどで空き容量を気にする場合は、ArabicやHebrew、Thai等のSBM版で存在しないフォントを削除してしまってもOK。
と思いましたが、もうちょっと書いておきます。
AOSPにモトヤフォントが2書体提供されたことで、GingerbreadからはDroidSansJapanese.ttfよりも先にモトヤフォントがあれば使用されるようになっています。せっかくなので使ってみることにしましょう。
AOSPのgitリポジトリにコミットされているので、ここからダウンロードしてきます。
フォントのサーチ順序は、ソースを見る限り、MTLmr3m.ttf(モトヤLマルベリ3)、MTLc3m.ttf(モトヤLシーダ3)、DroidSansJapanese.ttf(これまでの標準)の順になっていますので、/system/fonts以下に設置するだけで優先して使ってくれます。
両方設置するとMTLmr3m.ttfが優先されるので、MTLc3m.ttfが好みであればMTLmr3m.ttfは消しておく必要があります。
フォントを設置して再起動すると、以下のように見た目が修正されているはずです。
system/build.propの修正
2.2SBM版と2.3のbuild.propを比較し、差分を取り込むかどうかを検討します。
所謂「魔法の*行」系やモデル名、Android Market接続時のクライアント名等を修正します。
変更点はこんな感じ。build_prop.diff
system/customize/CID/default.xmlの修正
主に言語設定系を修正しています。
変更点はこんな感じ。cid_default_xml.diff
system/customize/MNS/default.xmlの修正
日付フォーマットやユーザーエージェント、ブックマーク、ニュースフィード等を修正しています。
変更点はこんな感じ。mns_default_xml.diff
system/customize/resourceへのサムネイル画像の追加
別にどっちでもいいのですが、ブックマークのサムネイルが表示されないのも気持ち悪いので。
m25d2c4d0.jpg、m5da27093.jpg、m6f42e0d4.jpg、m8bb6da6a.jpg、mced67991.jpg、md6b0768b.jpg、
s25d2c4d0.jpg、 s5da27093.jpg、s6f42e0d4.jpg、s8bb6da6a.jpg、sced67991.jpg、sd6b0768b.jpg
の12ファイルを2.2SBM版から移植しておきます。
system/etc/wifi/wpa_supplicant.confの修正
SBM版には、BBモバイルポイントのアクセスポイント設定が予め設定されていますので、それを移植。
--- system/etc/wifi/wpa_supplicant.conf.org 2011-08-29 17:03:27.000000000 +0900
+++ system/etc/wifi/wpa_supplicant.conf 2011-08-31 12:37:13.489692329 +0900
@@ -4,3 +4,12 @@
eapol_version=1
ap_scan=1
fast_reauth=1
+
+network={
+ ssid="mobilepoint"
+ scan_ssid=1
+ key_mgmt=NONE
+ group=WEP104 WEP40
+ auth_alg=OPEN SHARED
+ wep_key0="iawak"
+}
IME周りの修正
WWE版では、HTC IMEという標準のIMEが搭載されていますが、いらないので削除します。
代わりに2.2SBM版に入っていたiWnn IMEを移植しておきます。
X06HT – OpenDesireにiWnnを移植で記載した方法でdeodexedなiWnnIME.apkを作成し、lib系のファイル群と合わせて設置します。
後処理
上記の一連の更新が終わったら、dataパーティションをwipeしたほうがよいでしょう。言語設定やユーザーエージェントなどはdataパーティション内のxmlやdbに記録されていますので、wipeしないと設定が反映されない可能性があります。
補足:アップデータを作成(必要なら)
何回も作業する可能性がある場合はいちいち繰り返すのが面倒なので、Desire X06HT – Gingerbread(2.3)の導入で記載したframework-res.apkの上書きも含めて更新作業を一括でやるためのアップデータを作っておくと便利です。
そうすると、PB99IMG.zipでの更新もしくはRUUでの更新+root化の後、アップデータの適用&data/cacheパーティションwipeで簡単にSBM化できます。
作ったアップデータを公開するといろいろ問題が出そうですので、updater-scriptだけ公開しておきます。
新規/上書き系は、package_extract_dir(“system”, “/system”); 一発で基本的にOKですが、敢えて細かく分けて進捗を表示しています。
ui_print("");
ui_print("");
ui_print("************************************************");
ui_print("* X06HT updater for Desire 2.3 *");
ui_print("************************************************");
show_progress(1.000000, 0);
ui_print("Checking fingerprint...");
mount("MTD", "system", "/system");
assert(file_getprop("/system/build.prop", "ro.build.fingerprint") == "htc_wwe/htc_bravo/bravo:2.3.3/GRI40/96875.1:user/release-keys" ||
file_getprop("/system/build.prop", "ro.build.fingerprint") == "softbank_jp/htc_bravo/bravo:2.3.3/GRI40/96875.1:user/release-keys");
assert(getprop("ro.product.device") == "bravo");
# replace config files
ui_print("Replacing build.prop...");
package_extract_file("system/build.prop", "/system/build.prop");
set_progress(0.100000);
ui_print("Replacing CID/default.xml...");
package_extract_file("system/customize/CID/default.xml", "/system/customize/CID/default.xml");
set_progress(0.200000);
ui_print("Replacing MNS/default.xml...");
package_extract_file("system/customize/MNS/default.xml", "/system/customize/MNS/default.xml");
set_progress(0.300000);
ui_print("Updating resources...");
package_extract_dir("system/customize/resource", "/system/customize/resource");
delete("/system/customize/resource/android_audio.mp3");
set_progress(0.400000);
ui_print("Updating Wi-Fi setting...");
package_extract_file("system/etc/wifi/wpa_supplicant.conf", "/system/etc/wifi/wpa_supplicant.conf");
set_progress(0.500000);
# replace fonts
ui_print("Removing unneeded fonts...");
delete("/system/fonts/ARDJ-KK.ttf",
"/system/fonts/DroidSansArabic.ttf",
"/system/fonts/DroidSansHebrew.ttf",
"/system/fonts/DroidSansThai.ttf",
"/system/fonts/WT_Sans_Armenian.ttf",
"/system/fonts/gcsh00d-hkscs.ttf",
"/system/fonts/ucsh00d_c.ttf");
set_progress(0.600000);
ui_print("Installing japanese fonts...");
package_extract_dir("system/fonts", "/system/fonts");
set_progress(0.700000);
# replace framework-res.apk
ui_print("Replacing framework-res.apk...");
package_extract_file("system/framework/framework-res.apk", "/system/framework/framework-res.apk");
set_progress(0.800000);
# remove HTC IME & install iWnn IME
ui_print("Removing HTC IME...");
delete("/system/app/HTC_IME.apk", "/system/app/HTC_IME.odex");
ui_print("Installing iWnn IME...");
package_extract_dir("system/app", "/system/app");
package_extract_dir("system/lib", "/system/lib");
set_progress(0.900000);
unmount("/system");
set_progress(1.000000);
show_progress(1.000000, 0);
ui_print("Update complete.");


