Nexus4のAndroid v4.4 Kitkatへのバージョンアップで地獄のboot loop 2013年11月22日

Android Kit Kat Desktop

とある平日の朝一、僕のNexus4にAndroid v4.4 KitkatのOTAアップデートの通知が表示されていた。Android端末なんで今はほとんどのデータがクラウドバックアップ状態だし、小一時間もあればバージョンアップは問題ないだろうと思って出勤前にアップデートのをかましてしまいました。

PCでもモバイルでも現行の使っている環境にアップデートの差分を当ててバージョンを上げるのは、サードパーティのアプリとの兼ね合いでバージョンアップ後に不安定になる可能性が高く、そうなったら原因を特定するのも時間がかかる。それなら最初から一度まっさらな状態に戻してバージョンアップし、アプリを入れ直す方がよっぽど早い。結局こう考えてOTAアップデートではなくfactory imageのflashという方法でやることに決めた。

GoogleのサイトからNexus4のfactory Imageをダウンロードしてまっさらの状態にFlashしようと思ってやってみた。

system imageをflashしてから後、再起動。

.
..

いくら待っても起動時のsplash画面が表示されたまま立ち上がってこない。ロゴがグリグリ動いてるのでフリーズしてるわけではないが一番最初のinitializeの処理の何処かでループになっている模様。しかし、Googleのfactory imageをfastbootでflashしてるだけなのでこれで問題が出るはずないんだけどなあ。。

20分待っても30分待っても起動してこないのでしょうがなく元のバージョンに戻そうとしたら今度は元のバージョンでも同じような状態に。。。ああ、会社行かないと。。でも携帯立ち上がらないし。。ああ、こんなタイミングでアップグレードなんかやり始めた自分に後悔。。とりあえずスペアに持っているGalaxy NexusにSIM入れ替えて会社へ。自分の家を出た直後にお客さんから電話がかかってくる。ああ、スペアの電話持っててよかった。。しかし、Nexus4どうしよう。。。

というわけで午前中は客先でなんともならず、昼飯を高速で食い終え作業に取り掛かった。

結局、factory imageを10回ぐらい入れ直しただろうか。。もうダメかと感じたときにふと、bootloaderのLock/Unlockで一旦内部ストレージのデータが消えてしまうことを思い出した。データが消えるということは内部データに対して何かのオペレーションを行ってるんだろう。というか、fastbootでのromのflashで立ち上がってこなければ、これと同等、もしくは下のレイヤーでやれることってこれぐらいしかないのであります。。。

というわけで、”fastboot oem unlock”を実行してbootloaderをlockedの状態にして再度unlockedにします。そしてまたfactory imageをflashして再起動。。。長いsplash screenの後になんとかAndroidの言語選択画面が!!!

長かった。。。というわけで、Galaxy Nexusでboot時に起動ロゴでloopが起こる際は一度bootloaderのlock/unlockをお試しください。それで治るかもしれません。。