Raspberry Pi3にAndroid7.1.1 + Google Play Storeをインストールする方法

前書き

本記事は、Install Android on his Raspberry Piを実践した結果を示します。具体的には、Raspberry Pi3に対して、Android7.1.1とGoogle Play Storeをインストールします。Androidの最新バージョンは、2018年にリリースされた9.x系ですので、やや古いバージョン(2016年時点の最新版)のインストール方法になります。

余談ですが、最近iPhoneとAndroid機の両刀をしていますが、もうAndroidもOSの出来が成熟していますね。iOSから乗り換えようか、本格的に思案中です。

       

開発環境

項目 機器/Version 用途・備考
Linux PC Intel NUC(BOXNUC613SYK、Cortex i3、メモリ32GB) Debian9.4(stretch)を使用。
ターゲット環境 Raspberry Pi3 Model B Androidが動作する環境
ストレージ MicroSDカード(Silicon Power、16GB、Class10) Class4以上かつ16GB以上の容量が必要
モニタ ASUS VZ249H Linux環境とAndroid環境で共有
MicroSDカードリーダ マルチカードリーダ(ELECOM)
電源(ターゲット) microUSB – USBケーブル、iPad mini2用のUSB充電器
映像/音声 HDMIケーブル(PS4付属品)
入出力装置 キーボード、マウス USB接続タイプ

       

Androidイメージ・Google Play Storeインストーラの準備

以下のURLより、ファイルがダウンロードできます。

       

AndroidイメージをSDカードにコピー

CLI(CUI)でSDカードにAndroidイメージをコピーできますが、今回はEtcher(SDカードにイメージを書き込むツール)を使用します。ちなみに、Etcherの利点は以下の通りです。

利点
  • OSS
  • GUI操作(簡単)
  • 自動的にイメージの書き込み先(MicroSDカード)を判別
  • Linux/Mac/Windowsに対応 

Etcherの”Download for Linux x64″よりZIPファイルをダウンロードした後、以下の手順でEtcherをインストールおよび実行します。

以下の実行画面において、[Select image]ボタンより”and7_1-tablet-23012017.zip”を選択した後、[Flash]ボタンを押下します。なお、実行者が一般ユーザの場合、rootパスワードの入力が必須です。

                                                            

      

Android端末を無線接続(Raspberry Pi3のIPアドレス調査)

有線接続時のIPアドレス確認方法が分からなかったため、無線接続での方法を記載します。まず、Raspberry Pi3に以下のデバイスを接続後、電源を投入します。

  • MicroSDカード
  • HDMIケーブル
  • USBキーボード
  • USBマウス
  • microUSB

無線接続するには、起動画面から[Setting]/[Wifi]まで移動し、WifiをONにします。その後、WiFi Network(SSID)に対応するパスワードを入力すれば、接続が確立します。接続の確立後、[Setting]/[Wifi]の歯車マークを押すと、IPアドレスが表示されます。なお、このIPアドレスはGoogle Play Storeのインストール時に使用します。

      

Google Play StoreをRaspberry Pi3にインストール

ここでの作業は、LinuxからRaspberry Pi3に対して、前手順で調査したIPアドレスで接続し、インストーラであるgapps.sh経由でGoogle Play Storeをインストールします。まず、Google Play Storeインストールに必要な依存パッケージをインストールします。

次に、gapps.shのIP接続設定を変更します。

最後に、gapps.shを実行すれば、Google Play Storeがインストールされます。gapps.shの役割は、Androidの/systemディレクトリ以下に配置するファイルを収集した後に、それらをadb(Android Debug Bridge)コマンドを用いてAndroidにコピーします。

なお、以下の手順の実行前に、Rapberry Pi3の電源はON状態にして下さい。gapps.shの実行が終了した後、Raspberry Pi3が再起動すれば成功です。

        

Google Play Storeの認証(アカウント登録)

再起動したRaspberry Pi3から、Google Play Storeを実行すれば、よくあるアカウント登録手順が表示されます。以降の手順は、不要と思うので説明しません。

      

ハマった箇所

gapps.shが三回ほど、以下のエラーでコケました。現象としては、rsyncコマンドが何度かエラーを起こした後に、”CANNOT LINK EXECUTABLE “getprop”: library “libm.so.6” not found”が延々と出力される状態でした。

この現象の解決策は、
「gapps.shが存在するディレクトリ階層に、拡張子がtar.[g|l|x]zを置かない事」

gapps.shがAndroidの/systemディレクトリにコピーするためのファイルを集める流れは、
 1. カレントディレクトリにgappsディレクトリを作成
 2. /systemディレクトリに配置したいPackageをtar形式でgapps/pkgディレクトリ以下に収集
 3. 収集したtarファイルをgapps/tmpディレクトリに展開(★問題箇所)
 4. gapps/tmpディレクトリの内容からgapps/sys(“/system”にコピーする内容)を作成

前述の3番(★)で、gapps/pkgディレクトリ以下のtarballを収集する事が正しいです。しかし、実際はgappsディレクトリの一つ上の階層からtarballを収集し、gapps/tmpディレクトリに展開します。そして、私の環境でToolchainやLinux Kernelなどのtarballがその階層に存在したため、gapps/sysの内容が期待値通りにならなかった事により、エラーとなりました。(根本的には「Toolchainが悪さしたんだろうな」と想像しましたが、時間の無駄なので調査せず)

     

後書き

素朴な疑問:AndroidをRaspberry Pi3で動かして、使い物になる?
答え   :ならない。

Raspberry Pi3のCPUでは、動作がモッサリもっさりしてて、アプリも頻繁に落ちます。キビキビ動くDragonboard410cと比較すると、無理して用途を考えないと厳しい印象。なお、起動直後のメモリ使用量は314MB/729MB、ストレージ使用量は9.37GB/14.43GBでした。

直撮り画像で申し訳ありませんが、初期アプリはこんな感じです。Raspberry Pi3でGoogle Play Storeがインストールできる事自体は素晴らしいけど、ダウンロードした他アプリが動作するかどうかは、また別の問題といった感じでした。

       

おすすめ

1件の返信