Android 6.0のsystemをdeodexする方法

この記事の賞味期限は切れています。掲載内容や情報が古い可能性があります。

how to deodex

Android 6.0のsystemをdeodexする方法を紹介します。


deodexとは?

かつてAndroidアプリはDalvik VMという仮想マシン上で動作しており、dex (Dalvik Executable) という形式が利用されていました。

端末毎にdexを最適化したものをodex (Optimized Dalvik Executable) といい、ユーザーが何も書き換えしないのであればその状態でも良いのですが、書き換えたい時にはodexのままでは動作しなかったり、書き換えに手間が掛かったりします。

そこで、odexファイルをdexファイルへと変換 (deodex) して書き換えしやすくしたり、他の端末から必要なアプリを移植したりといったことをします。

Android 5.0以降ではDalvik VMはART (Android Runtime) に置き換えられていますが、dex、odexという名称はそのまま残されています。

deodex用ツール

Android 5.0以降のART環境でのdeodexに対応したツールの一つにDeodexer for Android Runtimeがあります。

2016年5月1日の時点ではv4.1が最新のため、「New version v4.1 here」のリンク先から、PCに合わせたバージョンのDeodexer (32bitならSVADeodexerForArtx32.zip、64bitならSVADeodexerForArtx64.zip) をダウンロードしてください。

deodexする方法

1. まず、zipを解凍します。
なお、解凍したフォルダにdeodexしたファイルが保存されるので、空き容量に余裕がある場所に解凍してください。

2. SVADeodexerForArt.exeを実行します。

Deodexer

3. deodexしたいファイルを用意します。
systemフォルダを作成し、そのフォルダの中に端末から取り出したapp、framework、priv-appフォルダとbuild.propを置いてください。

deodexするフォルダ

4. Xperiaの場合、frameworkフォルダにSemcGenericUxpResフォルダがありますが、Deodexerはv4.1の時点ではSemcGenericUxpResのdeodexに対応していません。
一旦appフォルダへSemcGenericUxpResフォルダを移動してください。

5. Deodexerの…をクリックし、3. のsystemフォルダを選んでください。

6. 下図のようにframework、app、priv-appにチェックを入れ、deodexしていないアプリのフォルダをdeodex結果のフォルダにコピーする場合は右端のチェックボックスにもチェックを入れてください。

Deodexer画面

7. 「Execute」をクリックしてください。

8. ログが開かれるとdeodexへの変換は完了です。

deodex結果

SVADeodexerForArt.exeと同じフォルダにdeodexされたapp、framework、priv-appフォルダが保存されます。

9. appフォルダへ移動していたSemcGenericUxpResフォルダを、元通りframeworkフォルダへ移動してください。

10. このzipをダウンロードして、zip内のsystemフォルダの中にあるapp、framework、priv-appフォルダにdeodexしたapp、framework、priv-appフォルダの中身をぞれぞれ入れてください。
※圧縮すると問題が起きることがあるようなので、7zやWinRARなど、無圧縮で入れられるソフトを使ってください。

11. zipをTWRPなどのリカバリでインストールしてください。
※app、framework、priv-appフォルダがzip内のものに置き換わるので、SuperSUなども必要に応じてインストールしてください。

以上でdeodexの作業は完了です。

はてブ Pocket Mastodon タイトルとURLをコピー
カテゴリ:

技適の無い機器の使用は自己責任です。
中国版デバイスは日本語に対応していないものが多いため、ADBコマンドでの日本語化が必要です。
root化済み・非rootそれぞれのやり方はこちらの記事を参考にしてください。