Google Nexus を Lolipop (5.0) にバージョンアップする

## 経緯

あることから安い携帯端末が必要となり、ちょうどいいタイミングでリファーブリッシュ品(再生品)の Nexus 4 が [Expansys](http://www.expansys.jp/) が安く売りだされていたので購入しました。2年前の端末ですが(LTE除き)スペックはなかなか、そして、なにより 5.0、Lolipop に上げることができちゃう！というのが決め手でした。ここでは、Android 4.2.2 からのアップデートを記録しています。たぶん、他の Nexus でも似たようなものではないかと思います。

## はじめに用意するもの

[Google Developers - Factory Images for Nexus Devices](https://developers.google.com/android/nexus/images) の手順どおりに進めていきます。まず、ダウンロードすべきは、このリンクにある `Factory Image` というもので、この後のステップで `Flash`される(焼かれる) AndroidOS 本体であり、端末ごとに異なるものです。リンク先のページの下の方にリストされています。今回は `occam-lrx21t-factory-51cee750.tar` というファイル名で500MB強でした。

次に、[Android SDK](https://developer.android.com/sdk/index.html) が必要です。Eclipse ADT (Eclipse IDE with built-in ADT (Android Developer Tools))という代物です。今回ダウンロードしたバージョンは、`adt-bundle-mac-x86_64-20140702`です。

**※ 今回は購入したてでしたのでバックアップのステップは記述していません。OSの再インストールではデータがすべて消去されるため、事前にバックアップ及びリストア方法の確認をお忘れなく。**

## 手順

### 1. platform-tools の準備

 最初に `ADT` (Eclipse) を最新化する必要があるようので、`ADT` を起動します。メニューの `Window` > `Android SDK Manager` を選択します。すると、以下のようにダイアログが表示され更新対象が検知されるようなので、

![Screen Shot 2014-11-23 at 7.16.34 PM.png](https://qiita-image-store.s3.amazonaws.com/0/12228/31b3a3cf-115e-80d6-d04f-70cb6fd0b882.png)

`Install ** pakages ...` を押下し先に進めます。`ADT` は直接利用しないのでここで終了します。以下のように Eclipse 中の `sdk/platform-tools` 下が最新になっていれば良いようです。

![Screen Shot 2014-11-23 at 10.37.50 PM.png](https://qiita-image-store.s3.amazonaws.com/0/12228/75a7bb0b-a37f-5e5f-4ec1-fb07955ae954.png)

次からが、OSの更新(イメージのフラッシュ)の実際の手順になります。

### 2. 開発者モードの有効化

今度は端末を操作します。Android 4.2 からは開発者向けオプションが非表示になっています。 `端末` > `端末情報` へと進み `ビルド番号` を7回クリックします。そして、画面をひとつ戻ると、`開発者向けオプション` メニューがふええているので選択し、`USBデバッグ` を有効にします。そして、端末をPCに接続します。 `./adb devices` コマンドを実行しデバイスが表示されればOKです。

```
$ cd path/to/sdk/platform-tools
$ ./adb devices
List of devices attached
0092389v2dfd5c5a9	device
```

### 3. fastboot mode でリブート

コマンドから実行するか、端末ごとの特殊なキーで再起動します。前者の場合、

```
  $ cd path/to/sdk/platform-tools
  $ ./adb reboot bootloader
```

後者の場合は、[Booting into fastboot mode](https://source.android.com/source/building-devices.html#booting-into-fastboot-mode) から自分の端末のキーを探すみたいです。リブートに成功すると、以下のような画面になります。

![IMG_3587.jpg](https://qiita-image-store.s3.amazonaws.com/0/12228/9bbc88e6-d70f-d859-e588-e55054fc8a4d.jpeg)

### 4. flash-all を実行しフラッシュ (1)

最初にダウンロードした `Factory Image` を解凍し、flash-all スクリプトを実行します。

![Screen Shot 2014-11-23 at 11.10.34 PM.png](https://qiita-image-store.s3.amazonaws.com/0/12228/615f7ae4-4ec5-10be-04cf-ee2786773f65.png)

```
$ ./flash-all.sh
﻿﻿./flash-all.sh: line 17: fastboot: command not found
./flash-all.sh: line 18: fastboot: command not found
...
```
うぅ、fastboot コマンドがないと言われてしまいました。先ほどの `ADT` の platform-tools にパスを通す必要があるようです。

```
$ export PATH=$PATH:path/to/sdk/platform-tools
```

### 5. flash-all を実行しフラッシュ (2)

更にもう少し見てみると `unlock` がどうのこうのと。Androidの画面の最後の行に `LOCK STATE - locked` とあります。

```
$ fastboot oem unlock
```
実行すると、端末側に以下の様な画面が現れます。

![IMG_3588.jpg](https://qiita-image-store.s3.amazonaws.com/0/12228/5990f644-575d-be05-555f-207ed9e3b543.jpeg)

音量の`+`で`Yes`を選択し電源ボタンで実行します。そして、気を取り直して再度実行です。

```
$ ./flash-all.sh
sending 'bootloader' (2264 KB)...
OKAY [  0.143s]
writing 'bootloader'...
...
OKAY [  0.453s]
rebooting...

finished. total time: 79.853s
```
無事に終了するとリブートがかかり、数分間端末がロゴのまま動かなくなります(インストールしているようです)。その後、以下のように`Material Design`で起動します！！

![IMG_3589.jpg](https://qiita-image-store.s3.amazonaws.com/0/12228/55838d52-8ca6-6e79-b3f0-23b657a8d23b.jpeg)

### 6. ロックして終了

OSが再インストールされたため、`開発者向けオプション` メニューは既に表示されていません。再度表示するようにし、`USBデバッグ` を有効にします。そして、もう一度`fastboot mode`でリブートし、

```
$ adb reboot bootloader
```

今度は端末をロックします。以下のコマンドを実行し電源ボタンで起動します。

```
$ fastboot oem lock
```

そして、最後に念のため `USBデバッグ` を無効にしておきましょう。

## まとめ

一部、戻りが発生しましたが、わかってみれば簡単な手順であると言えそうです。また、Lolipop は今のところ Nexus 4 でも快適に動いています！。ご参考まで。

## 参考リンク

- [Google Developers - Factory Images for Nexus Devices](https://developers.google.com/android/nexus/images)
- [Google Developers - Android Debug Bridge](http://developer.android.com/tools/help/adb.html)
- [EXPANSYSが、Nexus 4のファクトリー・リファービッシュ品を1万3975円から販売中！](http://www.mvno-navi.com/news/expansys-nexus4-20141027.html)
- [EXPANSYSで買ったNexus 4（メーカー再生品）が届いたのでレビュー！コスパ良すぎ！](http://sim-free-fun.com/examine-mobile-terminal/nexus4-expansys-20141031.html)