2011/11/06

framework-res.apk書き換えによるLocaleの追加



Last Update ; 18/Nov/2011

韓国版のGalaxy S2(shw-m250s)の"framework-res.apk"を書き換え、設定メニューの[Language and  keyboard]から日本語Localeが選択出来るようにしてみました。

1)準備

以下のサイトからapktool(apk作成ツール)をPCにダウンロードします。

https://code.google.com/p/android-apktool/downloads/list

ダウンロードしたファイルは以下の2つです。

apktool1.4.1.tar.bz2
apktool-install-windows-r04-brut1.tar.bz2

/apktook/と言うフォルダを作成し、ダウンロードして解凍した上記2ファイルから以下の3つのファイルを取り出して、その中に入れます。

apktool1.4.1から ; apktool.jar
apktool-install-windows-r04-brut1から ; aapt.exe と apktool.bat

次に、以下のサイトから7z(ファイル圧縮ツール)を入手します。

http://www.7-zip.org/

今回はexe形式の以下のファイルをダウンロードしました。

7z920.exe

ダウンロードしたファイルは解凍し、中身を/apktool/にコピーしておきます。

2)"framework-res.apk"と"Settings.apk"の吸出し

端末をPCと繋ぎ、SDKから以下のコマンドで操作して"framework-res.apk"と"Settings.apk"を吸い出します。

adb pull /system/framework/framework-res.apk
adb pull /system/app/Settings.apk

/android-sdk-windows/tools/に"framework-res.apk"と"Settings.apk"が吸い出されます。

吸い出したファイルは/apktool/にコピーしておきます。

この時点で、問題発生時に備え、両ファイルのバックアップをとっておくと良いでしょう。

3)リソース情報の設定

コマンドプロンプト上で、/apktool/から以下のコマンドを入力します。

apktool if framework-res.apk

/apktool/framework/に"1.apk"というファイルが生成されます。

4)framework-res.apkとSettings.apkの展開

コマンドプロンプト上で、/apktool/から以下のコマンドを入力します。

apktool d framework-res.apk
apktool d Settings.apk

/apktool/の下に、"framework-res"と"Settings"の2つのフォルダーが作成されます。

5)arrays.xmlの準備

以下の内容の"array.xml"を作成します。

<?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>

今回は、WindowsのNotepadを使用して作成しました。

ファイルの保存時は必ずUTF-8で保存してください。

作成したarrays.xmlは、/apktool/framework-res/の中に"values-ja-rJP"というフォルダーを作成して、その中に置きます。

6)リソースファイルの作成

コマンドプロンプト上で、apktoolがあるディレクトリ上から以下のコマンドを入力します。

apktool b framework-res

/apktool/framework-res/build/apkの中に"resources.arsc"という名前のリソースファイルが出来ます。

7) framework-res.apkファイルの作成

上記resources.arscを/apktool/にコピーします。

次に、"framework-res.apk"を"framework-res.zip"にリネームします。

コマンドプロンプト上で、apktoolがあるディレクトリ上から以下のコマンドを入力します。

7z.exe u -mx=0 framework-res.zip resources.arsc

/apktool/に新しい"framework-res.zip"が生成されます。

作成したファイルは"framework-res.apk"にリネームしておきます。

8) framework-res.apkファイルの差し換え

それを/android-sdk-windows/toolsにコピーします。

sdkから下記コマンドで端末内の"framework-res.apk"を差し換えます。

adb push framework-res.apk /sdcard/
adb shell
$ su
# mount -o remount,rw /dev/block/mtdblock0 /system
# mv /system/framework/framework-res.apk /system/framework/framework-res.org
# cp /sdcard/framework-res.apk /system/framework/
# exit
# exit

これで、設定メニューから日本語のLocaleが選択出来るようになります。


参照サイト
http://d.hatena.ne.jp/Gzh/20101110

0 件のコメント:

コメントを投稿