Anbox をインストールしてみた備忘録と雑感です.
いつもの通りまずは結論から言うと,
まだ実用的とはちょっと言い難いかな……
です.
Anbox ってなに?
Android in the box
だそうです.もう少しわかり易く言うと,Linux 用の Android コンテナですね.
元サイトは
Android って少なくともカーネルの部分は Linux なので,コンテナにしてやってカーネル部分のみベースの OS のものを使えば無駄がなくて,実行速度も稼げるよねってことなんだと思います.
なお,Anbox で導入される Android は現状 ver. 7 でした.
前回の記事
で PLANEX のスマカメアプリを Wine で使うって記事を書きましたが,実は最初に試したのはこちらでの方です.結局はうまくいかなかったので,Wine に切り替えたのですが,せっかく試行錯誤したので,その記録を残しておこうと思った訳ですね.
ashmem と binder モジュールのインストール
この節と次の節は基本的に,元サイトの
に書かれている通りです.
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
また,ネットワークも,元サイトの
辺りを見て設定すれば良いのですが,さすがにこんなことを一つ一つやっていくのはとても面倒なので,以下,これらの設定を一括してやってくれるスクリプトを利用することにします.
Google Play のインストールとネットワークの設定
参考にしたのは
です.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
以上