ROM焼き試験場

旧:ミ田ろぐ このブログには広告が表示されます

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

当ブログは広告を利用しています。

f:id:wwwwwplane:20210505024215j:plainWindows限定、

euROMを除く

 

 

 

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 バージョン33以降から問題が修正されたようで直接実行しても問題なく焼くことができます。

 

Fastbootのバージョンが合わないから。

バージョン29.0.5(または33以降)でないと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が使われます。

直し方

mitanyan98.hatenablog.com

Fastboot v33以降から修正されたため最新でも問題なく焼くことができるようになりました

 

androidsdkmanager.azurewebsites.net

f:id:wwwwwplane:20211009052628p:plain

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

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

 

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