Anbox をインストールしてみた備忘録と雑感

Environment
Photo by hyt.

Anbox をインストールしてみた備忘録と雑感です.

いつもの通りまずは結論から言うと,

まだ実用的とはちょっと言い難いかな……

です.

Anbox ってなに?

Android in the box

だそうです.もう少しわかり易く言うと,Linux 用の Android コンテナですね.

元サイトは

Anbox - Android in a box

Android って少なくともカーネルの部分は Linux なので,コンテナにしてやってカーネル部分のみベースの OS のものを使えば無駄がなくて,実行速度も稼げるよねってことなんだと思います.

なお,Anbox で導入される Android は現状 ver. 7 でした.

前回の記事

https://www.labohyt.net/blog/microsoft/post-4722/

で PLANEX のスマカメアプリを Wine で使うって記事を書きましたが,実は最初に試したのはこちらでの方です.結局はうまくいかなかったので,Wine に切り替えたのですが,せっかく試行錯誤したので,その記録を残しておこうと思った訳ですね.

ashmem と binder モジュールのインストール

この節と次の節は基本的に,元サイトの

Site not found · GitHub Pages

に書かれている通りです.

Anbox を導入するには,まず,必須の kernel module である ashmem と binder をインストールする必要があります.なお,ashmem はプロセス間でメモリを共有するための仕組みだそうで,binder はプロセス間通信のためのものらしいです.

いまのところ公式が用意しているのは Ubuntu 用の PPA だけらしいのですが,逆に言えば Ubuntu だと以下のコマンドをコマンドを順に実行するだけで良いようです.

$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install linux-headers-generic anbox-modules-dkms

カーネルモジュールなので,もちろん読み込まないと使えません.

$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux

$ lsmod |grep ashmem
ashmem_linux           16384  0
$lsmod |grep binder
binder_linux           98304  0

$ ls -1 /dev/{ashmem,binder}
/dev/ashmem
/dev/binder

再起動後も大丈夫な親切仕様です.きちんと /etc/modules-load.d/anbox.conf が作られ,

$ cat /etc/modules-load.d/anbox.conf
ashmem_linux
binder_linux

のように設定されます.

Anbox のインストールとアップデート

現状,Anbox の公式が用意している方法は snap だけだそう.あと,Ubuntu Store にログインしてないなら,sudo snap …… のようにする必要があるらしいです.

$ sudo snap install --devmode --beta anbox
anbox (beta) 4-e1ecd04 from morphis installed

なお,–devmode というのは Developer mode のことらしく,ベースシステムのリソースへの完全なアクセスが許されるらしい.だから,snap の stable channel で提供されることはないし,自動更新も行われないようで,現状,更新したい場合は,

$ snap refresh --beta --devmode anbox

のようにしないといけないようです.なお,現在利用しているバージョンを知りたければ,

$ snap info anbox
name:      anbox
summary:   Android in a Box
publisher: morphis
contact:   https://anbox.io
license:   unset
...
  beta:      4-e1ecd04 2018-10-17 (158) 391MB devmode
  edge:      4-0a49ae0 2019-11-15 (185) 391MB devmode
installed:   4-e1ecd04            (158) 391MB devmode

で見ることが出来ます.

アプリとネットワークについての注意

さて,これで Anbox 自体は導入できるのですが,注意点として,Anbox はインストールしただけだと,

  • Google Play が含まれていませんし,
  • 標準だとネットワークの設定も行われていませんし,
  • x86に対応したアプリしか実行できません.

つまり,全く実用になりません.これを何とかするには ADB(Android Debug Bridge) を利用して更にいろいろやらなければいけません.

なお,Ubuntu の場合は ADB は以下のようにすれば入りますし,アプリのインストールは Anbox を起動して,apk ファイルを直接 adb でインストールすれば良いです.

$ sudo apt install android-tools-adb
$ anbox.appmgr
$ adb install my-app.apk

また,ネットワークも,元サイトの

Site not found · GitHub Pages

辺りを見て設定すれば良いのですが,さすがにこんなことを一つ一つやっていくのはとても面倒なので,以下,これらの設定を一括してやってくれるスクリプトを利用することにします.

Google Play のインストールとネットワークの設定

参考にしたのは

Anbox: How To Install Google Play Store And Enable ARM (libhoudini) Support, The Easy Way
This article explains how to install Google Play Store And Google Play Services on Anbox, along with enabling ARM applic...

です.1年以上前の記事ですが,この記事に書かれているとおりでいまでも大丈夫です.手順は以下の通りです.

まず,lzip を入れます(他にも unzip とかも入れろと上の記事には書いてありますが普通は入ってます).

$ sudo apt install lzip

次にスクリプトをダウンロードします.

$ wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
$ chmod +x install-playstore.sh

ダウンロード後,スクリプトを実行しますが,ネットワークの設定等も行われるため,ルート権限が要ります.

$ sudo ./install-playstore.sh

導入終了後,残骸を削除するためのスクリプトを実行します.

$ sudo ./install-playstore.sh --clean

最後に,Google Play と Google Play Service を実行可能にするために,Anbox を起動し,

$ ambox.appmgr

さらに「Settings > Apps > Google Play Services > Permissions」の様にたどって,全ての許可を与えます.これで Google アカウントを登録することができるようになります.

なお,このスクリプトを実行すると,単に Google Play と Google Play Service を使えるようにしてくれるだけじゃなくて,さらに arm 向けのアプリを x86 カーネルで実行可能にしてくれるライブラリも導入されます.

Anbox 利用雑感

Anbox の起動自体は,上で書いたとおり anbox.appmgr で出来ますし,また Ubuntu 系統の OS だと「アプリケーション」メニューの中に Anbox を起動するアイコンが出てきます.

初回起動時は Android のシステムが立ち上がるまでしばらく待つ必要がありますが(私お Macbook air 2013 だと20秒くらい),起動してしまえばそれなりの速度で動いてくれます.

ただし,現状だと最初に書いたとおりまだまだ色々不安定です.特に arm 向けのアプリの動作がいろいろあやしいです.私の場合はスマカメアプリを始め,いくつかのアプリを試したのですが,結局どれも実用とは程遠いなぁ……ということで,今回は Anbox の利用を諦めることにしました.

アンインストール手順

以下,アンインストールの手順です.

まずは,Anbox のアンインストールです.単に snap パッケージを remove してやれば良いだけです.

$ sudo snap remove anbox

次はカーネルモジュールの削除を行います.

$ sudo apt install ppa-purge 
$ sudo ppa-purge ppa:morphis/anbox-support
$ rm -rf /etc/modules-load.d/anbox.conf

最後に,apt から対応する PPA の削除を行います.

$ sudo rm /etc/apt/sources.list.d/morphis-ubuntu-anbox-support-bionic.list 
$ sudo apt-key del "CFD4 CCDE 77B8 2D4F A3B1 13E5 21C6 044A 875B 67B7"
$ apt update

あと,もし,使ってる snap パッケージが Anbox だけなら,ホームディレクトリにある snap ディレクトリを削除します.そうでない場合は,~/snap/anbox を削除すれば一応最低限の残骸は削除されるハズです.

$ rm -rf snap
$ rm -rf snap/anbox

以上

 

EnvironmentGoogle
スポンサーリンク
Following hyt!
hyt adversaria
タイトルとURLをコピーしました