$*nyme

blog of a man, by a man, for a better future

Nexus5にファクトリーイメージを書き込む方法についてのささやかなTips

f:id:d_ymkw:20160626152058j:plain

Nexus5が無限リブートを起こす問題、巷では『Android5.0 / 6.0のバグだ』、『電源ボタンの不良だ』など色々な推測がなされているのだけれど、いろいろな人の検証結果を読んだり、自分でもしらみつぶしに個別に原因とおぼしきモノを検証していった感じ

  • バッテリーが弱っている

のが根源的な原因っぽい。

ちなみに、無限リブートが起きた場合、『電源ボタンを連打』するとほぼ100%起動できる。どういうわけか全くわからないのだけど、これは実際、何度も試してみてそうだったので、マジ。

  • 参考記事:Nexus5 再起動ループを直す | anopara
    • いろいろとWEB上の記事を読んだのだけど、この記事が最も正確に原因を追求していると思う。
    • 科学的根拠に基づいた仮説と試行の繰り返しで、原因を追求していて信頼できる感じ。

原因はわかった。それはさておきAndroid6.0だ

検証の過程でAndroidのバージョンを下げていったところ、どうもAndroid6.0はCPUへの負荷が高いなぁとか。

Torne Mobileなんて露骨に反応速度や、コマ落ち具合が変わるし。*1

nasne 1TBモデル (CECH-ZNR2J01)

nasne 1TBモデル (CECH-ZNR2J01)

これは個人的な推測なんだけど、Android6.0でCPUの省エネ制御が改善された結果、皮肉なことにCPUの周波数を頻繁に切り替えるために、電圧・電流の変動が以前より大きくなって、結果、電源周りに負荷がかかりやすくなってるのかもなぁと。ま、検証してないから実際のところは不明。

与太話はさておき、

Nexus5のAndroidダウングレード

なにはともあれ、Androidのダウングレードですよ。

Nexus5は普通に使っていると、Android6.0.1までバージョンアップしてしまうので、手動でダウングレードする必要があるわけです。

その方法については下記ページが詳しい。

webvox.jp

ダウングレード方法まとめ

詳しくは上の記事に譲るとして、手軽に行うためのTipsをちょっとだけメモっておく。

  1. PC側: platform-toolsをダウンロードして展開
  2. PC側: platform-toolsのフォルダにPATHを通す
  3. Nexus5側: ブートローダーをアンロックする
  4. PC側: Android5.x ファクトリーイメージをダウンロードして展開
  5. PC側: Nexus5とUSB接続して、Android5.x ファクトリーイメージを書き込む
Tips 1

ファクトリーイメージを書き込むためだけに環境変数を設定してPATHを通すのはめんどくさいので、コマンドプロンプトを立ち上げて、

set PATH=<platform-toolsの絶対パス>

としてしまえばいい。

コマンドプロンプトを閉じるとPATH設定は元に戻るので、即席で使うだけならこれでOK。

Tips 2

ファクトリーイメージを書き込む際、標準添付されたflash-all.batを使うとシグネチャーファイルがないとエラーが出る。

  1. ファクトリーイメージファイル(zip)を展開し、
  2. 出てきたファイルをflash-all.batと同階層に置いて
  3. flash-all.batの『fastboot -w update image-hammerhead-*.zip』を以下のように書き換える
:: fastboot -w update image-hammerhead-lmy48m.zip
fastboot flash recovery recovery.img
fastboot flash boot boot.img
fastboot flash cache cache.img
fastboot flash system system.img
fastboot flash userdata userdata.img

*1:torne mobileはC/C++?でゴリゴリ書かれた数少ない動画再生アプリ。わざわざネイティブで開発されているあたり、CPUの性能を限界まで引き出すようなチューニングがされている、と思われる。