apktool anchor.png

Androidのアプリに日本語リソースが入っていない場合,apktoolを使うと日本語リソースだけを追加することが出来る。

apktoolでapkファイルを作成することは出来るんだけど,これは署名がないapkファイルになってしまう。このままだと端末に入れられない。

そこで署名された元のapkファイルに日本語が入ったリソースファイルを戻してやることによって,端末に入れられるapkファイルに出来る。

Page Top

apktoolのインストール anchor.png

ここのサイトから,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もpathの通っているところに入れておく。
Page Top

apkファイルを用意 anchor.png

適当なディレクトリを作って,そこで作業をします。 すでにapkをインストールしている場合は,adbコマンドでPCにコピーする。

adb pull /system/app/
adb pull /system/framework/
Page Top

apkを解凍 anchor.png

apkファイルはzip形式でアーカイブされているんで,以下のようにして分解する。 次のコマンドをタイプしてパッケージを解凍します。

adbtool d パッケージ名.apk

パッケージ名と同じ名前のフォルダが作成されて,ファイルが分解されて格納される。

Page Top

共通フレームワークの生成 anchor.png

パッケージを再圧縮するときに,共通フレームワークを使用することになる。
前もって,共通フレームワークを用意しておく。

apktool if framework-res.apk
Page Top

日本語リソースを作成する anchor.png

アプリ・ディレクトリのresの中には,valuesとvalues-esとか各言語に翻訳されたリソースが入っているディレクトリある。日本語に対応していればvalues-jaがあるはず。

values-jaディレクトリを新規作成してvaluesフォルダからstrings.xmlと,あればarrays.xmlをコピーして,適当にファイルの中を変更していきます。values/strings.xmlにある項目でvalues-ja/strings.xmlに無い場合は,values/strings.xmlがデフォルトで使用されるようだ。
そのままで良い場合は,行を削除しても問題ない。日本語コードは,UTF8を使用する。

Page Top

frameworkリソースの変更 anchor.png

Page Top

framework-resの変更 anchor.png

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>
Page Top

Settings.apkの変更 anchor.png

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>
Page Top

リソースファイル再構築 anchor.png

以下のコマンドで,リソースファイルを再構築します。

apktool b パッケージ名(拡張子は入力しない)

こうすると,パッケージ名\build\apkの中にresources.arscというファイルが生成されます。

この後,元のapkファイルのリソースファイルを,作ったリソースファイルに入れ替える。

7z u -tzip -mx=0 パッケージ名.apk パッケージがある場所\パッケージ名\build\apk\resources.arsc

で,これが行える。(resources.arscの指定は,フルパスで行う。)

Page Top

出来たapkファイルに入れ替える anchor.png

あとは,出来た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は上手く作らないと,ブートしなくなっちゃうんで注意しないといけない。


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 703, today: 1, yesterday: 0
最終更新: 2020-12-26 (土) 16:07:38 (JST) (1188d) by yuji