Magiskアプリをインストール
公式GitHubより執筆当時最新のMagisk v23をダウンロードして、端末内に転送します。
1 |
Magisk-v23.0.apk 6,874,374 byte |
ファイルマネージャアプリからダウンロードしたapkファイルをタップして、Magiskアプリをインストールします。
インストール後、再びPPSアプリを試してみると、まだroot取っていないこの時点で既に警告メッセージでアプリ起動不能になるので、Magiskアプリをトリガーにしているのは間違いないようです。それでいて、後述の「Magiskアプリ名の偽装」も効かないので厄介。
boot.imgにパッチ当て
ここからの作業はMagisk公式サイトにも説明ページが設けられていて、基本的にこの内容に沿って進めれば良いだけです。
Magiskアプリを立ち上げるとこのように、アプリだけがインストールされている状態であることが分かります。未だ導入されていないMagiskのインストールをタップすると、インストール画面に切り替わるので、ここで先ほどROMから抽出した boot.img を選択します。
選択を終え、「はじめる」をタップするとboot.imgにMagiskがインストールされます。パッチ当てが終わると、 boot.img と同じフォルダに次のような命名規則に基づいたインストール済み boot.img が生成されます。
1 |
magisk_patched_[random_strings].img |
次のような作業ログファイルも同じフォルダ内に出力されていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
- Device platform: arm64-v8a - Installing: 23.0 (23000) - Copying image to cache - Unpacking boot image Parsing boot image: [/data/user_de/0/com.topjohnwu.magisk/install/boot.img] HEADER_VER [3] KERNEL_SZ [45996544] RAMDISK_SZ [9232958] OS_VERSION [11.0.0] OS_PATCH_LEVEL [2021-07] PAGESIZE [4096] CMDLINE [] KERNEL_FMT [raw] RAMDISK_FMT [gzip] VBMETA Loading cpio: [ramdisk.cpio] - Checking ramdisk status - Stock boot image detected - Patching ramdisk Loading cpio: [ramdisk.cpio] Add entry [init] (0750) Create directory [overlay.d] (0750) Create directory [overlay.d/sbin] (0750) Add entry [overlay.d/sbin/magisk32.xz] (0644) Add entry [overlay.d/sbin/magisk64.xz] (0644) Patch with flag KEEPVERITY=[true] KEEPFORCEENCRYPT=[true] Loading cpio: [ramdisk.cpio.orig] Backup mismatch entry: [init] -> [.backup/init] Record new entry: [overlay.d] -> [.backup/.rmlist] Record new entry: [overlay.d/sbin] -> [.backup/.rmlist] Record new entry: [overlay.d/sbin/magisk32.xz] -> [.backup/.rmlist] Record new entry: [overlay.d/sbin/magisk64.xz] -> [.backup/.rmlist] Create directory [.backup] (0000) Add entry [.backup/.magisk] (0000) Dump cpio: [ramdisk.cpio] - Repacking boot image Parsing boot image: [/data/user_de/0/com.topjohnwu.magisk/install/boot.img] HEADER_VER [3] KERNEL_SZ [45996544] RAMDISK_SZ [9232958] OS_VERSION [11.0.0] OS_PATCH_LEVEL [2021-07] PAGESIZE [4096] CMDLINE [] KERNEL_FMT [raw] RAMDISK_FMT [gzip] VBMETA Repack to boot image: [new-boot.img] HEADER_VER [3] KERNEL_SZ [45996544] RAMDISK_SZ [9511779] OS_VERSION [11.0.0] OS_PATCH_LEVEL [2021-07] PAGESIZE [4096] CMDLINE [] **************************** Output file is written to /storage/emulated/0/Download/magisk_patched-23000_fjj2r.img **************************** cp: can't preserve ownership of 'busybox': Operation not permitted cp: can't preserve ownership of 'magisk32': Operation not permitted cp: can't preserve ownership of 'magisk64': Operation not permitted cp: can't preserve ownership of 'magiskboot': Operation not permitted cp: can't preserve ownership of 'magiskinit': Operation not permitted - All done! |
fastbootでboot.imgを焼く
これであとは改変済ブートイメージをZenfone 8 Flipに焼くだけなのですが、起動中にデバイス自身を改変することは出来ないので、Ubuntu母艦とUSBケーブルで繋ぎ、fastbootモードにして改変済ブートイメージを焼き込む流れになります。
先ずは両者をUSBケーブルで繋いで、Ubuntu側のターミナルでデバイスが認識されることを確認。
1 2 3 4 5 6 7 8 9 10 |
$ adb devices List of devices attached * daemon not running; starting now at tcp:5037 * daemon started successfully M4A############ unauthorized # デバイス側で要求を許可後 $ adb devices List of devices attached M4A############ device |
次に先ほどMagiskアプリがパッチを当てた改変済ブートイメージをUbuntu母艦へ転送します。
1 2 3 4 |
$ adb pull /sdcard/Download/magisk_patched-23000_fjj2r.img /sdcard/Download/magisk_patched-23000_fjj2r.img: 1 file pulled. 34.6 MB/s (100663296 bytes in 2.775s) $ ls -l magi*.img -rw-r--r-- 1 user user 100663296 Sep 20 22:26 magisk_patched-23000_fjj2r.img |
それでは、ターミナルからコマンドを送ってデバイスをfastbootへ再起動させましょう。
1 2 3 |
$ sudo fastboot devices [sudo] user のパスワード: M4A############ fastboot |
この時、Zenfone 8 Flipの画面上は次のようになっているはずです。
この状態になっているのを確認したら、fastbootコマンドを使ってA, B 2つあるブートパーティションへ改変済ブートイメージを次のようにして焼き込み、正常終了したらシステムモードへ再起動を掛けます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ sudo fastboot flash boot_a magisk_patched-23000_fjj2r.img target reported max download size of 268435456 bytes sending 'boot_a' (98304 KB)... OKAY [ 3.102s] writing 'boot_a'... OKAY [ 1.271s] finished. total time: 4.373s $ sudo fastboot flash boot_b magisk_patched-23000_fjj2r.img target reported max download size of 268435456 bytes sending 'boot_b' (98304 KB)... OKAY [ 3.104s] writing 'boot_b'... OKAY [ 0.286s] finished. total time: 3.390s $ sudo fastboot reboot rebooting... finished. total time: 0.150s |
少し余談ですがFlip機能の無い姉妹機、Zenfone 8(ZS590KS)向けにはTWRPリカバリがリリースされているのですが、既知の不具合としてUSB-OTG、バッテリステータスが機能しないことが挙げられていることもあり、実用にはまだまだなようです。
Magiskの設定
再起動後、再びMagiskアプリを開くと、Magiskがインストール済になっているのが分かります。ここでさらにインストール済のMagiskアプリの名前を偽装して、システム改変を嫌うサードパーティアプリによる検知を避けるようにしておきます。
任意の名前に変えることが出来ますが、アプリ一覧にも使われる名前なので、ユーザ自身には認識可能な程度の個性は残しておいた方が良いでしょう(アイコンも一般的なドロイドアイコンへ変更され てしまいます)。
そしてさらに、root化したことを特定のアプリ単位で秘匿できる、MagiskHideを有効化して設定します。
デバイスの改変にシビアな金融・決済や政府系アプリに対して秘匿設定を施しておきましたが、PPSアプリには相変わらず改変を検知されてしまいます。
なお、このMagiskHideの機能は、Magiskの次期メジャーアップデートでは廃されるようです。
さてこれでMagiskによるroot化は達成しましたが、次ページで最後の仕上げとして、このままでは失敗してしまうSafetyNetチェックが通るように改変してみます。