前提
環境
- Xiaomi 13 Ultra
- Bootloader Unlock済み
- root化済み(だった)
- 初期インストールOSはAndroid 13以上
- Windows PC
- fastboot、adb環境構築済み
出来事の詳細
先日Vpassアプリを入れたところ、かなり厳しい検知システムに勝てなかったため、本家MagiskをやめてMagisk HideがあるKitsune Maskに切り替えようかと思っていました。数日そのまま考えていて、「最悪iPhoneに入れればいいからまぁいいかな」と思っていたのですが、テストが終わった開放感から「root化済みなら簡単に移行できそうだし、1回Kitsune Maskを試してみるか」と思ったのが運の尽きでした。見事に手順を間違え、ブートループするXiaomi 13 Ultraが完成しました⋯
直すためにやったこと
セーフモードでの起動
無理でした。セーフモードすら起動しませんでした。
boot.img、init_boot.imgの焼き直し
とりあえず、Kitsune Maskでbootにパッチを当てたあとに壊れたことが明白で、特にMagiskモジュールとかLSPosedモジュールが原因ではないことから、boot.img
を焼き直す方針を採りました。
で、ここでまた問題が。昨日OTAアップデートしていたのですが、その時のバージョン情報を記録していませんでした。正確なバージョンが分からないので、とりあえずMifirmでXiaomi 13 UltraのEEA版の最新Zip ROMをダウンロードして、payload-dumper-goでimgファイルを取り出して、中のboot.img
を次のコマンドで焼かずに起動させてみました。ただし、これは普通はやってはいけません。ROMのバージョンごとにboot.img
などの内容は違うので、バージョンが違うものを書き込むと死ぬ可能性があります1。今回何もなかったのは偶然です。
fastboot boot boot.img # boot.imgはROMのpayload.binから抜き出したファイル
これでは起動せず、また端末がfastbootモードになってしまいました。そこで、悪化するのが怖かったものの、以下のコマンドで焼いてみることにしました。
fastboot flash boot boot.img
これでもダメでした。ただ、fastboot自体は生きていたので、次はinit_boot.img
を焼いてみることに。Android 13が標準搭載されている端末は、Magiskでboot.img
じゃなくてinit_boot.img
にパッチを当てて焼くんですよね2。なので、init_boot.img
も焼かなきゃいけないんじゃないかと思ったのです。
fastboot flash init_boot init_boot.img
これで起動するようになりました。いやなんでだよ。バージョン違うのに起動したのは運が良かったとしか言いようがありません。
セーフモードで初回は起動したので、とりあえず無くなったら困るデータを退避させました。いや、データバックアップさせずにrootイジるなって話なんですが⋯
ここで正確なバージョン情報を確認し、PCで再度バージョンが合致したROMをダウンロード、boot.img
とinit_boot.img
をpayload-dumper-goで取り出しておきます。
そして、再びfastbootモードで、バージョンが合致している正しいboot.img
とinit_boot.img
をflashしました。コマンドは同じで、ファイルが端末のバージョンと同じROMから取り出したimgファイルになっただけです。
再起動したら通常ブートになると思うので、そこでMagisk(or Kitsune Mask)インストールして、さっき解凍したinit_boot.img
にパッチを当てます。パッチを当てたファイルをPCに転送しておきます。
次に、端末をfastbootモードで起動し、PCで以下のコマンドを実行します。
fastboot flash init_boot <パッチされたinit_boot.imgファイル>
これで再root化でき、今回は運良くrootアプリたちが特に何もしなくても戻ってきました。本当に運が良かったです⋯
ただ、ホーム画面の配置などは初期化されてしまうと思うので、それはなんとかしましょう。私は以前にもやらかして焼き直しし、結果ホーム画面の再配置に数時間を費やした経験から、Swift BackupでホームランチャーとHomeLayoutを両方全データバックアップしていたのでなんとかなりました。
おわりに
毎回イジって壊しかけるのやめたい
ちなみにVpassアプリはダメでした。諦めます⋯
参考情報
- TWRP不要!Magisk導入方法、Root化の方法 – ROM焼き試験場 https://mitanyan98.hatenablog.com/entry/2021/12/29/132317
- https://mitanyan98.hatenablog.com/entry/2021/12/29/132317#:~:text=boot.img%E3%81%AF%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB(OS%E3%81%AE%E4%B8%AD%E6%A0%B8%E6%A9%9F%E8%83%BD)%E3%82%82%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%AE%E3%81%A7%E3%80%81%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E9%81%95%E3%81%84%E3%80%81%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E9%81%95%E3%81%84%E3%80%81%E6%A9%9F%E7%A8%AE%E9%81%95%E3%81%84%E7%AD%89boot.img%E3%82%92%E4%BD%BF%E3%81%84%E3%81%BE%E3%82%8F%E3%81%99%E3%81%93%E3%81%A8%E3%81%AF%E4%B8%8D%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%EF%BC%81%EF%BC%81[↩]
- https://mitanyan98.hatenablog.com/entry/2021/12/29/132317#:~:text=Android13%E3%81%8C%E5%88%9D%E6%9C%9F,%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82[↩]