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

この記事の賞味期限は切れています。
投稿から1年以上経過しているため、情報が古い可能性があります。

当サイトで紹介するMODやアプリなどの内、システムファイルの改変やシステムに深く関わるものはroot化やリカバリが必須となります(root化の必要なしと明記している場合は除く)。導入は自己責任で行ってください。また、技適の無い機器の使用は自己責任です。

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)で確認できます。



コメントフォーム右上の「ログイン」メニューで各種SNSアカウントでログインできます。
匿名でコメントしたい場合は、名前とメールアドレスを入力した後「アカウントを作成せず投稿する」にチェックを入れてください。
Disqusに登録すると、返信通知を受け取れます。