ミ田ろぐ

カスタムROM中心自己満ブログ すべて自己責任です

Xiaomi機種はFastbootROMをバッチファイルから焼くとブートループする の直し方

Windows限定

f:id:wwwwwplane:20210505024215j:plain

 

 

FastbootROMとは

例:Redmi9T Global v12.0.15のFastbootROM

f:id:wwwwwplane:20211009045936p:plain

Xiaomi機種の初期ROMをダウンロードし、解凍すると以下のファイル群があります。

 

images:イメージファイルが格納されているフォルダ

flash_all.bat:すべてのイメージファイルをFlashする。

flash_all_except_data_storage.bat:userdataを残したままFlashする。

flash_all_lock.bat:すべてをFlashした上で、さらにブートローダーをリロックする。

flash_all_lockはリロック防止のため削除しています。違いはflash_allの末尾にfastboot oem lockがあるかないかです。)

 

通常はMiflashでこのフォルダを指定すれば

f:id:wwwwwplane:20211009050720p:plain

flashを押すだけで作業が開始する。

 

しかし、「バッチファイルを直接実行したらいかんのか?」という意見もあるだろう。

直接実行したらどうなる?

直接実行するとFastbootループします。

 

一見正常に終わったように見えてfastbootしか起動しなくなります。

原因

Fastbootのバージョンが新しいから。

バージョン29.0.5でないとsuper.imgがうまく焼けずに失敗します。

superパーティションを使っていない古い機種だとうまくいくかもしれませんが、最近の端末はすべてsuperパーティションを採用しているので失敗します。

 

Xiaomi ADB/Fastboot toolsやXiaomiToolV2などは内部で使用しているfastbootバージョンが良くも悪くも最新のものが使われているので同じように失敗します。

 

以下のコマンドでFastbootのバージョンを調べられます。

 fastboot --version

f:id:wwwwwplane:20211009051209p:plain

ユーザー/システム環境変数に設定されているfastboot.exeのバージョンが表示されます。

 

Miflashに同梱されているFastbootはバージョン29.0.5です

f:id:wwwwwplane:20211009051710p:plain

miflash解凍フォルダ\source\thirdpirty\google\android\ にFastboot.exeがあります。

なんで直実行したら失敗するの

なぜBatファイル直実行だと失敗するかというと

f:id:wwwwwplane:20211009052028p:plain

バッチファイルを見ると、fastboot ~~というように特に指定なくコマンドを実行しています。

つまりユーザー/システム環境変数で使っているfastbootが使われるので新しいfastbootで焼いている=失敗する というわけです

 

MiflashではMiflashのFastboot.exeが使われます。

直し方

androidsdkmanager.azurewebsites.net

f:id:wwwwwplane:20211009052628p:plain

上記サイトから29.0.5のWindowsをダウンロードし、解凍して、環境変数を変更してください。

これでBat直実行でも内部的にはMiflashで焼いているのと変わらないので成功すると思われます。

 

もしくはMiflashを使って焼いてください。自分はコマンドラインでは最新のplatform-toolsを使いたいのでそうしてます。