OnePlusのStockROMがfastbootでflashできなかった件 2014年11月12日

Nexus S Fastboot screen

fastbootは最新版にしておいたほうがいい。結論はこれです。近年になってROMイメージのサイズが当初の想定以上に大きくなってきてるんでしょうなあ。どうもfastbootは扱えるファイルサイズがバージョンによって256MBまでとか、512MBまでとかの制限があるみたい。

昨日OnePlusで標準でインストールされていたColorOSを抜いてCyanogenmod11Sを入れたいなあと思っていたので買ったらすぐにCyanogenmod11S(以下CM11S)を入れるべく試してみたんだがどうにもうまくいかない。

CM11SはNexusのCMのインストール方法と違い、OnePlusのサイトで公式のStockROMイメージをDLしたら端末を再起動し

“Volume 上” + “電源ボタン”

でfastbootモードで起動し、それをPC(僕の場合Mac)にUSBで接続し、fastbootコマンドでそれぞれのシステムイメージをflashしていく。

その際に fastboot flash system system.img を実行すると

sending ‘system’ (801285 KB)…
FAILED (remote: data too large)
finished. total time: 1.012s

と何回やっても「remote: データが大きすぎます」と言われて失敗する。調べていくとどうもremoteと表示されている端末やデータの問題ではなく、fastbootコマンドが256MBや512MBを超えるデータの転送をうまくハンドリングできないのが原因らしいことがわかった。

今までの端末はシステムのイメージファイルのサイズが少なかったからこういうのにはひっかからなかったのかもしれないが、最近の端末はシステムイメージがでかいのと、このOnePlusのCM11Sは他のサードパーティのカスタムROMと違い、オフィシャルにGmailなどのプロプライエタリなソフトウェアも権利関係を正式に処理しているおかげでsystem.imgの中に同梱なのだ。だからsystem.imgが大きくなる。多分。

んでいろいろなところからfastbootのファイルをDLして試してみたけど全部ダメで、最終的に公式、正式パスでやるしかないのかと思い、

https://developer.android.com/sdk/index.html

ここからAndroidのSDKのzipファイルをDL。当然Mac用の。そしてそれを解凍し、

adt-bundle-mac-x86_64-20140702/sdk/platform-tools/

からfastbootの実行ファイルを抜き、これを使用してflashしたところなんとか完了。結構迷いました。。。

日本語で

sending ‘system’ (801285 KB)…
FAILED (remote: data too large)
finished. total time: 1.012s

これに対する対処法を書いてるページが少なかったので念のため解説を書いておく次第です。