[メモ] ASUS Tinker Board : ラズパイ公式LCDでAndroid OSを使ってみる

TinkerBoardでは、公式から、[Androidイメージ](http://dlcdnet.asus.com/pub/ASUS/mb/Linux/Tinker_Board_2GB/20170721tinkerboard-androidmarshmallow-userdebug-v131105.zip)(249.75MB)が配布されている。
2017/8/18のリリースのTinkerOS_Android V13.11.0.5で、ラズパイタッチスクリーンに対応した(> 11. ts: Add the ft5406 touch driver for tinker board.)　ようなので、試してみる。
ダウンロードページ: https://www.asus.com/uk/Single-Board-Computer/Tinker-Board/HelpDesk_Download/
P

- 初回起動時の画面<br>![screen1.png](https://qiita-image-store.s3.amazonaws.com/0/75594/a9376e09-ae55-2433-9bb5-67d2176c8da4.png)

- Playストア アプリ(下段右から3番目)を導入してみた<br>![screen24.png](https://qiita-image-store.s3.amazonaws.com/0/75594/09e1d0c1-ead1-f1ce-efa5-b83701bd491a.png)

- Minecraft PEも快適 (800x480の解像度だし...)<br>![screen40.png](https://qiita-image-store.s3.amazonaws.com/0/75594/a092e643-bfa8-ad82-66e2-514d3abc974c.png)


## 概要
- ラズパイ公式LCDが使えるとのことで、TinkerBoardで、Androidを使用
- opengapps から、PlayStore を入れる。(ラズパイ３で、adbツールを使用)<br>[tinkerboard forumのOpen GApps installation how-to](https://tinkerboarding.co.uk/forum/thread-553.html)にかかれている方法。
- ラズパイタッチスクリーンって、マルチタッチ対応してたのか！？(MinecraftPEで、左手で方向キーを押しながら、右手での操作に反応する)
- 画面サイズ小さいし(800x480)、速いmicroSDを使ったので、快適。
- (起動時の Rockchip kernel ってのかっちょよくない...)

- 非対応
    - GPSなし
    - 傾きセンサーなし
    - カメラなし
    - 音声入力??

- 未対応??
    - 音声出力？(イヤホンジャックの)  ... 今回は、Bluetoothスピーカー使用

\# Android系は詳しくないので...


## 環境
- **ASUS Tinker Board**: 
    - OSイメージ : `20170721tinkerboard-androidmarshmallow-userdebug-v131105.zip`
    - ディスプレイ: [RASPBERRY PI TOUCH DISPLAY] (https://www.raspberrypi.org/products/raspberry-pi-touch-display/)<br>7インチ(800x480)のタッチスクリーンモニター。DSI接続。
    - サウンド: Bluetoothスピーカ使用 (イヤホンジャックから、音が出ない???)
    - ネットワーク: 有線・無線どっちでもOK。
    - microSD: SanDisk Extreme 16GB UHS-I/U3 Micro SDHC<br>速いのを使うと<font color='green'>**快適**</font>。<br>![SanDisk-16GB_Extreme_SDHC-I-3.png](https://qiita-image-store.s3.amazonaws.com/0/75594/ed69e691-a921-0f51-cea7-bde51f043b1f.png)<br>　


- **Raspberry Pi 3** : PlayStore Appを入れるのに、adbツールで使用する。
    - OS: `2017-08-16-raspbian-stretch-lite.zip`

- microSDへイメージ焼き込みは、[Etcher](https://etcher.io/) を使用。


## 手順
1. TinkerBoard側
    1. イメージを焼く。Etcher使用時、↓の警告が出るが、\[Continue\]を押して、続ける。<br>![11.png](https://qiita-image-store.s3.amazonaws.com/0/75594/b6e96479-2041-c617-6a47-df5816f500fb.png)
    2. TinkerBoard本体に、
        - microSDをにいれ、
        - ラズパイタッチスクリーンとリボンケーブルで接続して、
        - 電源オン。(電源供給のUSBを挿す。液晶への電源供給も忘れずに.)
    3. あとは、起動すれば、Android端末として使えます。 


2. Raspberry Piを使用して、Playストアアプリの導入

	1. Raspbian-stertch-liteを使用 (Etcherで焼いて、起動)
	2. ログインして、ツールをインストール

		```bash:全コピペではできないよ
		# ツールのインストール
		sudo apt-get install -y android-tools-adb android-tools-fastboot git rsync lzip 
		```
	3. adbを使用する

		```bash:全コピペではできないよ
		# openapps からファイルを取得. ver 6.0のpicoでいいらしい.
		cd ~
		wget https://github.com/opengapps/arm/releases/download/20170824/open_gapps-arm-6.0-pico-20170824.zip
		mkdir -p ~/gapps/{pkg,tmp,sys}
		unzip ./open_gapps-arm-6.0-pico-20170824.zip  -dgapps/pkg
		cd ~/gapps
		# Extract tar.lz
		for x in `find . -name "*.tar.[g|l|x]z" -o -name "*.tar" `; do tar xvf $x -C ~/gapps/tmp ; done
		# アップロードするファイルの準備
		# 以下 doneまでこぴぺ。
		cd ~
		for dir in gapps/tmp/*/ ;
			do
				pkg=${dir%*/}
				dpi=$(ls -1 $pkg | head -1)
				echo "Preparing $pkg/$dpi"
				rsync -aq $pkg/$dpi/ gapps/sys/
			done
		# adbにて接続。TinkerBoardのIPアドレスを入れる。
		adb connect [ip of tinkerboard]
		# ルートに変更。かえってこなそうだったら、Ctrl-C 。
		adb root
		# 再接続
		adb connect [ip of tinkerboard]
		adb remount
		# ファイルをアップロードする... 待つ。
		adb push gapps/sys/. /system/.
		# シェルを開いて、
		adb shell
		# 以下のコマンドでAndroid内のファイル削除?したら、Ctrl-Dを押して抜ける
		rm -rf /system/priv-app/PackageInstaller
		# 再起動
		adb reboot
		```
	4. 再起動後

		```bash:全コピペではできないよ
		### 再起動後
		# adbにて接続
		adb connect [ip of tinkerboard]
		# rootに変更。かえってこなそうだったら、Ctrl-C 。
		adb root
		# 再接続
		adb connect [ip of tinkerboard]
		# シェルを開いて、
		adb shell
		# 以下実行して、CTRL-D
		pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
		pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
		pm grant com.google.android.setupwizard android.permission.READ_PHONE_STATE

		# 再起動
		adb reboot
		```





## その他
- 電源オフは、Powerアプリをタップ。<br>![screen68.png](https://qiita-image-store.s3.amazonaws.com/0/75594/6ca77834-c120-88e8-afe7-98941995ba9a.png)

- gappsを導入後と、時計が表示される<br>![screen21.png](https://qiita-image-store.s3.amazonaws.com/0/75594/8c281fc7-3bb7-ea52-ec57-9e4764ad6b9f.png)

- Chrome,YoutubeアプリはOK.<br>![screen51.png](https://qiita-image-store.s3.amazonaws.com/0/75594/c9cd6b98-3755-98da-4f93-8e3115f10737.png)

- Googleマップ、Earth アプリ、OK。現在位置情報は、Wifiベースだよね？

- アングリーバード２は、インストールができなかった<br>![screen47.png](https://qiita-image-store.s3.amazonaws.com/0/75594/8f280110-f54a-2ef3-6c8e-4e4909c3ee8e.png)


- ASPHALT 8 をインストールした。が、本体を傾けてのハンドル操作ができなかった。(1.4GBくらいファイルもダウンロードしたのに...)<br>![screen64.png](https://qiita-image-store.s3.amazonaws.com/0/75594/39a85fa8-3a0f-36e5-1966-27c5dc772e91.png)

- アプリケーションの削除は、アイコンを長押しして、左のほうのゴミ箱に持っていって、色が変わったら離す。<br>![screen65.png](https://qiita-image-store.s3.amazonaws.com/0/75594/0437f3a5-6b98-6bb7-17a0-e118155447ce.png)


## ログ

- adb 実行例

	```shell-session:実行例
	pi@raspberrypi:~ $ adb connect 192.168.22.62
	* daemon not running. starting it now on port 5037 *
	*** Error in `adb': free(): invalid pointer: 0x00434b00 ***
	ADB server didn't ACK
	* failed to start daemon *
	error: cannot connect to daemon
	pi@raspberrypi:~ $ adb connect 192.168.22.62
	* daemon not running. starting it now on port 5037 *
	* daemon started successfully *
	connected to 192.168.22.62:5555
	pi@raspberrypi:~ $ adb root
	restarting adbd as root
	^C
	pi@raspberrypi:~ $ adb root
	adb: unable to connect for root: no devices/emulators found
	pi@raspberrypi:~ $ adb connect 192.168.22.62
	connected to 192.168.22.62:5555
	pi@raspberrypi:~ $ adb root
	adbd is already running as root
	pi@raspberrypi:~ $
	adbd is already running as root
	pi@raspberrypi:~ $ adb remount
	remount succeeded
	pi@raspberrypi:~ $ adb push gapps/sys/. /system/.
	[ 22%] /system/././priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk: 15%
	..
	..
	.. 
	/system/././: 30 files pushed. 0 files skipped. 0.7 MB/s (98478615 bytes in 132.585s)
	pi@raspberrypi:~ $ adb shell
	root@rk3288:/ # rm -rf /system/priv-app/PackageInstaller
	root@rk3288:/ # ^D
	pi@raspberrypi:~ $ adb reboot
	pi@raspberrypi:~ $



	#
	#再起動後
	#
	pi@raspberrypi:~ $ adb connect 192.168.22.62
	connected to 192.168.22.62:5555
	pi@raspberrypi:~ $ adb root
	restarting adbd as root
	^C
	pi@raspberrypi:~ $ adb connect 192.168.22.62
	connected to 192.168.22.62:5555
	pi@raspberrypi:~ $ adb root
	adbd is already running as root
	pi@raspberrypi:~ $ adb shell
	root@rk3288:/ #

	pm grant com.google.android.gms android.permission.ACCESS_COARSE_LOCATION
	pm grant com.google.android.gms android.permission.ACCESS_FINE_LOCATION
	pm grant com.google.android.setupwizard android.permission.READ_PHONE_STATE

	root@rk3288:/ # ^D
	pi@raspberrypi:~ $ adb reboot
	pi@raspberrypi:~ $
	```