Gadgets技術ネタ

サイズの大きいGSI ROMでもMagiskでrootを取る方法

Gadgets
スポンサーリンク

どんな記事?

Project Treble対応のAndroidデバイスはGSI ROMを焼くことで気軽に様々なカスタムROMを試すことができます。しかし中にはROMのサイズが大きいものもあり、その場合はproductパーティションを削除・リサイズしてsystemパーティションを拡張しなければ焼くことができないものもあります。
productパーティションを削除・リサイズすると、Magiskパッチしたboot.imgを使用することができません。この記事では大きいGSI ROMを焼く領域を確保しつつ、Magiskによるroot化も実現する方法を紹介します。

背景

通常はGSI ROM + Magiskを使いたい場合、boot.imgにパッチした上で以下のようにvbmeta.imgの署名を無効にすれば使用することができます。

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

ですがサイズの大きいGSI ROMの場合、systemパーティションのサイズが足りなくなる場合があります。こんなメッセージが出たことはありませんか?

FAILED (remote: 'Not enough space to resize partition')

その場合、多くのサイトで紹介されているとおり、下記のようにproductパーティションを削除・リサイズするという方法で、大きいサイズのGSI ROMを焼くことができます。

#systemパーティションのサイズが足りない場合
fastboot delete-logical-partition product
fastboot create-logical-partition product 0

しかしこの方法でproductパーティションを削除・リサイズするとMagiskパッチしたboot.imgを焼いてvbmeta.imgの署名を無効にしても起動することができません。

最初からroot化されているGSI ROMだったらとりあえず要rootのアプリも使用することができますが、Magiskモジュールを使いたいと思ってもMagiskを入れることができませんでした。

対策

UMIDIGI Power 3にGSI ROMを焼くにあたり、まさにこの問題にぶち当たりいろいろ調べた結果、ようやく解決方法を見つけました。さすがXDAですね……!

このスレッドに添付されているproduct_gsi.imgを、以下のようにproductパーティションに焼いてからGSI ROMを焼くと、systemパーティションが自動的に拡張され、またMagiskでパッチしたboot.imgとvbmeta.imgの署名無効化によりrootも取ることができます。

fastboot flash product product_gsi.img

systemの書き込み権限がないTWRPしかなかったり、TWRPそのものが提供されていないデバイスでも、大きいGSI ROMでMagiskを使うことができます。

UMIDIGI Power 3にFlokoROM GSI + Magiskという組み合わせで確認しました。

まとめ

これで心置きなく好きなROMでMagiskを使うことができますね!

この記事に登場した製品

\楽天スーパーセール開催中!/
楽天市場

コメント

  1. あつし より:

    >> fastboot flash product product_gsi.img
    Sending ‘product’ (328 KB) OKAY [ 0.021s]

    Writing ‘product’ FAILED (remote: ‘This partition doesn’t exist’)
    fastboot: error: Command failed

    エラーメッセージで焼けません?

    • かなで より:

      まずはfastbootを最新のものに更新してからお試しいただけますか?
      https://developer.android.com/studio/releases/platform-tools?hl=ja

      以前にproductパーティションを削除していると、そのメッセージが出るかもしれません。
      その場合は以下のコマンドでproductパーティションを作成してみてください。

      fastboot create-logical-partition product 400000000

      パーティションサイズは上記XDAのスレッドにて紹介されていたものです。

      分からないことがあればまたコメントくださいませ!

    • あつし より:

      PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> adb reboot bootloader
      PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> fastboot create-logical-partition product 400000000
      Creating ‘product’ FAILED (remote: ‘unknown command’)
      fastboot: error: Command failed
      PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> fastboot flash product product_gsi.img
      Sending ‘product’ (328 KB) OKAY [ 0.021s]
      Writing ‘product’ FAILED (remote: ‘This partition doesn’t exist’)
      fastboot: error: Command failed
      PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools>

      無理でした( ノД`)シクシク…

    • かなで より:

      情報ありがとうございます。
      動的パーティションのデバイスかと思われます。
      参考までにデバイスの機種名を教えてもらえますか?

      https://source.android.com/devices/tech/ota/dynamic_partitions/implement?hl=ja

      この場合、fastbootではなくfastbootdというモードでお試しください。
      具体的には以下の手順です。

      adb reboot bootloader
      fastboot reboot fastboot

      もしくは
      adb reboot fastboot

      でfastbootdで起動します。
      この状態で

      fastboot flash product product_gsi.img

      をお試しください。

  2. あつし より:

    UMIDIGI Power 3です。
    無理でした。

    • かなで より:

      うむむ…僕が成功したのと同じ機種だったんですね。
      ちょっと状況が分からないのでなんとも言えないのですが、一度公式のROMを全部焼き直してから再度試したら変わるかも…?🤔

      ツールも含めて下記フォーラムより入手できます。
      https://community.umidigi.com/forum.php?mod=viewthread&tid=19231

  3. あつし より:

    赤文字でfastbootdで選択画面が出てきましたがどれを選択してよいか分かりません。
    そのままfastboot flash product product_gsi.imgをエンタすると
    です。

  4. あつし より:

    両方試しましたが駄目でした。

    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> adb reboot bootloader
    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> fastboot reboot fastboot
    Rebooting into fastboot OKAY [ 0.002s]

    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> adb reboot fastboot
    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools_r33.0.2-windows\platform-tools> fastboot flash product product_gsi.img

    • かなで より:

      fastbootdで再起動しても特にデバイスを操作する必要はないです。
      赤文字でfastbootdが表示されてれば大丈夫です。
      そのまま fastboot flash product product_gsi.img で焼いてみてください。

      adb reboot bootloader
      fastboot reboot fastboot
      fastboot flash product product_gsi.img

      この一連のコマンドでOKです!

  5. あつし より:

    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools> adb reboot bootloader
    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools> fastboot reboot fastboot
    Rebooting into fastboot OKAY [ 0.002s]

    コマンドできません。
    何度も申し訳ございません。

    • かなで より:

      コマンドができないというのはどのコマンドですか?
      fastbootdに再起動はできてるんですよね?

      fastbootdの状態で fastboot flash product product_gsi.img を叩けば焼けるはずなのですが…
      できませんではなくエラーメッセージを教えてくれないと分かりません。

      できたこと、できなかったこと、試してみたことを整理して教えてください。
      今デバイスの状態はデフォルトのROMですか?
      Bootloader Unlockしただけですかね?

      デバイスが文鎮化しても責任は取れないので、よく分からなければ今は諦めるのもひとつの手だと思います。

  6. あつし より:

    デフォルトのROMにしてBootloader Unlockしただけです。
    fastbootdに再起動はできてるますが PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools> adb reboot bootloader
    PS C:\Users\lovei\OneDrive\デスクトップ\platform-tools> fastboot reboot fastboot
    Rebooting into fastboot OKAY [ 0.002s]
    waiting for any deviceになります。

  7. あつし より:

    PS C:\platform-tools> adb reboot bootloader
    * daemon not running; starting now at tcp:5037
    * daemon started successfully
    PS C:\platform-tools> fastboot reboot fastboot
    Rebooting into fastboot OKAY [ 0.002s]

    Finished. Total time: 29.053s
    PS C:\platform-tools> fastboot flash product product_gsi.img
    Resizing ‘product’ OKAY [ 0.004s]
    Sending ‘product’ (328 KB) OKAY [ 0.010s]
    Writing ‘product’ OKAY [ 0.282s]
    Finished. Total time: 0.327s
    PS C:\platform-tools>

    お世話になりました。これでOKでしょうか?

    • かなで より:

      お! ログを見た感じ無事に焼けてるみたいです!
      おめでとうございます✨
      あとはお好きなGSI ROMを焼いてもMagiskが導入できるかと思います!

タイトルとURLをコピーしました