Nexus5文鎮化&復旧の試みまとめ

2年くらいまえに夫婦でNexus5 32Gモデル(しかも同色)を買ってmio simで運用していたのですが、こないだ嫁さんのほうが死亡しました。

流れ

Qiで充電していたところ、なぜか起動中の画面になっていた。触ってみるとすごく熱い。起動が完了してから操作してみると突然リセット。数回再起動→リセットを繰り返したのちブート直後の「Google」ロゴで固まって動かなくなりました。(嫁さん曰く、発熱がひどかったのは最近の傾向とのこと)

Volume downを押しながら電源を入れてリカバリモードに入ろうとしてみる。メニューは出てくるがRecovery Modeを選ぶと再ブートし、真っ黒のまま。

復旧を試みる

もうAndroidをいじるのはすっかり忘れたので基礎から勉強しなおす。

PCからAndroid端末に対して操作を行う方法にはadbとfastbootがある。

adbはAndroid OSが起動し終わってからサービスが起動し通信可能になる。adbは「USBデバッグ」機能を有効にしないと動作しない。TCP/IP経由でも接続できた…はず。adb経由ではシェルが起動できるほか、ファイルの転送なども行える。ただ、busyboxが入っていないと大したことはできない…のかな?

fastbootはそれよりも低レベルなプロトコル。ブートローダーが立ち上がった時点でストレージのフォーマットやイメージファイルを書き込んだりすることができる。イメージファイルは単なるダンプで、adb経由でddコマンドを使って書き込むとかもできるらしい。ブートローダーはストレージ(eMMC)外に書き込まれているっぽい。PCで言うUEFIのようなもの、とよく説明されている。fastbootはUSB経由で通信を行う。

adbもfastbootもAndroid SDKなどを入れると単体の実行ファイルとして入手できる。Linuxだとandroid-toolsみたいなパッケージをインストールすれば入るみたい。

fastbootでcacheを消してみる

今回はOSがそもそも立ち上がらないのでadbがアウト。fastbootで何とかする。

まず自分が思ったのが、先ほどの頻繁なリセットは何らかの理由でCPUが高温になったために保護機能が働いてリセットされたのだろうということ。で、復旧後にまた高温になってリセット、を繰り返すうちにブート途中でキャッシュかどこかに不整合が発生してブートしなくなったのだろう。ならばとりあえずcacheを消してみよう。

Volume downを押しながら電源を入れてメニューが出てきたところでUSB接続。PCから以下のように打つ。

$ fastboot devices

認識されていればIDが出てくるはずだ。で、fastbootを使ってパーティションを消したりイメージを焼いたりするにはアンロックが必要だ。まずは下記コマンドでアンロックする。アンロックした時点でユーザーデータは削除され、保証は効かなくなる(つまりこの時点でデータ救出はあきらめた)。

$ fastboot oem unlock

その後、キャッシュを消してみる。

$ fastboot erase cache

すると、FAILED (remote: can't erase cache)のようなエラーが出てきた(
厳密な文言は覚えていない)。え~?なんだこれ。なんか怪しいなあ…。

この後電源を切りもう一度やってみようとすると、なぜかアンロックしたはずの端末がロック状態に戻っている。益々怪しい…。

結局うまくいかないのでファクトリーイメージを落としてきて焼くことにした。Nexus 5 Factory imageなどで検索すると出てくる。解凍すると中にZipファイルが現れ、それをまた解凍するとboot.img, system.imgなどの各種イメージファイルが取り出せる。これを、

$ fastboot flash boot boot.img
$ fastboot flash system system.img

などとして書き込んでいくのだが…。FAILED (remote: flash write failure)というエラーが出て書き込めなかった。

結論

内部ストレージ(eMMC)が死んでる。たぶん、電源投入直後のGoogleロゴで止まったりリカバリモードに入ろうとしたときに止まったりというのはつまり、内部ストレージをマウントしようとしたときに固まってるんじゃないかという予想。

それを裏付けるかのような情報がxdaに載っていた。

[Q] Getting FAILURE (remote: flash write failure) when trying to fix the boot loop

Sorry, but your emmc is fried. Not being able to lock/unlock is a sure sign. You'll have to rma the device.

oem unlockしてもブートして戻ってきたらまたlockされている(もしくはその逆)というのはストレージが死んでる証拠なんですと。

修理か中古か新品か

さて、保証期間内ならば修理に出すのですがとっくに過ぎています(というかアンロックした段階で保証は効かないのですけど)。有償修理も考えましたが、ディスプレイ交換で2万以上とかいう情報がネット上には多数ありますので、中の基盤を交換したら少なくとも同等以上はかかるでしょう。今時、2万あったらそれほど悪くないスペックの格安スマホが買えます。なので修理は却下。

残るは格安スマホか中古かなんですが、ネットで中古品をあさってみるとNexus5の16GB品は1万円台前半で売られているものがゴロゴロあります(2016年3月時点)。買った時は大人気機種だったのに、いやあ、時代の流れは早いですね。32GBになると1万円台後半のものが多いのですが、1万円後半だと格安スマホと選択肢が競合してきますから、ここは16GB品をチョイス。嫁さんは別に大容量ファイルを持ち歩いたりしないので十分でしょう。

早速届いて復旧させてみると、データのほとんどはGoogleアカウント上に保存されていて無事復旧できました。

キャリア保証は必要か

さて、こういうことを経験すると「キャリア契約だったら無償修理(or数千円の負担で修理)だったのに」と思ってしまいますが、計算するとちょっと難しいところですね。たとえば保障のために月500円払っていたとしても、二人で500円2契約24か月で計24000円にもなります。うちの場合は2年間で2台のうち1台が壊れたわけですが、このくらいの故障率でかつ新品復旧でなくてもよいならキャリア保障はオーバースペックです。ただ、新品になって帰ってくればその時点でリセールバリューも上がるわけで、そこいらはどっちが得か何とも言えないですね…。

まとめ

Nexus5が死亡しました。結局直らなかったんでNexus5の中古品を買いました。自分はスペック等に特に不満が無いのでもう2年くらいは出来れば使いたい。