Mode1 RETRO II (MD06P)をRoot化する。
Mode1 RETRO II (MD06P)
二つ折りの魅力に惹かれて購入。


本題ですが、Mode1 RETRO IIはNFCに対応しています。
{NFC Tag Emulatorというのを使えば、事前にカードをスキャンして登録しておけば、スマホがカードのように振舞ってくれるらしい。(ICOCAやSuicaなど、種類によっては非対応)
NFC Tag Emulatorを使用するには、ロックされている端末のどこかの領域にIDを書き込む必要があるようで、それには当然Rootが必要なようなので、Root化します。

BootLoaderをアンロックする
設定の開発者向けオプションからOEMロック解除とUSBデバッグをオンにしておきます。
adb reboot bootloader
fastboot devices
fastboot flashing unlock
英語で確認が出てきますが、指示に従ってください。
確か、*(アスタ)を押せと書いてます。
Unlockが完了したら、再起動してください。
fastboot reboot
boot.imgを取り出し&Patch&Flash
基本的に、Root化するにはboot.imgを取ってきて、magiskでpatchし、bootパーティションにflashすることになります。
ROM配布されている機種なら、ダウンロードして展開すればboot.imgが出てきますが、
MD06PはROM配布が行われていないので、デバイスから取得する必要があります。
OSを起動した状態で、boot.imgを読み出すことはできないので、一時的に別のImage(GSI)で起動して、読み出す手法をとります。
別Image(GSI)からの起動には、DSU SideLoaderを使用します。(KernelSUは非対応でした)
最新リリースからapp-release.apkをインストールしておきましょう。
MD06Pと互換性のあるImage(GSI)を探す必要がありますが、見つけました。
PCでダウンロードして、gz展開して、adb pushでデバイスに転送します。
DSU Sideloaderを起動し、さっきのimgを選択します。
(初回起動時には作業ディレクトリを選択させられます)
インストールを押し、しばらく待機。
指示に従ってください。
GSIで起動したら、開発者向けオプションから、RootでのUSBデバッグを許可をオンにする。
adb root
adb shell
mkdir /sdcard/backup_img/
cd /dev/block/by-name/
dd if=boot_a of=/sdcard/backup_img/boot_a.img
dd if=boot_b of=/sdcard/backup_img/boot_b.img
できたら、adb pullでPCに転送しておいてください。
再起動して、GSIから抜けてください。
元のOSで起動したら、adb pushでデバイスにさっきpullしたboot_a.imgとboot_b.imgを転送
magiskでpatch
PCに転送
できたら、
adb reboot bootloader
でfastbootに入り、
fastboot getvar current-slot // どっちのスロットが使われているか確認するなら
fastboot flash boot_a ./boot_a_patched.img
fastboot flash boot_b ./boot_b_patched.img
再起動。
fastboot reboot
magiskを起動して、Rootアクセスがあるか確認。
余談ですが、リカバリーモードに入るキーコンビネーションがわかりませんでした。
以上。
参考
Discussion