Nexus 4 に Ubuntu Touch をインストールしてみた

まぁ、なんということでしょう。Nexus 4 で Ubuntu Touch が使えてしまいました。 

参考：[ADDICTIVETIPS - How To Install Ubuntu Touch On Your Android Device](https://www.addictivetips.com/ubuntu-linux-tips/install-ubuntu-touch-on-your-android-device/)

ビフォーアフター
---

1.ビフォー
OS: [Nitrogen OS Oreo 8.1.0_r7](https://forum.xda-developers.com/nexus-4/development/rom-nitrogen-os-n-substratum-10-09-2016-t3459341)
カスタムリカバリ: [TWRP for mako twrp-3.2.1-0](https://dl.twrp.me/mako/)
root化済

2.アフター
OS: Ubuntu Touch 15.04
カスタムリカバリ: Ubuntu Touch の独自のものに書き換えられる。


インストール、その前に
---
1.この作業はリスクが伴いますので、実践は自己責任でお願いします。

2.現在使っているROM、アプリ、データ等をしっかりバックアップします。Ubuntu Touch のインストーラを実行すると、少なくとも、ROM が Wipe(消去)され、独自のカスタムリカバリに書き換えられます。

インストール
---

1.パソコンでADBツールをインストールします。

```shell-session
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 17.10
Release:	17.10
Codename:	artful
$ sudo apt-get install android-tools-adb android-tools-fastboot
```
2.Nexus 4 は電源を入れ、パソコンとUSBケーブルで接続します。

3.パソコンで [ubports](https://ubports.com/r/download-ubi-linux) から UBports Installer をダウンロードし起動します。

```shell-session
$ sudo chmod +x ubports-installer-0.1.4-beta-x86_64.AppImage
$ ./ubports-installer-0.1.4-beta-x86_64.AppImage
```

デバイス名で「Nexus 4」を指定します。自動認識される場合があります。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/f49b4894-f947-7617-2c86-3f6a7165b8e5.png" width=50%>

チャンネルで「15.04/Stable」を指定します。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/fb74606c-c17f-ca62-dd39-6be7070a4215.png" width=50%>

初期化されるのでしっかりバックアップしてください、と確認画面が表示されます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/6d97e2ed-c4cb-51ca-9f35-8c729af343e8.png" width=50%>

パソコンのパスワード入力を促されます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/d7893dc9-96ee-b683-3706-15660c57f5e6.png" width=50%>

Ubuntu Touch をダウンロードしています。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/6384f624-f0fc-a88d-7f72-62794d1e2f02.png" width=50%>

Ubuntu Touch を Nexus 4 に書き込んでいます。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/8af37fef-b7c9-0acd-19b9-a5e904a022b9.png" width=50%>

再起動しインストールが終わりました。
<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/f0fd4734-1c65-0d90-7e30-e14cd339f485.png" width=50%>


画面
---

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/5dedaf12-d87e-59c8-5391-428bf6acf066.png" width=30%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/b2ce293b-e9d6-445d-3707-157ca20a7dc9.png" width=30%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/1366b19e-11e4-04f0-ce5f-524646238f2a.png" width=30%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/2cf688ba-46bf-263d-96b7-7ce7e6e30a71.png" width=30%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/d51e1a41-aa01-438e-9d4c-59b929be179b.png" width=30%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/510d592c-fad4-38e9-a1bd-39d62fad7f9a.png" width=30%>

<img src="https://qiita-image-store.s3.amazonaws.com/0/63318/7479cebb-96dd-822c-870f-cbcef9ff6734.png" width=30%>


sshdの設定
---

パソコンから Nexus 4 へ ssh接続できるようにします。

参考：[askubuntu - How can I access my Ubuntu phone over ssh?](https://askubuntu.com/questions/348714/how-can-i-access-my-ubuntu-phone-over-ssh)

1.パソコンでの設定

```shell-session
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/soma/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again: 
Your identification has been saved in /home/soma/.ssh/id_rsa.
Your public key has been saved in /home/soma/.ssh/id_rsa.pub.
The key fingerprint is:
The key's randomart image is:
```

2.Nexus 4 での設定

システム設定→About→開発者モード→開発者モード→ON

```shell-session
$ adb shell android-gadget-service enable ssh
ssh enabled
$ adb shell mkdir /home/phablet/.ssh
$ adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
[100%] /home/phablet/.ssh/authorized_keys
$ adb shell chown -R phablet.phablet /home/phablet/.ssh
$ adb shell chmod 700 /home/phablet/.ssh
$ adb shell ip addr show wlan0|grep inet
    inet 192.168.3.104/24 brd 192.168.3.255 scope global wlan0
    inet6 fe80::1268:3fff:fefc:3ede/64 scope link tentative dadfailed
```

3.ssh接続してみる

```shell-session
$ ssh phablet@192.168.3.104
The authenticity of host '192.168.3.104 (192.168.3.104)' can't be established.
RSA key fingerprint is SHA256:*******************************************.
Are you sure you want to continue connecting (yes/no)?
 yes
Warning: Permanently added '192.168.3.104' (RSA) to the list of known hosts.
Welcome to Ubuntu 15.04 (GNU/Linux 3.4.0-7-mako armv7l)

 * Documentation:  https://help.ubuntu.com/

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

phablet@ubuntu-phablet:~$
```

カスタムリカバリを TWRP に戻したい時
---

1.Nexus 4 の電源を切り、【電源ボタン】と【音量下ボタン】を同時に長押しブートモードに入る。

2.パソコンで [TWRP for mako](https://dl.twrp.me/mako/) をダウンロードし、Nexus 4 に TWRPイメージを書き込む。その後 Nexus 4 を再起動する。

```shell-session
$ fastboot flash recovery twrp-3.2.1-0-mako.img
target didn't report max-download-size
sending 'recovery' (9516 KB)...
OKAY [  0.322s]
writing 'recovery'...
OKAY [  0.506s]
finished. total time: 0.828s
```

おわりに
---
まぁ、なんということでしょう。思い入れの品が新しい Ubuntu Touch となって甦りました！
(=^・^=)