APKのデコンパイル/再コンパイルツール APK-Multi-Tool

APKのデコンパイル/再コンパイルなど様々な操作ができるツール、APK-Multi-Toolを紹介します。
以前はframework-res.apkのコンパイルに一手間必要だったのですが、今はもう必要なくなりました。


APK-Multi-ToolはGithubページで「Download ZIP」ボタンを押すとダウンロードできます。
現在2.0が開発中で、最近の機種のapkは2.0でないとデコンパイルやコンパイルができないことがあります。
付属のapktoolは2.0b9のようなので、RC1に更新したものをアップしておきます。

1. セットアップ

Xperiaの場合、デコンパイルにはframework-res.apk、SemcGenericUxpRes.apk、SystemUI.apkのインストールが必要です。
4.3までの場合

adb pull /system/app/SystemUI.apk
adb pull /system/framework/framework-res.apk
adb pull /system/framework/SemcGenericUxpRes.apk

4.4以降の場合

adb pull /system/priv-app/SystemUI.apk
adb pull /system/framework/framework-res.apk
adb pull /system/framework/SemcGenericUxpRes.apk

とすれば端末から抜き出せます。
三つのapkをotherフォルダに入れた後、Setup.batを実行します。
まずフォルダを作成するため、「3」と入力します。
実行すると「続行するには~」と表示されるので何かキーを押します。
いくつかフォルダが作られますが、一番重要なのは
place-apk-here-for-modding
フォルダです。
このフォルダの中に、デコンパイルしたいapkを入れてください。
次にコンパイル操作に必要なapkをインストールするため、「2」と入力します。
「1」と入力し、ウインドウが出たら何かキーを押して、Framework Installed~と表示されたらそのウインドウを閉じます。
同様に、「4」「5」も実行します。
ウインドウでの操作が面倒なら、otherフォルダでコマンドプロンプトを開いて、

apktool if SystemUI.apk
apktool if framework-res.apk
apktool if SemcGenericUxpRes.apk

を実行すれば同じことができます。

2. デコンパイル

Script.batを実行します。
アプリ説明やクレジットが出るので何かキーを押してメニューに移動します。
apkをデコンパイルする前に、コンパイルエラーの原因となる、圧縮設定を変えておきます。
apktoolをRC1にした版では修正済み(Script.batのset usrc=を0に変更)ですが、
Githubからダウンロードしたものでは設定しないといけません。
「23」と入力(Selecct compression level for apk’s)し、「0」と入力してください。
次に、デコンパイルするapkを選択します。
「27」と入力(Set current project)し、デコンパイルしたいapkの左に書いてある数字を入力します。
例: 1 – framework-res.apkなら「1」と入力
いよいよデコンパイルを実行します。
「9」と入力(Decompile apk)します。
デコンパイルが終わったら、フォルダを開くか聞かれるので開くなら「Y」、開かないなら「N」と入力します。
デコンパイルしたものはprojectsフォルダに保存されています。

3. コンパイル

編集が終わったらコンパイルします。
システムアプリなら「11」と入力(Compile System APK files)、
一般的なアプリなら「12」と入力(Compile Non-System APK Files)と入力します。
一般的なアプリの場合は続けて「13」と入力(Sign apk with Android Market)してどれかを選んで署名しないといけません。
この署名にはJDKが必要なので注意してください。
システムアプリの場合は、「11」と入力したあと
Aside from the signatures, would you like to copy
over any additional files that you did not modify
from the original apk in order to ensure least
# of errors
と聞かれます。
これは、エラーが起きる確率を減らすため、編集していないファイルを元のapkからコピーしてくるオプションです。
「y」と入力した場合、keepフォルダに元のapkの中身がコピーされるので、自分で編集したファイルを削除してください。
valuesフォルダを編集した場合はresources.arscを削除してください。
削除し終わったら何かキーを押します。
コンパイルが終わると自動的にメニューに戻ります。
コンパイルしたapkはシステムアプリならmodified-system-apk-files-hereフォルダ、
一般的なアプリならplace-apk-here-for-signingフォルダに保存されています。
エラーが出ていたら、「26」(Read Log)で確認できます。

コメントを残す