海水没した先代 Zenfone 7に続いて購入した Zenfone 8 Flip (ZS672KS)を Magisk で root 化してみました。Zenfone 7の時と異なり、本機種向けのTWRPカスタムリカバリは有りませんが、 Magisk がストックROMのboot.imgにパッチを当てることが出来るので問題なく root 取得できました。更にMagiskモジュールを使って SafetyNet 認証を通過出来るようにもしています。
ブートローダのアンロック
ASUSの製品サポートページを開き、以下の要領でブートローダをアンロックするためのアプリをダウンロードします。
AsusUnlock_1.0.0.7_210127_fulldpi.apk 4,676,686 byte
ダウンロードしたapkファイルをデバイスの内部ストレージに移し、ファイルマネージャからタップしてインストールします。この時、不明なアプリのインストール権限をファイルマネージャに付与する必要があります。
インストールされた「デバイスツールのロック解除」と言うアプリを立ち上げ、ブートローダをアンロックしますが、その際、再起動時にハードリセットがかかって内部ストレージ内が初期化されるので、実行前に必要なデータを必ずバックアップしておくことを忘れずに。
なお、ブートローダをアンロックしてしまうと、デバイス起動時に改変機器である云々のメッセージが必ず出るようになるので、root化はよく考えてから(もちろんメーカー保証外に)。
そう言えば、Zenfone 7をMagiskでroot化した際、Magisk Hideでもシステム改変を秘匿出来なかったPPS(繳費靈)のアプリをここで試しにインストールしてみましたが、正常に使用することが出来ました。ブートローダのアンロックをトリガーとして改変検出をしているわけではなさそうです。
USBデバックの有効化
まず、設定の歯車アイコンより、
「設定 → システム → 端末情報 → ソフトウェア情報」
と辿り、その中の「ビルド番号」を連打して開発者向けオプションを有効にします。
続いて「システム」内に現れた「開発者向けオプション」を開き、長いページを下へスクロールすると現れる「USBデバッグの有効化」のトグルスイッチをONにします。
ストックROMのダウンロード
ここからしばらくは、Ubuntu 18.04母艦での作業です。これからインストールするMagiskアプリに、パッチを当ててもらうための
boot.img
を取得します。ASUSサポートページからストックROMをダウンロードするのですが、現在Zenfone 8 Flipが稼働しているシステムと全く同じバージョン番号のROMをダウンロードする必要があります。そのため、デバイスにシステム更新が無いかチェックしてから進めた方が良いでしょう。
ROMからboot.imgの取り出し
てっきりダウンロードしたROMアーカイブの中に
boot.img
があるのを取り出せば良いだけと思っていましたが、見当たりません
$ ls -l U* -rw-rw-r-- 1 user user 2908213379 Sep 17 22:06 UL-I004D-ASUS-30.11.55.82-1.1.30-user.zip $ unzip -v UL-I004D-ASUS-30.11.55.82-1.1.30-user.zip Archive: UL-I004D-ASUS-30.11.55.82-1.1.30-user.zip signed by SignApk Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 513 Stored 513 0% 2009-01-01 00:00 5f72e610 META-INF/com/android/metadata 2908209504 Stored 2908209504 0% 2009-01-01 00:00 25641cf8 payload.bin 156 Stored 156 0% 2009-01-01 00:00 1f89af82 payload_properties.txt 1456 Defl:N 1050 28% 2009-01-01 00:00 737c71d2 META-INF/com/android/otacert -------- ------- --- ------- 2908211629 2908211223 0% 4 files
Payload DumperというPythonで組まれたツールを用いて
payload.bin
を分解し、その中に含まれる
boot.img
を取り出す必要があります。
Android OTA payload dumper. Contribute to vm03/payload_dumper development by creating an account on GitHub. GitHub – vm03/payload_dumper: Android OTA payload dumper – GitHub |
先ずは必要な依存モジュールのインストールから。公式GitHubでは
protobuf
しか明示されていませんが、実際には
bsdiff4
も必要でした。尚、作業中のUbuntu 18.04には、2.7系と3.6系の2つのPythonが共存していて、デフォルトは2.7系となるため、ここで3.6系を使うためにpython3やpip3として呼び出しています。
$ python --version Python 2.7.17 $ python3 --version Python 3.6.9 $ pip3 install protobuf Requirement already satisfied: protobuf in /usr/lib/python3/dist-packages (3.0.0) $ pip3 install bsdiff4 Collecting bsdiff4 Installing collected packages: bsdiff4
そして先ほどダウンロードしたROMアーカイブを展開したフォルダ内に、次の2つのPythonファイルを配置し、実行権限を付与します。
- payload_dumper.py
- update_metadata_pb2.py
$ chmod +x ./*.py $ ll -l drwxrwxr-x 3 user user 4096 Sep 17 16:13 META-INF/ -rw-rw-r-- 1 user user 2908209504 Jan 1 2009 payload.bin -rwxrwxr-x 1 user user 5146 Jul 7 20:48 payload_dumper.py* -rw-rw-r-- 1 user user 156 Jan 1 2009 payload_properties.txt -rwxrwxr-x 1 user user 29360 Jul 7 20:48 update_metadata_pb2.py*
準備が整ったら、
payload_dumper.py
を実行します。
$ python3 ./payload_dumper.py payload.bin Processing abl partition.Done Processing aop partition.Done Processing bluetooth partition.Done Processing boot partition................................Done Processing cpucp partition.Done Processing devcfg partition.Done Processing dsp partition................................Done Processing dtbo partition....Done Processing featenabler partition.Done Processing hyp partition..Done Processing keymaster partition.Done Processing modem partition................................Done Processing multiimgoem partition.Done Processing odm partition.Done Processing product partition................................Done Processing qupfw partition.Done Processing qweslicstore partition.Done Processing shrm partition.Done Processing system partition................................Done Processing system_ext partition................................Done Processing tz partition..Done Processing uefisecapp partition.Done Processing vbmeta partition.Done Processing vbmeta_system partition.Done Processing vendor partition................................Done Processing vendor_boot partition................................Done Processing xbl partition..Done Processing xbl_config partition.Done Processing xrom partition................................Done
待つこと数分で正常終了すると、「output」フォルダの中に生成物はまとめられていて、その中に
boot.img
もありました。
$ ls -l output 合計 7064272 -rw-rw-r-- 1 user user 602112 Sep 17 16:36 abl.img -rw-rw-r-- 1 user user 245760 Sep 17 16:36 aop.img -rw-rw-r-- 1 user user 1110016 Sep 17 16:36 bluetooth.img -rw-rw-r-- 1 user user 100663296 Sep 17 16:36 boot.img -rw-rw-r-- 1 user user 102400 Sep 17 16:36 cpucp.img -rw-rw-r-- 1 user user 49152 Sep 17 16:36 devcfg.img -rw-rw-r-- 1 user user 67108864 Sep 17 16:36 dsp.img -rw-rw-r-- 1 user user 8388608 Sep 17 16:36 dtbo.img -rw-rw-r-- 1 user user 90112 Sep 17 16:36 featenabler.img -rw-rw-r-- 1 user user 3678208 Sep 17 16:36 hyp.img -rw-rw-r-- 1 user user 266240 Sep 17 16:36 keymaster.img -rw-rw-r-- 1 user user 178368512 Sep 17 16:36 modem.img -rw-rw-r-- 1 user user 16384 Sep 17 16:36 multiimgoem.img -rw-rw-r-- 1 user user 1077248 Sep 17 16:36 odm.img -rw-rw-r-- 1 user user 1333604352 Sep 17 16:36 product.img -rw-rw-r-- 1 user user 57344 Sep 17 16:36 qupfw.img -rw-rw-r-- 1 user user 262144 Sep 17 16:36 qweslicstore.img -rw-rw-r-- 1 user user 49152 Sep 17 16:36 shrm.img -rw-rw-r-- 1 user user 3339251712 Sep 17 16:38 system.img -rw-rw-r-- 1 user user 240279552 Sep 17 16:38 system_ext.img -rw-rw-r-- 1 user user 3735552 Sep 17 16:38 tz.img -rw-rw-r-- 1 user user 126976 Sep 17 16:38 uefisecapp.img -rw-rw-r-- 1 user user 8192 Sep 17 16:38 vbmeta.img -rw-rw-r-- 1 user user 4096 Sep 17 16:38 vbmeta_system.img -rw-rw-r-- 1 user user 1313206272 Sep 17 16:39 vendor.img -rw-rw-r-- 1 user user 100663296 Sep 17 16:39 vendor_boot.img -rw-rw-r-- 1 user user 3678208 Sep 17 16:39 xbl.img -rw-rw-r-- 1 user user 221184 Sep 17 16:39 xbl_config.img -rw-rw-r-- 1 user user 536870912 Sep 17 16:39 xrom.img
こうして入手した
boot.img
をZenfone 8 Flipの内部ストレージへ転送すれば準備完了。次ページではいよいよMagiskをインストールします。
投稿 ASUS Zenfone 8 Flip (ZS672KS)をMagiskでroot化 は Fun Scripting 2.0 に最初に表示されました。