2018年10月5日金曜日

Huawei P20 Lite の root権限取得 と Xposed導入

6年以上放置しているので誰も見てないとは思いますが、作業メモがてらに書き残しておきます。

Huawei P20 Lite を買いました。
当然、root端末として運用することが前提です。
以下の手順で作業しました。
※私的メモにつき、ここに書いてることを誰かが真似したとしても私は一切感知しませんし、質問等も受け付けません。あくまでこれは、私個人のメモです。


■root化

2018年10月現在、Huaweiに問い合わせてもbootloaderのアンロックコードは教えてもらえなくなった為、DC-Unlockerに4ユーロ払ってクレジット購入。
DC-UnlockerクライアントからUSB経由でP20 Liteの中身を読ませ、アンロックコードを取得。

取得したコードを使い、fastbootコマンドから「fastboot oem unlock (アンロックコード)」でブートローダロックを解除。
※アンロックすると端末初期化されるっぽいので、必要に応じてバックアップをとっておくこと。

続いてTWRPの導入。
P20 Lite用のTWRPはここからダウンロード。
使ったイメージファイル名は「twrp_p20_lite_0.1.img」。
fastbootコマンドから「fastboot flash recovery_ramdisk recovery.img」みたいな感じで書き込み。
※なお、この方法でTWRPを導入しても、USBケーブルつないだままでリカバリ起動したら、TWRPではなく標準EMUIのリカバリが起動するので注意。
TWRP使う時は、USB外した状態から「ボリュームボタンの上」を押しっぱなして起動すること。

リカバリ起動したら念のため全体バックアップを取得。

続いてroot取得。SuperSUって時代じゃないらしいので、Magiskを使う。
Magiskの最新版はここから取得。本作業時点では「Magisk-v17.1.zip」。
adb pushコマンドで、P20 Lite のストレージ上の適当な場所にMagisk-v17.1.zipを送り込んでおいて、TWRPのINSTALLボタンからインストール作業実施。

再起動してroot取れてれば完了。
ついでにMagisk Managerとか入れておくと幸せになれるかも。

■Xposedの導入

ここから先は何度も失敗して、bootloopに陥ってはTWRPからバックアップイメージをリストア、といった作業を繰り返したけど…最終的に成功したのはこの動画で紹介されているやりかた。

まず、Magisk用のXposedInstallerを端末ストレージにダウンロード。
作業時点で使用したファイルは「XposedInstaller_3.1.5-Magisk.apk」で、ここからダウンロードしたもの。
次いで、xposed-v90-sdk26-arm64-beta4-test1.zipを端末ストレージにダウンロード。入手元はここのスレッドのどこかにあったもの。公式にリリースされたものじゃなく、文字通りのテスト版?なのか、2018年10月5日現在、スレッドトップ等で紹介されている様子は無い。

※この3.1.5インストーラと、v90-sdk26のbeta4テスト1版との組み合わせがミソである様に思われる。他のバージョンの組み合わせもいろいろ試したが、上記組み合わせ以外だとbootloopするだけだったので…

まず普通に端末を起動して、XposedInstaller_3.1.5-Magisk.apkをインストール。
(野良アプリ扱いなのでインストールできない警告が出たら、権限付与すること)
そのまま何もせず端末再起動して、TWRPを起動。INSTALLボタンから、xposed-v90-sdk26-arm64-beta4-test1.zipをインストール。
インストール完了したら、即Reboot。キャッシュとかのワイプは要らないっぽい。

端末再起動すると、Huaweiのロゴが出たまま、しばらく応答がなくなる。
体感で5~10分ぐらい。ブリックしたかと心配になるが、bootloopにはならないので、ただひたすら待つこと。
(この方法以前に失敗した時は、Huaweiロゴ十数秒→リブートがかかる、の繰り返しだった)

じっくり待ってるとHuaweiロゴが消え、端末が起動する。
ここまで来たらまず成功。念のためXposedインストーラーを起動し、有効化されてれば作業終了。

■これでXposedフレームワークが使えるようになる?

さて、それはどうだろう?
確認できたのは、Xposed導入後でもP20 Liteがbootloopに陥らず、ちゃんと起動してフレームワークも有効表示になっている、ということだけ。
それぞれがちゃんと機能するかどうかは、ここれから確認します…

2018/10/09 追記
いくつかモジュール導入して試しましたが、動いてます。
ただ、Gravity Box等、モジュールとしては導入可能であるものの、設定項目が反映されなかったり動作が不安定になったりするものもある為、そのあたりは注意して運用する必要アリ。
何をするにもバックアップは大事。慢心してはイケナイ。