エミュレーションではなくコンテナ(LXC)で動作するので高速. ただ,moduleが別途必要なのが少し面倒.
※Linux 5.7 以降で動かなくなっている.
UbuntuだとPPAがあるが,他の環境だと無いのでDKIMに頑張ってもらう.
$ git clone https://github.com/anbox/anbox-modules $ cd anbox-modules $ sudo cp anbox.conf /etc/modules-load.d/ $ sudo cp 99-anbox.rules /lib/udev/rules.d/ $ sudo cp -rT ashmem /usr/src/anbox-ashmem-1 $ sudo cp -rT binder /usr/src/anbox-binder-1 $ sudo dkms install anbox-ashmem/1 $ sudo dkms install anbox-binder/1 $ lsmod | grep -e ashmem_linux -e binder_linux binder_linux 118784 0 ashmem_linux 16384 0 $ ls -alh /dev/binder /dev/ashmem crw------- 1 root root 10, 58 Mar 16 20:05 /dev/ashmem crw------- 1 root root 511, 0 Mar 16 20:05 /dev/binder
# Android # CONFIG_ASHMEM=y # end of Android
# Android # CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder" CONFIG_ANDROID_BINDER_IPC_SELFTEST=y # end of Android
$ sudo apt install anbox
snap版もある
$ snap install --devmode --beta anbox
$ sudo apt install adb
$ sudo systemctl start anbox-container-manager.service $ systemctl --user start anbox-session-manager.service
$ anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
pkg版
$ sudo /usr/share/anbox/anbox-shell.sh
snap版
$ /snap/bin/anbox.shell
$ wget https://f-droid.org/FDroid.apk https://f-droid.org/FDroid.apk.asc $ gpg --verify ./FDroid.apk.asc gpg: assuming signed data in './FDroid.apk' gpg: Signature made Thu 11 Apr 2019 09:41:19 PM JST gpg: using RSA key 7A029E54DD5DCE7A gpg: Can't check signature: No public key $ gpg --receive-keys 7A029E54DD5DCE7A gpg: key 41E7044E1DBA2E89: public key "F-Droid <admin@f-droid.org>" imported gpg: Total number processed: 1 gpg: imported: 1 $ gpg --verify ./FDroid.apk.asc gpg: assuming signed data in './FDroid.apk' gpg: Signature made Thu 11 Apr 2019 09:41:19 PM JST gpg: using RSA key 7A029E54DD5DCE7A gpg: Good signature from "F-Droid <admin@f-droid.org>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 37D2 C987 89D8 3119 4839 4E3E 41E7 044E 1DBA 2E89 Subkey fingerprint: 802A 9799 0161 1234 6E1F EFF4 7A02 9E54 DD5D CE7A $ adb -s emulator-5558 install ./FDroid.apk Success
$ adb devices List of devices attached PM1LHMA861101791 device emulator-5558 device
欲しいパッケージを探す
$ adb -s PM1LHMA861101791 shell pm list packages -f | grep comic package:/data/app/jp.co.kodansha.comicdays-Q-xIdOYHkVEGgkHH-8M-hg==/base.apk=jp.co.kodansha.comicdays package:/data/app/com.comic_fuz-i3qukKn--k5Xjvzmpexe4g==/base.apk=com.comic_fuz $ adb -s PM1LHMA861101791 shell pm list packages -f | grep walker package:/data/app/jp.bookwalker.kreader.android.epub-HrJQAeWh4nj91NNzBfk2Cg==/base.apk=jp.bookwalker.kreader.android.epub package:/data/app/jp.magazinewalker.app01-E7JWcZBrlfOYUjMA4v6Wjw==/base.apk=jp.magazinewalker.app01
取り出し
$ adb -s PM1LHMA861101791 pull /data/app/jp.co.kodansha.comicdays-Q-xIdOYHkVEGgkHH-8M-hg==/base.apk /data/app/jp.co.kodansha.comicdays-Q-xIdOYHkVEGgkHH-8M-hg==/base.apk: 1 file pulled. 30.4 MB/s (14266802 bytes in 0.447s)
導入
$ adb -s emulator-5558 install ./base.apk Success
archtectureの違いでの失敗
$ adb -s emulator-5558 install ./base.apk adb: failed to install ./base.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
ABI(Application Binary Interface)の違いで動作しないパターンだと思うのでAnBoxでは恐らく無理.同じArchtectureでAnBoxを動かすかバイナリエミュレーションする環境で動かすしかなさそう.
そして未だamd64以外ではAnBoxは動かないよう…….
このパターンで動かなかったアプリ.
インストールできても動かないアプリもある
少し動きの怪しいアプリ
問題がなさそうなアプリ
コメント