Galaxy SにTweaky ROM JVPを導入(Android 2.3.4ベース)と、日本語リソースの埋め込み
今回もカスタムROMの導入です。。今月何度目だ?
今回は日本語リソースを付けてAndroid 2.3.4(I9000XXJVP)がベースのTweaky ROMを導入したいと思います。
※以下、自己責任でお願いします。
※記事の最後に日本語化したTweaky ROMのダウンロードを用意しました
ファームアップ前に...
インストールしているアプリケーションのバックアップをしておいたほう
がいいと思います。(私はTitanium Backupを使用しています。)
ClockworkMod Recoveryのインストール
AndroidマーケットからROM Manager経由でClockworkMod Recoveryを
インストールしておきます。
ツール類の入手
以下のツールを入手してください。
・Android SDK
(adb.exeが必要。adb.exeのフォルダにパスを通しておくとベター)
・Java Runtime Environment
・apktool
(apktool*****.tar.bz2とapktool-install-*******.tar.bz2をダウンロード)
・7-zip
上記のうち、apktoolと7-zipの関連ファイルを1つのフォルダに入れておきます。
今回は「R:\apktool」とします。
ClockworkMod Recoveryのインストール
マーケットからROM Manager経由でClockworkMod Recoveryを
インストールしておきます。
Tweaky ROMの入手
ココにある、「Tweaky ROM JVP Wipe」か「Tweaky ROM JVP no Wipe」
を入手してください。(Wipe:初期化)
今回私はWipeのほう(Tweaky ROM JVP Wipe.zip)にしました。
Tweaky ROM JVP Wipe.zipから日本語化するapkの抜き出し
今回は「framework-res.apk」と「Settings.apk」と「twframework-res.apk」
を抜き出して、日本語リソースの埋め込みを行います。
zipを解凍するソフトで以下の3ファイルを抜き出して「R:\apktool」にコピーします。
・framework-res.apkの場所: ・・・・\system\framework
・Settings.apkの場所: ・・・\system\app
・twframework-res.apkの場所: ・・・\system\framework
リソース参照用ファイルの作成
コマンドラインから以下のコマンドを実行します。
apktool if framework-res.apk
apktool if twframework-res.apk
framework-res.apkなどをデコードするときに参照されるリソースファイル
がユーザーフォルダ以下コピーされます。
Settings.apkのデコード
コマンドラインから以下のコマンドを実行します。
apktool d Settings.apk
デコードされたSettings.apkが「R:\apktool\Settings」にコピーされます。
Settings.apkに日本語リソースの追加
Settings.apkに限らずAndroidのアプリの構造として、resフォルダ直下に
各国用の言語リソースファイルが埋め込まれています。例えばドイツ語なら
「values-de」、フランス語なら「values-fr」といった具合です。
このフォルダに日本語のリソースフォルダとファイルを作成します。
・「values-ja」:arrays.xmlとstrings.xml
・「values-ja-nokeys」:strings.xml
※作成するファイルの中身についてはこの記事の最後に書きます
続いて R:\apktool\Settings\res\values\arrays.xml を開き、
下記セクションにキーを追加します。
・ special_locale_codes に <item>ja_JP</item>
・ special_locale_names に <item>日本語</item>
framework-res.apkとtwframework-res.apkのデコードと日本語リソースの追加
長くなってきたので割愛しますが、ざっと書くと
デコード
apktool d framework-res.apk
apktool d twframework-res.apk
日本語のリソースフォルダとファイルを作成
R:\apktool\framework-res\res に
・「raw-ja」:loaderror.html と nodomain.html
・「values-ja」:arrays.xml と plurals.xml と strings.xml
・「values-ja-rJP」:arrays.xml
R:\apktool\twframework-res\res に
・「values-ja」:dimens.xml と strings.xml
リソースの手直し
本来であればここからリソースファイルの作成に入るのですが、
どうやら元のリソースファイルにバグ(?)があるのか、このままでは
リソースファイルの作成でエラーが出ます。
ということで、日本語化とは関係ありませんがリソースの手直しを行います
・R:\apktool\framework-res\res\values\strings.xml に、
permdesc_accessUsbキーとpermlab_accessUsbキーを追加
<string name="permdesc_accessUsb">Allows the application to access USB devices.</string>
<string name="permlab_accessUsb">access USB devices</string>
リソースファイルの作成
コマンドラインから以下のコマンドを実行します。
apktool b Settings
apktool b framework-res
apktool b twframework-res
これで其々の buid\apkにresources.arscファイルが生成されました。
resources.arscを各apkに上書き
上記で作成したresources.arscを各apkファイルに上書きしていきます。
コマンドラインから以下のコマンドを実行します。
copy Settings.apk Settings.zip
copy framework-res.apk framework-res.zip
copy twframework-res.apk twframework-res.zip
7z.exe u -mx=0 Settings.zip R:\apktool\Settings\build\apk\resources.arsc
7z.exe u -mx=0 framework-res.zip R:\apktool\framework-res\build\apk\resources.arsc
7z.exe u -mx=0 twframework-res.zip R:\apktool\twframework-res\build\apk\resources.arsc
7z.exeが拡張子apkでは実行してくれないので、拡張子zipでコピー
してからresources.arscの上書きを行っています
resources.arscの上書きが終わったら、拡張子zipを拡張子apkにリネームしてください。
apkファイルをTweaky ROM JVP Wipe.zipに上書きコピー
上記で出来上がったapkファイルを、元のTweaky ROM JVP Wipe.zipに
コピーします。私の場合はWinRARでTweaky ROM JVP Wipe.zipを開いて各apkをD&Dでコピーしました。
コピー先は、「Tweaky ROM JVP Wipe.zipから日本語化するapkの抜き出し」を参照ください。
Tweaky ROM JVP Wipeのコピー
端末をUSBで接続し、SD CardにTweaky ROM JVP Wipe.zipをコピーします
adb push "*:***\Tweaky ROM JVP Wipe.zip” \sdcard\
Tweaky ROM JVP Wipeのインストール
リカバリーモードで立ち上げて「install zip from sdcrad」をクリック、
「choose zip from sdcard」をクリック、Tweaky ROM JVP Wipe.zipを
クリックしてインストールしてください。
終了したら「Go Back」をクリックして「reboot system now」で再起動
以上でAndroid 2.3.4ベースのTweaky ROMのインストールが完了しました。
日本語化も上手くいっているようです。。
おまけ。。。
日本語リソースの作り方
日本語リソースの作り方ですが、一番確実なのは各リソースフォルダの
valueフォルダにあるstring.xmlなどを翻訳していく方法です。
ただしこのやり方ではかなりの労力がかかってしまいます。
そこで私は色んなやり方を併用して今回日本語リソースを作成しました。
・http://fus.samsungmobile.com/*******.encファイルの入手
これは日本版GalaxySのバイナリファイルです。
このバイナリをバラして日本語リソースを入手します。
・ココからリソースファイルをコピーさせていただく
上記サイトは海外端末を日本語表記にするために立ちあげられた
サイトです。色んな端末の日本語リソースがあります。
・各xmlのキーでググって日本語表記を探す
実はこの方法が結構有用です。キーで探したらあるもんです。
・google翻訳と自力意訳
地味ですがこの方法も多用しました。。まるまる2日間は費やしたような。。
あとは、リソースファイルの作成(apktool bコマンド)をして表示されるエラーを潰していく作業になります。
ここまで読んで下さった皆様に。
分りにくい箇所だらけかもしれません、、もっと上手く書くように努力します。。。
まだ導入してからあまり時間が経っていませんが、今のところ正常に日本語で動いています。今回は結構大変でしたが遣り甲斐はありました。そこで今回は私が日本語リソースを埋め込んだTweaky ROM JVP Wipe.zipをダウンロード出来るようにしました。
最後まで読んでいただき、ありがとうございました。
※※※本当に本当に自己責任でお願いします。※※※
最悪の場合ブリック化が待っています。。。
Tweaky_ROM_JVP_Wipe_JA.zip
大変興味深く読ましていただきました。
返信削除海外版GT-I9000(Froyo2.2)がSamsung Kiesに接続できず、
2.3にファームアップできないまま困っていました。
どうせなら日本語標準のカスタムROMにチャレンジしようとググっていたら、
本サイトに行き当たりました。
まったくの素人質問ですみません。
上記のxxx_JA ROMの導入手順は、zipをDLしてSDカードにコピーし、
リカバリーモード以下の作業でよろしいですか?
19 さん
返信削除全然更新していないこんなBlogを見に来ていただいて有難う御座います。
> 上記のxxx_JA ROMの導入手順は、zipをDLしてSDカードにコピーし、
リカバリーモード以下の作業でよろしいですか?
ですね。ClockworkMod Recoveryが入っていれば、リカバリーブートで「install zip from sdcrad」をすればOKです。
i9000の情報がだんだん少なくなってきていますが、なんとかBlogの更新を再開したいのと持ってますので、引き続き覗きに来てもらえると嬉しいです。。