ChromebookでAndroidアプリをデバッグする方

Chromebookをターゲットにして、Android StudioからADBデバッグやAPKインストールするための方法について説明します。動作確認したChromebookはFlip C100PA-RK3288，Chromebook OSバージョン54.02840.101で確認した内容です。

## 1. Developerモードに切り換える
Chromebookの場合、Android OSとは異なりDeveloperモードに入る必要があります。やっかいなのが、リカバリーモードの操作が必要になることです。以下の手順でDeveloperモードに入る時にChromebookのすべてのデータが工場出荷時の状態にリセットされてしまいます…

##### 電源OFF状態から「ESC」+「リフレッシュ(F4に相当するリロードマークのキー)」+「電源ボタン」を押す

長押しではなく、同時に押して画面が一瞬点灯して消えたかな？という反応した時点で離します。すると、以下の画面になるはずです。
![chrome_book_developer_mode_step1.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/1516c30f-15ed-95b6-6cd7-60868efc7b85.jpeg)

#####「Ctrlキー」 + 「dキー」⇒　「Enterキー」
次に「Ctrlキー」 + 「dキー」を押します。その後、以下の画面で「Enterキー」を押します。
![chrome_book_developer_mode_step1.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/670146b1-0578-c933-1ff8-a0fe4bff38ee.jpeg)

##### しばらく放置
以下の画面でしばらく放置しておきます。するとビープ音が鳴り、デベロッパーモードに入る準備が始まります。
![chrome_book_developer_mode_step3.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/ab8d113c-a680-77cd-0264-7e9e1be5c1f7.jpeg)

## 2. Developerモードに入る
しばらく放置します。以下のように画面が変わっていきますが、何もせずにしばらく待ちます。
![chrome_book_developer_mode_step4.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/5797c112-1376-1d33-51d0-7396e27c13d6.jpeg)
![chrome_book_developer_mode_step5.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/2f7dd115-26e0-221c-31c7-8d26f8bb2f2c.jpeg)

再起動が複数回行われた後、通常の起動画面が出てきます。これでDeveloperモードに入れました。

### ちなみに、通常モードに戻すには？
Developerモードから通常モードに戻す手順についてです。一度Developerモードに入ると、電源OFF⇒ONするために以下の画面が出てきます。この画面で「SPACE」キーでノーマルモードへ戻ります。ただし、ここでもリカバリ（初期化）が行われるため、注意が必要です。
![chrome_book_developer_mode_step3.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/ab8d113c-a680-77cd-0264-7e9e1be5c1f7.jpeg)

## 3. ADBデバッグするために(Chromebook側の設定)
Android StudioからWiFi経由でのADBデバッグするために、シェル上での設定とADBデバッグの許可が必要です。

##### VT2(virtual terminal 2)シェルでの設定
ネットワーク設定やGoogleログイン処理などが終わったと、「Ctrl」＋「Alt」＋「→(F2相当の位置)」キーを押すことでVT2シェル画面に移行できます。
![chrome_book_developer_mode_vt2_shell.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/667a665c-938d-77b3-4c3b-3782526b47c0.jpeg)

##### その他設定
localhost loginにはchronosを入力します。パスワードは無し（聞かれない）。

次のコマンドを入力します。

```shell
chronos@localhost / $ sudo /usr/libexec/debugd/helpers/dev_features_rootfs_verification
```

Chromebook を再起動します。

```shell
chronos@localhost / $ sudo reboot
```

端末が再起動した後、ログインして次のコマンドを入力します。

```shell
chronos@localhost / $ sudo /usr/libexec/debugd/helpers/dev_features_ssh
```

※ifconfigなどのコマンドも利用可能なため、ChromebookのIPアドレスも控えておくと良いです（後で利用します）。
※この操作はChromebookを再起動する度に必要です。。

##### ADBデバッグの許可
Android OSと同じように、設定画面からUSBデバッグを許可してあげる必要があります。設定画面の以下のAndroidの設定をクリックします。
![chrome_book_developer_mode_settings_menu_step1.png](https://qiita-image-store.s3.amazonaws.com/0/259963/1be997a6-c510-dc51-e639-4ef2f589d124.png)

すると、見慣れたAndroid OSの設定画面が出てきます。この後の手順はAndroidと同じで、端末情報 > ビルド番号の項目を7回クリックすることで、開発車向けオプションが表示されるようになります。この後、ADBデバッグをONにしてあげます。
![chrome_book_developer_mode_settings_menu_step2.jpg](https://qiita-image-store.s3.amazonaws.com/0/259963/d77dac08-8cec-29eb-360d-9ed4c0770b0b.jpeg)

## 4. ADBデバッグするために(Android Studio側の設定)
### Android StudioのADB接続
開発環境のPC（Android Studio）側から、以下のコマンドを実行します。192.168.3.7の部分はChromebookのIPアドレスになりますので、適切な値に変えて下さい。

```
$adb kill-server
$adb connect 192.168.3.7:22
connected to 192.168.3.7:22
$adb devices
List of devices attached
192.168.3.7:22 unauthorized
F6AZFG15P118 device
```

ここまでくると、Android StudioからChromebookがデバイス認識されるようになります。
![chrome_book_developer_mode_adb.png](https://qiita-image-store.s3.amazonaws.com/0/259963/3af41ada-2f26-1d8d-b868-56fcbb16dce4.png)

##### Android Studioからデバッグ
あとはいつもの手順でChromebook側のデバッグやAPKインストールが出来ます。

## 参考文献
[Chromebookで動作するAndroidアプリにadbを接続する方法](https://qiita.com/jiro-aqua/items/81c2a35225387c436f2f)
[Chromebook デベロッパー（開発者）モードにする方法](http://take-root.net/gadgets/chromebook-developer-mode/)
[Chromebook デベロッパーモードの入り方と出方。](http://usagisaigon.blogspot.jp/2013/08/chromebook_11.html)
[Chromebook 向けアプリの最適化](https://developer.android.com/topic/arc/)