ChromebookにapkファイルからAndroidアプリをインストールする（デベロッパーモード不要）

# はじめに
ChromebookにはAndroidアプリをインストールできますが、基本的にはPlayストアからのみインストールできます。
adbを使えばapkファイルからインストールできますが、そのためにはChromebookをデベロッパーモードに切り替える必要がありました。
今回デベロッパーモードに切り替えずにCrostini（Linux開発環境）を使ってapkファイルから野良アプリの**LINE Lite**をインストールできることを確認したため、記事にします。
（ver.84にて確認）

※Android 11アップデート済の機種ではワイヤレスデバッグを使用することでLinux開発環境なしでapkをインストールできることを確認したため、下の方に手順を追記しました（22/08/17）。



# Crostini（Linux開発環境）のインストール
まず初めにCrostini（Linux開発環境）をインストールします。
ChromeOSの設定画面からオンにするだけでインストールできます。
![Screenshot 2020-08-25 at 20.17.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/eb75a8db-cc47-8ba4-8301-323b7a15b69c.png)

「オンにする」を押下しウィザードを進み、インストールが完了すると以下のようなターミナルが起動します。
![Screenshot 2020-08-25 at 20.19.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/ff0def53-9325-9060-c784-c6607a13a1fa.png)



# adbコマンドのインストール
apkファイルからアプリをインストールするために使用するadbコマンドをインストールします。
まずはパッケージを更新します。

``` sh
sudo apt update && sudo apt upgrade
```

![Screenshot 2020-08-25 at 20.19.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/980f12aa-c853-2ffc-9f70-43e8b2c8463a.png)
adbコマンドをインストールします。
目的はapkファイルのインストールだけなのでaptから入れます。

``` sh
sudo apt install adb
```
![Screenshot 2020-08-25 at 20.21.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/2421e8fe-11bd-e0db-2d16-25fc0963a042.png)
adbコマンドをインストールできました。



# ADBデバッグを有効化
Chromebookの中のAndroidコンテナにADBで接続するための設定変更を行います。
設定画面の「Linux（ベータ版）」から「Androidアプリの開発」を選択し、「ADBデバッグを有効にする」を有効化します。
※一度有効化すると無効化する際に初期化が必要になります。ご注意ください。
![Screenshot 2020-08-25 at 20.22.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/ba05b571-2d20-81d4-8bb9-c05198ca71e0.png)
![Screenshot 2020-08-25 at 20.22.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/21c624e4-c8f6-10d2-5efd-2ae145ee6c1e.png)
有効化すると再起動されます。
![Screenshot 2020-08-25 at 20.22.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/9019af90-5a50-f739-7d26-26f231b1f075.png)
再起動後に以下の確認ダイアログが表示されるので、「確認」を押下します。
![IMG_20200825_202324~01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/8eabb904-b69b-9116-7e05-63031da746d2.jpeg)
ログイン後に以下のメッセージが表示されるため、許可するにチェックを入れてOKボタンを押下します。
![Screenshot 2020-08-25 at 20.24.37 - Display 1_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/3854d376-c5a4-9122-6a39-636cf79eaa35.png)



# AndroidコンテナにADB接続
apkファイルのインストールを行うためにAndroidコンテナにADB接続します。
ターミナルを起動し、以下のコマンドを実行します。

``` sh
adb connect 100.115.92.2:5555
```
![Screenshot 2020-08-25 at 20.25.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/5d3db1db-9597-103c-5d50-191a8070dd51.png)
`adb devices`で現在ADB接続されている端末が確認できます。
`100.115.92.2:5555 device`がAndroidコンテナです。



# apkファイルからAndroidアプリをインストール
準備が整ったのでapkファイルをインストールします。
ADBを使ったインストールのコマンドは以下の通りです。
今回はLinux側のホームディレクトリ直下にapkファイルを置いてます。

``` sh
adb -s 100.115.92.2:5555 install [apkファイルのパス]
```
![Screenshot 2020-08-25 at 20.31.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/ba4f41b2-ee73-d787-c93c-bc91e4f0b6f0.png)
`Success`と表示されればインストール完了です。
今回は**LINE Lite**をインストールしてみました。
（arm64-v8a版はインストール失敗したのでarmeabi-v7a版をインストールしました。）
![Screenshot 2020-08-25 at 20.31.59 - Display 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/f1000e50-8d18-3fa4-a0fa-596ebf75245f.png)



# 注意点
ログイン画面に下記の文言が表示されるようになります。
![IMG_20210711_183556~01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/f0f52981-6d10-146c-9313-0556f8648dcc.jpeg)



# 追記1（2021/10/01）
Android向けに提供されているパッケージインストーラのapkを`adb install`すると、
ファイルアプリや外部のアプリストアからアプリを直接インストール/アップデートできました。

https://qiita.com/htnk/items/4619d507f1d59e4689a4



# 追記2（2022/08/17）
:::note alert
追記（2023/03/07）
ChromeOS M110にてワイヤレスデバッグを有効化することができなくなったため、
以下の方法は利用できません。
:::
Android 11にアップデートされたChromebookは**ワイヤレスデバッグ**に対応しています。
**ワイヤレスデバッグ**を使用すれば他のPCを使ってChromebookにadb接続できるため、
Linux開発環境が使用できないChromebookでもapkをインストールできそうです。

## ワイヤレスデバッグを有効化
Chromebook側でワイヤレスデバッグ機能を有効化します。
1. ChromeOS設定 → Google Play ストア → Android設定を管理 → デバイス情報 → ビルド番号を連打し開発者向けオプションを有効化
2. ChromeOS設定 → Google Play ストア → Android設定を管理 → システム → 開発者向けオプション → ワイヤレスデバッグ → ON
   （ChromeOSのデベロッパーモードをオンにすると書いてあるが、実際にデベロッパーモードに切り替わる訳ではない＝Powerwashされない）
![220817_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/12194556-a039-4971-bed0-9c1cc6e55b03.png)
![220817_002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/2d0d9d35-b115-b6c8-4671-6897aabedf08.png)
3. 確認ダイアログの許可をクリック
![220817_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/a320e85f-7517-510d-0bde-4c093a5b9502.png)

## 他PCとペアリング＆接続
ペア設定コードを用いて他PCとペアリング（adb pair）した後に、接続（adb connect）を行います。
IPアドレスやポート番号、ペアコードは変化するので手元の端末に表示される値に読み替えて下さい。
1. 「ペア設定コードによるデバイスのペア設定」をクリックし、アドレスとペアコードを確認する
![220817_007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/e1a728ed-4e89-b153-28c4-034641ee450f.png)
2. 他のPCで下記コマンドを実行してペアリングを行う（ポート番号①を使用）
   ``` bat
   adb pair 192.168.10.3:35829
   ```
3. 実行後に表示される「Enter paring code:」にペアコード`043740`を入力しEnter
4. `Successfully paired to 192.168.10.3:35829 [guid= 〜 ]`と表示される
5. 下記コマンドを実行してadb接続を行う（ポート番号②を使用）
   ``` bat
   adb connect 192.168.10.3:45011
   ```

## apkをインストール
`adb install`を実行する
``` bat
adb -s 192.168.10.3:45001 install [apkファイル名]
```
`Success`と表示されればインストール成功。
![220817_009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169404/e088cd98-3f4c-0c7d-8666-1b9aa913a57b.png)
（ver.104にて確認）



以上