もっと詳しく

海水没した先代 Zenfone 7に続いて購入した Zenfone 8 Flip (ZS672KS)を Magisk で root 化してみました。Zenfone 7の時と異なり、本機種向けのTWRPカスタムリカバリは有りませんが、 Magisk がストックROMのboot.imgにパッチを当てることが出来るので問題なく root 取得できました。更にMagiskモジュールを使って SafetyNet 認証を通過出来るようにもしています。

ブートローダのアンロック

ASUSの製品サポートページを開き、以下の要領でブートローダをアンロックするためのアプリをダウンロードします。

図01.アンロックアプリ ダウンロード

図01.アンロックアプリ ダウンロード

AsusUnlock_1.0.0.7_210127_fulldpi.apk   4,676,686 byte

ダウンロードしたapkファイルをデバイスの内部ストレージに移し、ファイルマネージャからタップしてインストールします。この時、不明なアプリのインストール権限をファイルマネージャに付与する必要があります。

図02.アンロックアプリ インストール

図02.アンロックアプリ インストール

インストールされた「デバイスツールのロック解除」と言うアプリを立ち上げ、ブートローダをアンロックしますが、その際、再起動時にハードリセットがかかって内部ストレージ内が初期化されるので、実行前に必要なデータを必ずバックアップしておくことを忘れずに。

図03.アンロックアプリ 実行

図03.アンロックアプリ 実行

なお、ブートローダをアンロックしてしまうと、デバイス起動時に改変機器である云々のメッセージが必ず出るようになるので、root化はよく考えてから(もちろんメーカー保証外に)。

図04.アンロック後の起動メッセージ

図04.アンロック後の起動メッセージ

そう言えば、Zenfone 7をMagiskでroot化した際、Magisk Hideでもシステム改変を秘匿出来なかったPPS(繳費靈)アプリをここで試しにインストールしてみましたが、正常に使用することが出来ました。ブートローダのアンロックをトリガーとして改変検出をしているわけではなさそうです。

 

USBデバックの有効化

まず、設定の歯車アイコンより、

「設定 → システム → 端末情報 → ソフトウェア情報」

と辿り、その中の「ビルド番号」を連打して開発者向けオプションを有効にします。

図05.開発者向けオプションの有効化

図05.開発者向けオプションの有効化

続いて「システム」内に現れた「開発者向けオプション」を開き、長いページを下へスクロールすると現れる「USBデバッグの有効化」のトグルスイッチをONにします。

図06.USBデバッグの有効化

図06.USBデバッグの有効化

ストックROMのダウンロード

ここからしばらくは、Ubuntu 18.04母艦での作業です。これからインストールするMagiskアプリに、パッチを当ててもらうための

boot.img

 を取得します。ASUSサポートページからストックROMをダウンロードするのですが、現在Zenfone 8 Flipが稼働しているシステムと全く同じバージョン番号のROMをダウンロードする必要があります。そのため、デバイスにシステム更新が無いかチェックしてから進めた方が良いでしょう。

図07.ストックROMのダウンロード

図07.ストック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 に最初に表示されました。