Nexus5にAndroid9をいれました

# まえがき
Android6 以降アップデートが来ない見放された名機 Nexus5 に、最新の Android9 を入れました。2014後半発売で、いまとなっては寂しいスペック(MSM8974 2.26GHzQuadCore/2GM RAM)ですが、あほみたいな安値で投げ売られてるし、ちょっと遊ぶ用途には最高でした。

# 成果物
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130874/7b157f27-eab1-019c-1872-1e3591a8db20.png)


# 必要資材
- Android9 イメージ
    - https://www.firstever.eu/first-ever-android-9-0-for-nexus-5/#
    - FirstEver-Android-9.0-hammerhead-20181214.rar
- カスタムリカバリTWRP
    - https://dl.twrp.me/hammerhead/
    - twrp-3.3.1-0-hammerheadcaf.img
- MacOS Mojave 10.14.4 (18E226)（Winでもいけるけど）

# 作業手順
必要なSDK、解凍ソフトをインストール（AndroidStudio入れなくてもいけます）

``` shell:console
$ brew cask install android-sdk
$ brew cask install android-platform-tools # このバージョンでは相性問題が出ましたが、後述
export ANDROID_HOME=“/usr/local/share/android-sdk”
export PATH=“${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools”
$ brew install unrar
```

ダウンロードしたものを確認

``` shell:console
$ ls -la
-rw-r--r--@  1 saitotak  staff   1557161890  5 25 16:26 FirstEver-Android-9.0-hammerhead-20181214.rar
-rw-r--r--@  1 saitotak  staff     13608960  5 25 16:26 twrp-3.3.1-0-hammerheadcaf.img
```

Android側はUSBデバッグを有効にしてUSB接続し、ブートローダー起動

``` shell:console
$ adb devices
$ adb reboot bootloader
```

カスタムリカバリを書き込んで再起動

``` shell:console
$ fastboot flash recovery twrp-3.3.1-0-hammerheadcaf.img
target reported max download size of 1073741824 bytes
sending 'recovery' (13290 KB)...
OKAY [  0.616s]
writing 'recovery'...
OKAY [  1.048s]
finished. total time: 1.665s

$ fastboot reboot
rebooting...

finished. total time: 0.100s
```

リカバリモードでTWRPを起動して、一応バックアップ取得、
取得したパスが出てくるので、デスクトップにイメージをコピーしておく

```shell:console
$ adb pull /data/media/0/TWRP/BACKUPS/014dbbbc037b6f59 /Users/saitotak
/Desktop
```
※ `014dbbbc037b6f59` という数字がなんなのかよくわからず、環境によって変わるかも

イメージ解凍してAndroidへpush

```shell:console
$ unrar x FirstEver-Android-9.0-hammerhead-20181214.rar ./FirstEver-Android-9.0-hammerhead-20181214
$ adb push /Users/saitotak/Downloads/FirstEver-Android-9.0-hammerhead-20181214 /data/media/0/TWRP/BACKUPS/014dbbbc037b6f59
```

で、再起動したら無事起動しました。

## その他参考情報
MacOS と fastboot(android-platform-tools) の相性で fastboot 実行時に下記のエラーが出る場合、`android-platform-tools 26.0.1` にダウングレードすると解消しました

```
ERROR: Couldn't create a device interface iterator: (e00002bd)
ERROR: Couldn't create a device interface iterator: (e00002bd)
```

[mac os x - "Fastboot devices" command doesn't work after macos high sierra 10.14.4 upgrade - Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/209725/fastboot-devices-command-doesnt-work-after-macos-high-sierra-10-14-4-upgrade)

adb shell でシェルログインできるべんり

```shell:console
# adb devices 
List of devices attached
014dbbbc037b6f59        recovery

# adb shell
~# pwd
/
```

# 参考にしたリンク
[Nexus5 Android9 のセットアップ - Radi開別館](https://sites.google.com/site/radikaiwarehouse/setup_nexus5_pie)
[First Ever Android 9.0 for Nexus 5 | First Ever](https://www.firstever.eu/first-ever-android-9-0-for-nexus-5/)
[adbコマンドを使ってファイルを端末に転送する - Qiita](https://qiita.com/mfks17/items/b3b4f353d4398ecc11fd)
[[Mac]sbtの特定のバージョンをbrew installでインストールする方法 - Qiita](https://qiita.com/tofu511/items/cdfddd45508f3636c56e)
[Nexus 5｜過去の製品｜製品｜Y!mobile - 格安SIM・スマホはワイモバイルで](https://www.ymobile.jp/lineup/nexus5/)