どんな記事?
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を使うことができますね!
コメント
>> 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
をお試しください。
UMIDIGI Power 3です。
無理でした。
うむむ…僕が成功したのと同じ機種だったんですね。
ちょっと状況が分からないのでなんとも言えないのですが、一度公式のROMを全部焼き直してから再度試したら変わるかも…?🤔
ツールも含めて下記フォーラムより入手できます。
https://community.umidigi.com/forum.php?mod=viewthread&tid=19231
赤文字でfastbootdで選択画面が出てきましたがどれを選択してよいか分かりません。
そのままfastboot flash product product_gsi.imgをエンタすると
です。
両方試しましたが駄目でした。
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です!
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しただけですかね?
デバイスが文鎮化しても責任は取れないので、よく分からなければ今は諦めるのもひとつの手だと思います。
デフォルトの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になります。
なるほど…Fastbootのデバイスが見つからなくてコマンドが止まっちゃってるのかな…
WindowsでFastboot状態のデバイスは認識されていますか?
デバイスマネージャに出てきてない場合は、デバイスドライバを正しくインストールしてみてください。
このあたりが参考になるかもです。
https://www.droidwin.com/download-install-mediatek-bootloader-drivers-for-fastboot-connection/
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が導入できるかと思います!