|
現: 2020-12-26 (土) 15:07:38 yuji |
| + | *apktool [#r6ea002c] |
| + | Androidのアプリに日本語リソースが入っていない場合,apktoolを使うと日本語リソースだけを追加することが出来る。~ |
| | | |
| + | apktoolでapkファイルを作成することは出来るんだけど,これは署名がないapkファイルになってしまう。このままだと端末に入れられない。 |
| + | |
| + | そこで署名された元のapkファイルに日本語が入ったリソースファイルを戻してやることによって,端末に入れられるapkファイルに出来る。 |
| + | |
| + | **apktoolのインストール [#o68cacaa] |
| + | [[ここのサイト:http://code.google.com/p/android-apktool/downloads/list]]から,apktool-install-windows-2.2_r01-3.tar.bz2とapktool1.3.2.tar.bz2をダウンロードする。~ |
| + | これらのファイルを適当な場所に解凍する。 |
| + | -apktool.jarのあるディレクトリにCLASSPATHを通します。~ |
| + | -aapt.exe,apktool.batを,Android SDKのtoolsディレクトリか,どこかpathの通っているところに入れる。~ |
| + | --[[7z.exe:http://www.7-zip.org/]]もpathの通っているところに入れておく。~ |
| + | |
| + | **apkファイルを用意 [#gdd7e350] |
| + | 適当なディレクトリを作って,そこで作業をします。 |
| + | すでにapkをインストールしている場合は,adbコマンドでPCにコピーする。 |
| + | adb pull /system/app/ |
| + | adb pull /system/framework/ |
| + | |
| + | **apkを解凍 [#s929c7bd] |
| + | apkファイルはzip形式でアーカイブされているんで,以下のようにして分解する。 |
| + | 次のコマンドをタイプしてパッケージを解凍します。 |
| + | adbtool d パッケージ名.apk |
| + | パッケージ名と同じ名前のフォルダが作成されて,ファイルが分解されて格納される。 |
| + | |
| + | **共通フレームワークの生成 [#d9765d6d] |
| + | パッケージを再圧縮するときに,共通フレームワークを使用することになる。~ |
| + | 前もって,共通フレームワークを用意しておく。 |
| + | apktool if framework-res.apk |
| + | |
| + | **日本語リソースを作成する [#qa595adc] |
| + | アプリ・ディレクトリのresの中には,valuesとvalues-esとか各言語に翻訳されたリソースが入っているディレクトリある。日本語に対応していればvalues-jaがあるはず。~ |
| + | |
| + | values-jaディレクトリを新規作成してvaluesフォルダからstrings.xmlと,あればarrays.xmlをコピーして,適当にファイルの中を変更していきます。values/strings.xmlにある項目でvalues-ja/strings.xmlに無い場合は,values/strings.xmlがデフォルトで使用されるようだ。~ |
| + | そのままで良い場合は,行を削除しても問題ない。日本語コードは,UTF8を使用する。 |
| + | |
| + | **frameworkリソースの変更 [#efce4d12] |
| + | ***framework-resの変更 [#ubc1297f] |
| + | framework-res/res/values-ja-rJP/arrays.xmlを編集して,「Settings」⇒「Language & keyboard」⇒「Select locale」で日本語の選択が出来るようにする。 |
| + | <?xml version="1.0" encoding="UTF-8"?> |
| + | <resources> |
| + | <integer-array name="maps_starting_lat_lng"> |
| + | <item>35666667</item> |
| + | <item>139750000</item> |
| + | </integer-array> |
| + | <integer-array name="maps_starting_zoom"> |
| + | <item>5</item> |
| + | </integer-array> |
| + | </resources> |
| + | |
| + | ***Settings.apkの変更 [#n9e1d07e] |
| + | Settings/res/values/arrays.xmlを編集して,ロケールの選択画面で「日本語」と表示されるようにする。 |
| + | <string-array name="special_locale_codes_display_names"> |
| + | <item>zh_CN</item> |
| + | <item>zh_TW</item> |
| + | <item>ja_JP</item> |
| + | </string-array> |
| + | <string-array name="special_locale_display_names"> |
| + | <item>中文(简体)</item> |
| + | <item>中文(繁體)</item> |
| + | <item>日本語</item> |
| + | </string-array> |
| + | |
| + | **リソースファイル再構築 [#wbaa5af0] |
| + | 以下のコマンドで,リソースファイルを再構築します。 |
| + | apktool b パッケージ名(拡張子は入力しない) |
| + | こうすると,パッケージ名\build\apkの中にresources.arscというファイルが生成されます。 |
| + | |
| + | この後,元のapkファイルのリソースファイルを,作ったリソースファイルに入れ替える。 |
| + | 7z u -tzip -mx=0 パッケージ名.apk パッケージがある場所\パッケージ名\build\apk\resources.arsc |
| + | で,これが行える。(resources.arscの指定は,フルパスで行う。) |
| + | |
| + | **出来たapkファイルに入れ替える [#f74807e0] |
| + | あとは,出来たapkファイルに入れ替えればOK。 |
| + | adb shell mount -o remount,rw /dev/block/mtbdlock3 /system |
| + | で/systemを書き換え可能にマウントし直して, |
| + | adb push xxxx.apk /system/app/xxxx.apk |
| + | adb shell chmod 644 /system/app/xxxx.apk |
| + | で入れ替えする。 |
| + | |
| + | framework-res.apkは上手く作らないと,ブートしなくなっちゃうんで注意しないといけない。 |