Nexus 9 に月例セキュリティアップデートのOTA通知が来たのでいつものようにインストールしたら、しばらくして再起動中に画面に No Command
というエラーが表示され起動しなくなってしまった。再起動してみるものの、途中で Your device is corrupt. It can't be trusted and may not work properly. Visit this link on another device: g.co/ABH
というメッセージが出て最終的には同じエラー。うーん OTA Patch がシステムを壊してしまうとかどうよ。
仕方がないのでググると過去のOTAでも同様の問題が発生しているらしい。個体差で起こるのか、アップデート中に何か問題が起きたのか。さておき、このままでは Brick でしかないので修復を試みる。まあよほどでない限りは外から直せるものなのでさほど慌ててはいない、が面倒なのは事実。他に同様の問題に遭遇した人の参考になるように備忘録を付けておく。
復旧手順
HBOOT からの Factory Reset を試す
Nexus 9 の場合は Volume Down を押しながら Power Key で起動することで HBOOT モードに入ることができる。ここからは Fastboot や Recovery 等が実行できるのだが、取り敢えずは Factory Reset を試してみる。
10分ほど Eracing
アイコンがクルクル回った後に再起動してみるも、やはり駄目。
当然ながら Factory Reset をすると内部ストレージ上を含めてデータは完全に消えるので、消えて困るデータが有る人は下記の Rescue OTA を先に試したほうが良いかもしれない。運が良ければデータが消えずに残る。もちろん基本は転ばぬ先のバックアップであって、私は Factory Reset しても特に困らないので先に試した。
ADB sideload からの Rescue OTA の適用
ということで仕方がなくマニュアル作業での Rescue OTA 適用を試すことに。
Nexus 9 No Longer Working After Latest Update - Google Product Forums
基本的には上記リンク先の作業そのままだが、多少手順の省略などはしている。
- 上記リンク先から adb-setup-1.4.3.exe をダウンロードして実行し、adb と device driver をインストール (必要に応じて)
- Nexus 9 の電源を長押しなどで一旦OFFにし、Volume Down + Power で HBOOT Mode で起動。なお基本的に Vol キー上下でカーソルを動かし、Power キーで実行する。
- HBOOT 画面から
RECOVERY
を選択。しばらくするとNo Command
画面が表示される。 - その画面で Power を押しながら Volume Up をタップすると、Android Recovery に遷移する。下写真参考。
- 画面上部に現在のファームウェアバージョンが
6.0.1 / MOB30M / 2862625
のような感じに表示されるのでメモ。 - メニューから
Wipe cache partition
を選択して実行。数分から10分程度かかるので待つ。 - その間に Nexus 9 Rescue OTA から当該ファームウェアのバージョンを選択してダウンロード。LTE 版と WiFi 版があるので間違えないように。
- cache partition の Wipe が終わったら、今度はメニューから
Apply Update from ADB
を選択。 - Nexus 9 を USBケーブルでPCに接続。
Android Composite ADB Interface
が認識されるはず。 - コマンドプロンプトで
adb devices
と実行して、Nexus 9 のシリアル番号が表示されることを確認。 - ダウンロードした Rescue OTA の zip ファイルをそのまま c:\Temp などを作ってそこに置く。
adb sideload c:\Temp\volantis-ota-mob30m-738daf66.zip
のように実行。ファイル名はダウンロードしたファイル名を指定すること。- うまく実行されればコマンドプロンプトとNexus 9の両方に進捗が出るはず。10 - 20 分くらいかかる。
- 終了したら
Reboot system now
を選んで起動する。
私の場合はこの再起動後も corrupted メッセージが出るものの、Power ボタンで先に進むと一応問題なく起動してきた。起動後に当然な顔をして System Upload の通知が来ていて、適用しないわけにも行かないが取り敢えず後回しに…。
なお今回は adb sideload で patch を上書きする形をとったが、よく考えたら先に Factory Reset しているので完全にイメージ上書きでも構わないのであった。手間は殆ど変わらないのでどちらでも構わない話ではあるが、Factory Image の書き込みについては公式ドキュメントを参考のこと。
Factory Images for Nexus Devices | Nexus Files for Developers | Google Developers
しかしこれ、私はADBとか使うのは慣れているので困りはしなかったけど、普通の人がこの状態になったら結構厄介な気はする。14MB の Security Update OTA くらいまともに配布してほしいものだけど、デバイスが多いとまあこういうことも起こるのだろう。