5.0.2 LollipopでXposedをブートループさせずに使う方法

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

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

XperiaのAndroid 5.0.2 Lollipopでは、Lollipop対応版のXposedフレームワークを
インストールしても二度目の再起動時にブートループしてしまう問題がありました。
根本的な原因は分かっていないのですが、ひとまずの対処法が分かりました。
[更新 4/18]
/systemのパッケージ数が330以上だとToo many open filesエラーが起きてしまうことが原因のようです。


[更新]
Xposed Alpha 4で公式に修正されています!
lee480氏によれば、対処法はsystemをdeodexすることです。
Xposedインストールの流れは以下の通りです。
1. deodex zipを作成する
2. このページでxposed-arm-20150308.zip、XposedInstaller_3.0-alpha2.apkをダウンロードする
3. XposedInstaller_3.0-alpha2.apkをインストールする
(このときモジュールをインストールして有効化しておくと後で再起動せずに済みます)
4. リカバリへ再起動し、deodex zipをインストールする
5. 一旦再起動する
6. リカバリへ再起動し、xposed-arm-20150308.zipをインストールする
7. モジュールを有効化していない場合は有効にして再起動する
Lollipop (ART)でのdeodexはJoelDroidなどで出来ます。
ただ、JoelDroidを使う場合はXperiaには対応していないため、
/system/vendor/app以下と/system/framework/SemcGenericUxpResを
/system/appに移動した後deodexして元の場所に戻してzipを作る必要があります。
Xperia Z3 D6603 (NCB)向けのdeodex zipはこちらです。
Z2 D6503向けのdeodex zipはこちらで配布されています。
また、単にdeodexしただけだとDownloadAgent、com.android.phone、NFCサービスの動作が停止することがあります。
その場合は下記のコマンドを実行してください。
上記のZ3向けzipでは自動実行しているので手動で実行しなくてもかまいません。

adb shell
su
mount -o remount,rw /system
rm -f /system/app/bootinfo/lib/arm/libMiscTaAccessor.so
cp /system/lib/libMiscTaAccessor.so /system/app/bootinfo/lib/arm/libMiscTaAccessor.so
rm -f /system/vendor/app/ims/lib/arm/libimsmedia_jni.so
cp /system/vendor/lib/libimsmedia_jni.so /system/vendor/app/ims/lib/arm/libimsmedia_jni.so
rm -f /system/app/NfcNci/lib/arm/libnfc_nci_jni.so
cp /system/lib/libnfc_nci_jni.so /system/app/NfcNci/lib/arm/libnfc_nci_jni.so

deodexしないといけない、という条件はありますがこれでXposedがちゃんと使えるようになりました。
小細工しなくても使えるよう修正して欲しいところですが、
今のところはこの解決策で我慢するしかありません。



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