Windows限定、
euROMを除く
FastbootROMとは
例:Redmi9T Global v12.0.15のFastbootROM
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でこのフォルダを指定すれば
flashを押すだけで作業が開始する。
しかし、「バッチファイルを直接実行したらいかんのか?」という意見もあるだろう。
直接実行したらどうなる?
直接実行するとFastbootループします。
一見正常に終わったように見えてfastbootしか起動しなくなります。
原因
追記:Fastboot バージョン33以降から問題が修正されたようで直接実行しても問題なく焼くことができます。
Fastbootのバージョンが合わないから。
バージョン29.0.5(または33以降)でないとsuper.imgがうまく焼けずに失敗します。
superパーティションを使っていない古い機種だとうまくいくかもしれませんが、最近の端末はすべてsuperパーティションを採用しているので失敗します。
Xiaomi ADB/Fastboot toolsやXiaomiToolV2などは内部で使用しているfastbootバージョンが良くも悪くも新しいのものが使われているので同じように失敗します。
以下のコマンドでFastbootのバージョンを調べられます。
fastboot --version
ユーザー/システム環境変数に設定されているfastboot.exeのバージョンが表示されます。
Miflashに同梱されているFastbootはバージョン29.0.5です
miflash解凍フォルダ\source\thirdpirty\google\android\ にFastboot.exeがあります。
なんで直実行したら失敗するの
なぜBatファイル直実行だと失敗するかというと
バッチファイルを見ると、fastboot ~~というように特に指定なくコマンドを実行しています。
つまりユーザー/システム環境変数で使っているfastbootが使われるので新しいfastbootで焼いている=失敗する というわけです
MiflashではMiflashのFastboot.exeが使われます。
直し方
Fastboot v33以降から修正されたため最新でも問題なく焼くことができるようになりました
androidsdkmanager.azurewebsites.net
上記サイトから29.0.5のWindowsをダウンロードし、解凍して、環境変数を変更してください。
これでBat直実行でも内部的にはMiflashで焼いているのと変わらないので成功すると思われます。
もしくはMiflashを使って焼いてください。自分はコマンドラインでは最新のplatform-toolsを使いたいのでそうしてます。