TOC
PC上でのAndroid環境の中で異端なAnbox
PC上でAndroidを動かす場合、開発用に提供されるの環境やアプリ実行用のパッケージがありますが、一般的にそれらはエミュレーションとして環境を再現します。一方でAnboxはAndroid環境を再現しますが、母艦のOSとリソース(メモリとストレージ)を共有する為に無駄がなく、ある意味では一番まっとうなアプローチと言える選択肢です。
先に限界を書きます
Anboxを使ったことがある人は真っ先にその完成度の進捗が気になるところだと思います。基本的には完成度は実用レベルには遠いというところは変わっていないと感じています。
インストールしたのはsnap(edge)から、Androidのバージョンは7.1.1、N6F26Qです。
おおよその傾向
使ってみたアプリで私の環境で動かなかったものは以下になります。マルチメディア系とよく作りこんである系統のアプリは軒並み厳しい動作です。
追記:メディアの再生は作業をすることで改善できました。インストール手順に追記しています。
- 音楽(プリインストール)
- Edge(
落ちる起動直後にAnboxを巻き込んで固まる) - Kiwi Browser(落ちる)
- Google Chrome(ページを読み込み終わっても何も表示されない)
VLC(動画再生しようとすると落ちる)MX Player Pro(動画再生しようとすると落ちる)NewPipe(動画再生画面が真っ黒。アプリは落ちない)- Librera Pro(epubを開いても何も表示せずに落ちる)
動いたものは以下になります。
- X-plore
- F-Droid
- Google Play
- Google日本語入力
- Twitpane Plus(コンテンツの再生は静止画のみ(追記:動画も再生可)、ビルトインブラウザは何も表示しない)
- Termux(文字入力の追従が1文字分遅れる)
- キャラリー(静止画)
- ファイルマネージャ(プリインストール)
- DuckDuckGo(URL入力が不安定)
- VLC
- MX Player Pro
- NewPipe
また、パフォーマンスについてもかなりもっさりでハードウェアアクセラレーションが効かないとこんな感じなんだなと実感できます。
Anboxのインストール
Anboxはashmemとbinderをkernelモジュールとして組み込んだ上でsnapパッケージをインストールするというのがUbuntuでの一番簡単なインストール方法でしたが、しばらく使わないうちにここが変わりました。1
PPAの追加とanbox-mudules-dkmsは不要
具体的には、これまでPPAを追加してanbox-modules-dkms
というパッケージをインストールする必要がありますが、Ubuntu 20.042の場合はこの作業は不要です。
本当に不要かどうかは以下のコマンドでモジュールが既に組み込まれているか確認します。【追記】デフォルトだとashmem_linux
とbinder_linux
はモジュールとしてロードされないようなので、lsmod
コマンドで確認するのはmodprobe
コマンドでモジュールをロードしてからになります。
$ lsmod | egrep '(ashmem|binder)'
結果が出力されない場合はmodprobeコマンドを実行
# modprobe ashmem_linux binder_linux
これで以下のような表示になれば、現在のkernelでモジュールをロードできることになります。
$ lsmod | egrep '(ashmem|binder)'
ashmem_linux 20480 21
binder_linux 180224 40
binderについてはBinderFSがkernel5.0自体にマージされたこと、ashmemについてもUbuntuのkernelではデフォルトで含まれるようになった?ようで、今回ここは飛ばします。
kernelのヘッダファイルをインストール
# apt-get install linux-headers-generic
snapパッケージをインストール
# snap install --devmode anbox --edge
今回インストールするのはedgeです。betaでできなくてedgeだとできることがあるかなと見込んでいたので。
【追記】2020年9月時点のsnapパッケージのインストール方法について
新規にセットアップしたThinkPad X270にAnboxをインストールしようとしたら大ハマリしました。
- betaのバージョン 186 4-56c25f1
- 問題のあるedgeのバージョン 198 4+gitr5ab92ef
【画像で分解説明】実用性に全振り!中古のLenovo ThinkPad X270に手を入れて最強の作業環境を構築
色々やってみた結果、一度betaのパッケージをインストールしてedgeのパッケージにアップグレードしないと思ったとおりにインストールできません。betaのパッケージは391MB、edgeのパッケージは406MBあります。パケットが無駄に必要ですね。
# snap install anbox --beta --devmode
anbox 4-56c25f1 from morphis installed
# snap install anbox --edge --devmode
anbox 4+gitr5ab92ef from morphis installed
# snap info anbox
name: anbox
summary: Android in a Box
publisher: morphis
store-url: https://snapcraft.io/anbox
license: unset
description: |
Runtime for Android applications which runs a full Android system
in a container using Linux namespaces (user, ipc, net, mount) to
separate the Android system fully from the host.
commands:
- anbox
- anbox.android-settings
- anbox.appmgr
- anbox.collect-bug-info
- anbox.shell
services:
anbox.container-manager: simple, enabled, active
snap-id: Nr9K6UJaIOD8wHpDEQl16nabFFt9LLEQ
refresh-date: today at 09:05 JST
channels:
latest/stable: –
latest/candidate: –
latest/beta: 4-56c25f1 2020-01-02 (186) 391MB devmode
latest/edge: 4+gitr5ab92ef 2020-08-20 (198) 406MB devmode
installed: 4+gitr5ab92ef (198) 406MB devmode
betaを先にインストールせずにedgeをインストールすると以下のようになります。liblxc.s0.1が見つからないというエラーが表示されますが、単純にliblxc.so.1をインストールすればよいという話ではなく、snapパッケージの中のliblxc.so.1が見当たらないという話なので、ホストのUbuntuで何をやってもこのエラーは解決できません3。
# snap install --devmode anbox --edge
error: cannot perform the following tasks:
- Run install hook of "anbox" snap if present (run hook "install":
-----
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
realpath: '': No such file or directory
/snap/anbox/198/usr/bin/anbox: error while loading shared libraries: liblxc.so.1: cannot open shared object file: No such file or directory
-----)
追記:メディア対応
# cd /var/snap/anbox/common/rootfs-overlay/system/etc
# wget https://raw.githubusercontent.com/anbox/anbox/master/android/media/media_codecs.xml
# wget https://raw.githubusercontent.com/anbox/anbox/master/android/media/media_codecs_google_audio.xml
# wget https://raw.githubusercontent.com/anbox/anbox/master/android/media/media_codecs_google_telephony.xml
# wget https://raw.githubusercontent.com/anbox/anbox/master/android/media/media_codecs_google_tv.xml
# wget https://raw.githubusercontent.com/anbox/anbox/master/android/media/media_codecs_google_video.xml
# wget https://raw.githubusercontent.com/anbox/anbox/master/android/media/media_profiles.xml
# snap stop anbox
# snap set anbox rootfs-overlay.enable=true
# snap start anbox
ちなみに、Anboxのsnapパッケージで設定できる項目は以下の通りです。
# snap get anbox
Key Value
rootfs-overlay {...}
# snap get anbox rootfs-overlay
Key Value
rootfs-overlay.enable true
adbのインストール
# apt-get install android-tools-adb
OSの再起動(必須)
パッケージのインストールが終わったらUbuntuを再起動します。これをしないとadbでanboxに接続できず、追加アプリのインストールができませんでした。
追加アプリのインストール
$ anbox.appmgr
またはメニューにも「その他」で登録されるアイコンで起動します。戻るボタンはEscキーです。
さすがにこれでは難しいので、手っ取り早く追加アプリを入れられるようにadbからインストールします。
F-Droid
$ wget https://f-droid.org/FDroid.apk
$ adb install FDroid.apk
これで一通りx86でも対応できるアプリはF-Droidからインストール可能になります。
F-DroidからNewPipeをインストールすればYoutubeの動画を楽しめます(動画・音楽再生以外)
アプリの設定で日本・日本語に設定すればこうなります。
再生画面はこんな感じです。
Termux
TermuxもF-Droidからインストールできますので、dropbearをインストールしてSSHサーバを起動すれば、AnboxにSSHログインしてターミナルの操作もできます。
$ pkg install apt
$ apt-get install neofetcch
$ apt-get install dropbear
$ passwd
(sshログイン用パスワード設定(公開鍵認証しない場合は必要)
$ dropbear -w -T 2 -j -k -p 2222 -I 600
PC側からAnboxにログインします。(Anbox側のユーザー名はu0_a52)
$ ssh u0_a52@192.168.250.2 -p 2222
$ neofetch
-o o- u0_a52@anbox
+hydNNNNdyh+ ------------
+mMMMMMMMMMMMMm+ OS: Android 7.1.1 x86_64
`dMMm:NMMMMMMN:mMMd` Host: Android Anbox
hMMMMMMMMMMMMMMMMMMh Kernel: 5.4.0-26-generic
.. yyyyyyyyyyyyyyyyyyyy .. Uptime: 32 mins
.mMMm`MMMMMMMMMMMMMMMMMMMM`mMMm. Packages: 57 (dpkg), 1 (pkg)
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: Shell: bash 5.0.16
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: Resolution: 1200x1920
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: Terminal: /dev/pts/1
:MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM: CPU: Intel m3-8100Y (4) @ 3.400GHz
-MMMM-MMMMMMMMMMMMMMMMMMMM-MMMM- Memory: 3884MiB / 15928MiB
+yy+ MMMMMMMMMMMMMMMMMMMM +yy+
mMMMMMMMMMMMMMMMMMMm
`/++MMMMh++hMMMM++/`
MMMMo oMMMM
MMMMo oMMMM
oNMm- -mMNs
OpenGapps
F-Droidで賄えないアプリはどうしてもGoogle Playからダウンロードせざるを得ないと思います。物凄く色々やっているので、以下の手順を実行する場合はシェルスクリプトの内容を確認したほうがいいと思います。
導入は物凄く面倒だったんですが、自動化するシェルスクリプトが公開されています。必要であれば導入する程度でいいと思います。PC側で以下を実行します。
$ wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
$ chmod +x install-playstore.sh
不足パッケージは実行時に教えてくれるので、指摘されたらインストールします。
$ ./install-playstore.sh
lzip is not installed. Please install lzip.
Example: sudo apt install lzip
シェルスクリプトはを実行します。結構時間がかかります。
$ ./install-playstore.sh
Restarted.
/var/snap/anbox/common/rootfs-overlay
/home/hogehoge/anbox-work
Extracting anbox android image
Parallel unsquashfs: Using 4 processors
1836 inodes (8401 blocks) to write
[=============================================================-] 8401/8401 100%
created 1659 files
created 280 directories
(略)
:arm64_dyn:M::\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7::/system/lib64/arm64/houdini64:P
Modify anbox features
persist.sys.nativebridge=1
ro.opengles.version=131072
Restart anbox
Restarted.
anbox.appmgr
を起動するとGoogle Playが追加されています。
Google Playのパーミッションを変更します。
Settings -> Apps -> Google Play services-> Permissions
Google Playを起動すると、いつも通りのログイン画面が表示されるので、Googleアカウントで認証します。
Google日本語入力は日本語配列の入力方法が欲しいのでインストールしています。
今の所こんな感じになっています(解像度を変えても保持してくれないので、起動する度に形を変えていますが)
ファイルのパス
Anbox上のファイルは/var/snap/anbox/common/data/media/0/
からアクセスできます。ただ、rootユーザーでないと入れないのとユーザーが未知のユーザーなので、adb push
とadb pull
を使ってやり取りするのが正しい方法ではあります。
# ls -la /var/snap/anbox/common/data/media/0
合計 0
drwxrwx--- 1 101023 101023 196 5月 9 09:57 .
drwxrwx--- 1 101023 101023 8 4月 29 08:06 ..
drwxrwxr-x 1 101023 101023 0 4月 29 08:06 Alarms
drwxrwxr-x 1 101023 101023 8 4月 29 08:49 Android
drwxrwxr-x 1 101023 101023 22 4月 29 10:12 DCIM
drwxrwxr-x 1 101023 101023 58 4月 29 10:52 Download
drwxrwxr-x 1 101023 101023 30 4月 29 10:48 Librera
drwxrwxr-x 1 101023 101023 14 4月 29 09:04 Movies
drwxrwxr-x 1 101023 101023 0 4月 29 08:06 Music
drwxrwxr-x 1 101023 101023 0 4月 29 08:06 Notifications
drwxrwxr-x 1 101023 101023 0 4月 29 08:06 Pictures
drwxrwxr-x 1 101023 101023 0 4月 29 08:06 Podcasts
drwxrwxr-x 1 101023 101023 0 4月 29 08:06 Ringtones
drwxrwxr-x 1 101023 101023 0 4月 29 09:07 Subtitles
drwxrwxr-x 1 101023 101023 0 5月 9 09:57 TwitPane
改善されると嬉しいポイント
サウンドが出ないのと一切動画が再生できないのが改善- ハードウェアアクセラレーション
- アプリの安定性(たまに動作が遅くなる)
- より新しいAndroidの採用
最後にシステム情報はこんな感じです。
スポンサーリンク
- 公式のインストール手順が追従していませんが https://github.com/anbox/anbox/blob/master/docs/install.md [return]
- おそらく19.10以降 [return]
- /snap/anboxの下に潜って作業する必要がある [return]
comments powered by Disqus