https://zarat.hatenablog.com/entry/2019/07/06/171700
シェアしました。
コメント:Ubuntu(LINUX)にAnboxをインストール成功後に、
/snap/bin/anbox.appmgr
コマンドで起動失敗しました。
https://translate.googleusercontent.com/translate_c?depth=1&hl=ja&prev=search&rurl=translate.google.com&sl=en&sp=nmt4&u=https://github.com/anbox/anbox/issues/781&xid=17259,15700022,15700186,15700191,15700256,15700259,15700262,15700265,15700271,15700283&usg=ALkJrhj5E8O0h4ZUo4bVv_pJuQrL2xQt4g
上記で研究後以下を実行。
Anbox does not start: "Application manager service is not running yet"
実行するときのエラー
$ anbox.appmgr
次のコマンドを実行した後
$ export PATH=$PATH:/snap/bin
$ sudo snap start anbox
私がしなければならなかったのは、2つのターミナルを開くことでした。
$ anbox session-manager
その端末を開いたままにしました。他のターミナルで私が走った
$ anbox.appmgr
これで、Anboxが実行されています。
再起動後、コマンドを再度実行してAnboxを開きます。
$ sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/*
$ systemctl start snapd.service
$ export PATH=$PATH:/snap/bin
$ sudo snap start anbox
$ anbox session-manager
新しいターミナルで
$ anbox.appmgr
PS
Anbox-installerがインストールされていることを確認するために次のコマンドを実行しました。これが必要な場合はidk
$ sudo snap install --classic anbox-installer && anbox-installer
そうである場合、これを1回実行するだけで済みます。
長い投稿で申し訳ありませんが、これが誰かの助けになることを願っています。これらの問題を見た他のフォーラムに投稿するつもりです。
乾杯、そして幸運。
起動にLINUX上でAndroidエミュレータの起動に成功しました。
ーーー
前回の記事ではapktoolについて紹介した。
Anbox(Android in a Box)
一応snapについて:
ついでにsnapアプリのストアのようなもの
Anboxをインストール
早速Anboxをインストールしてみる。今回は2019/07/04時点で最新の
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install anbox-modules-dkms
一応PPAについて:
ii)インストールしたカーネルモジュールをロードする
$ sudo modprobe ashmem_
linux
$ sudo modprobe binder_
linux
iii)ノードがあるか確認
$ ls -l /dev/{ashmem,binder}
/dev/ashmem
/dev/binder
2.Anboxをsnapでインストール
snapが無い場合のインストールについてはsnapに関する上記リンクを参照して頂きたい。また、snapを持っていても更新の確認をおすすめする。では、snapでAnboxをインストール。
$ sudo snap install --devmode --beta anbox
10分くらい時間がかかる。
また、新しいバージョンへのアップデートは自動では行われないのでコマンドで行う必要がある。
Anbox更新コマンド:
$ snap refresh --beta --devmode anbox
最新の情報についてはこのコマンド:
$ snap info anbox
X.アンインストールする場合
$ snap remove anbox
※このコマンドではanboxに関する全てのデータが消えてしまい元に戻らないようなので注意。
また、anboxをアンインストールするならばインストールした
カーネルなども削除すべきなので、
$ sudo apt install ppa-purge
$ sudo ppa-purge ppa:morphis/anbox-support
Anboxを起動
$ anbox.appmgr
起動が成功すればこんな感じ↓
あと、何故か分からないけれど右クリックは通じるけど左クリックが通じないボタンがある。
よし!じゃあ早速何ができるか遊んでみるか!
\(^o^)/オワタ
そんなあなたには二つの道があります。
それは、
ということで順番に見ていく。
i)apkファイルを直接インストール
apkファイルを持ってきてインストールするには adb と fastboot 二つのパッケージが必要だと思われます。(adbは絶対必要だが、fastbootはよく分かってない。たぶん含まれているライブラリが必要なのだと思われる。)
また、多くの記事は
Android SDKを入れないと adb と fastboot は利用できないと書いているように思えるがパッケージのみ入れるだけで使える。
$ sudo apt install
android-tools-adb
$ sudo apt install
android-tools-fastboot
次にapkファイルは、やはりなんでも良いという訳では無い。基本的には Architecture が
x86 または arm64 に対応していれば動くらしい。
apkファイルが沢山あるところ:
apkファイルが手に入ったら、これでインストール。
$ adb start-server
$ adb install file.apk
使用例)
ダウンロードしたapkファイルは大分ファイル名が長い。Successと表示されればインストール完了。arm64と記載されていても軽く確認した中では成功するものが見つからなかった。
インストールに成功すればanboxに追加される。
インストールに成功しても起動しないアプリが多くあるので注意
ここら辺は今後のanboxに期待するしかないだろう。
もしかしたら危険なアプリもあるかもしれないが、そこら辺は当サイトは責任を負いませんということで。
イ)事前に必要なものをインストール
まず、
Google Playストアをインストールするためのインストールが必要である。必要とされるのは、
wget , lzip , unzip
squashfs-tools の4つ。Ubuntu18.04.02 LTS にはこれらのパッケージはlzip以外デフォルトで入っている。使用環境に含まれているか一応確認した方が良い。
以下まとめてインストールするコマンドを記述しておく
補足:
lzipについて:
gzipと同じくらい早く復元でき、bzip2よりも効率よく圧縮できるらしい。でも使ってる人あまり見かけない。
おそらく
Squashfsイメージで配布しているlibhoudiniを利用するため。
ロ)Google Playストア、libhoudiniをインストール
$ chmod +x install-playstore.sh
$ sudo ./install-playstore.sh
割と時間がかかる。自分は10分ほど。
終わったら一度起動して、
$ anbox.appmgr
Settings -> Apps ->
Google Play Services -> Permissionsで権限を与えてあげて。同様にSettings -> Apps ->
Google Play Store-> Permissionsで権限を与える。 そして
Google Play Storeにログインする。ログインは必ず権限を全て与えてから。ログイン後には権限を減らすことができる。
あと何故か日本語キーだったのがログインのときだけUSキーになった。
しかし、
Google Play Storeが使えるからと言って全てのアプリが使える訳ではない。というか使えるアプリが少ない。ほとんどのアプリはインストールできない、インストールに成功しても起動しないなど、この
エミュレータは我々に根気強さを求めているのか(錯乱)。
x86に対応していると分かるapkファイルから入れる方がインストール成功の可能性は高いと思われる。
Google Play Storeを選ぶのは負けなのでは。
補足:
権限を全て与えてもログイン失敗する場合は
$ sudo /snap/anbox/current/bin/anbox-bridge.sh start
したり、
$ sudo /snap/anbox/current/bin/anbox-bridge.sh restart
すると良いらしい。これらは参考リンクにも記載されている。また、
Google Play StoreをAnboxで使うのにdnsmasqパッケージが必要だという人もいるみたいだが、
Ubuntu Desktop 18.04.2 LTSでは要らなかった。
libhoudiniについて:
これが在ればarm64対応のアプリを
x86でも動かせるということだと思われる。逆にこれが無いと動かないのではと思っているがどうなのだろう。
最後に
エミュレータなのに仮想環境ではなく、同じカーネ前回の記事ではapktoolについて紹介した。
apktoolについて調査しているときにLinux上のAndroidエミュレータは、どんなものがあるのか気になったので調べてみた。
調べた中で最も興味の湧いたLinuxのandroidエミュレータを紹介させていただく。
Anbox(Android in a Box)
一応snapについて:
Anboxをインストール
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
一応PPAについて:
ii)インストールしたカーネルモジュールをロードする
iii)ノードがあるか確認
2.Anboxをsnapでインストール
X.アンインストールする場合
Anboxを起動
i)apkファイルを直接インストール
ii)Google Playを入れる
イ)事前に必要なものをインストール
lzipについて:
squashfs-toolsについて:
ロ)Google Playストア、libhoudiniをインストール
ハ)Google Play Services,Google Play Storeに権限を与える
libhoudiniについて:
最後に
参考
Anbox(Android in a Box)
github.com
無料で使えるLinux上のAndroidエミュレータ。多くのAndroidエミュレータは仮想的にAndoroid環境を使ってシステムをエミュレートするが、AnboxはホストOSと同じカーネルでAndroidシステムを動かす。なので仮想的に環境を構築するより動作が軽い。ただホストOSと同じカーネルを利用するせいなのか全てのアプリが使える訳ではない。
記事の執筆時はβ版として提供されている。この記事を書いた時点で公式がサポートしているLinuxディストリビューションは、Ubuntu 16.04(xenial) ,Ubuntu 18.04(bionic)の二つのみである。しかし、snapが使えるディストリビューションではおそらく動作すると思われる。(Debian系でもいけるらしい)
一応snapについて:
news.mynavi.jp
jp.techcrunch.com
kledgeb.blogspot.com
www.nowhere.co.jp
ついでにsnapアプリのストアのようなもの
uappexplorer.com
Anboxをインストール
github.com
早速Anboxをインストールしてみる。今回は2019/07/04時点で最新の
Ubuntu Desktop 18.04.2 LTS
をVirtualBoxに入れて(仮想RAM 4096MB,仮想HDD 64GB)でやっていく。
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install anbox-modules-dkms
一応PPAについて:
allabout.co.jp
kazuhira-r.hatenablog.com
gihyo.jp
cloud-work.net
ii)インストールしたカーネルモジュールをロードする
$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux
iii)ノードがあるか確認
$ ls -l /dev/{ashmem,binder}
/dev/ashmem
/dev/binder
2.Anboxをsnapでインストール
snapが無い場合のインストールについてはsnapに関する上記リンクを参照して頂きたい。また、snapを持っていても更新の確認をおすすめする。では、snapでAnboxをインストール。
$ sudo snap install --devmode --beta anbox
10分くらい時間がかかる。
また、新しいバージョンへのアップデートは自動では行われないのでコマンドで行う必要がある。
Anbox更新コマンド:
$ snap refresh --beta --devmode anbox
最新の情報についてはこのコマンド:
$ snap info anbox
X.アンインストールする場合
$ snap remove anbox
※このコマンドではanboxに関する全てのデータが消えてしまい元に戻らないようなので注意。
また、anboxをアンインストールするならばインストールしたカーネルなども削除すべきなので、
$ sudo apt install ppa-purge
$ sudo ppa-purge ppa:morphis/anbox-support
Anboxを起動
ここまで来ればあとは起動するだけ!コマンドラインに以下を入力!
$ anbox.appmgr
起動が成功すればこんな感じ↓
f:id:Zarat:20190706145157p:plain
普通のandroidエミュレータと違って画面がウインドウをのように使えるのが良い。あとはエミュレータのはずなのに操作がサクサクなのが良い(使用環境によるだろうが比較的軽いハズ)。
あと、何故か分からないけれど右クリックは通じるけど左クリックが通じないボタンがある。
よし!じゃあ早速何ができるか遊んでみるか!
んっ?Google Playが無いだとぉぉぉ?!
\(^o^)/オワタ
そんなあなたには二つの道があります。
それは、
i)エンジニアならばやはりCUIじゃけん。コマンドラインでapkをインストールするんじゃ。
ii)スマートに効率的にGUIでインストールしたい。やっぱGoogle Playストア入れるっきゃないでしょ。
ということで順番に見ていく。
i)apkファイルを直接インストール
apkファイルを持ってきてインストールするには adb と fastboot 二つのパッケージが必要だと思われます。(adbは絶対必要だが、fastbootはよく分かってない。たぶん含まれているライブラリが必要なのだと思われる。)
Android Debug Bridge | Android Developers
tek2tech.com
droidd.ru
また、多くの記事はAndroid SDKを入れないと adb と fastboot は利用できないと書いているように思えるがパッケージのみ入れるだけで使える。
$ sudo apt install android-tools-adb
$ sudo apt install android-tools-fastboot
次にapkファイルは、やはりなんでも良いという訳では無い。基本的には Architecture が x86 または arm64 に対応していれば動くらしい。
apkファイルが沢山あるところ:
www.apkmirror.com
apkファイルが手に入ったら、これでインストール。
$ adb start-server
$ adb install file.apk
使用例)
f:id:Zarat:20190706153312p:plain
ダウンロードしたapkファイルは大分ファイル名が長い。Successと表示されればインストール完了。arm64と記載されていても軽く確認した中では成功するものが見つからなかった。
インストールに成功すればanboxに追加される。
f:id:Zarat:20190706153758p:plain
インストールに成功しても起動しないアプリが多くあるので注意
ここら辺は今後のanboxに期待するしかないだろう。
もしかしたら危険なアプリもあるかもしれないが、そこら辺は当サイトは責任を負いませんということで。
ii)Google Playを入れる
イ)事前に必要なものをインストール
やっぱ正規のストアのGoogle Playの方が安心だよねってことで入れていく。
まず、Google Playストアをインストールするためのインストールが必要である。必要とされるのは、wget , lzip , unzip squashfs-tools の4つ。Ubuntu18.04.02 LTS にはこれらのパッケージはlzip以外デフォルトで入っている。使用環境に含まれているか一応確認した方が良い。
(追記)curlも必要なのでcurl、も入れる。
以下まとめてインストールするコマンドを記述しておく
$ sudo apt install wget lzip unzip squashfs-tools curl
補足:
lzipについて:
www.nongnu.org
gzipと同じくらい早く復元でき、bzip2よりも効率よく圧縮できるらしい。でも使ってる人あまり見かけない。
squashfs-toolsについて:
qiita.com
nopipi.hatenablog.com
おそらくSquashfsイメージで配布しているlibhoudiniを利用するため。
ロ)Google Playストア、libhoudiniをインストール
$ wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
#ダウンロードしてインストールしてくれるシェルスクリプトをダウンロードしてる
$ chmod +x install-playstore.sh
$ sudo ./install-playstore.sh
割と時間がかかる。自分は10分ほど。
終わったら一度起動して、
$ anbox.appmgr
ハ)Google Play Services,Google Play Storeに権限を与える
Settings -> Apps -> Google Play Services -> Permissionsで権限を与えてあげて。同様にSettings -> Apps -> Google Play Store-> Permissionsで権限を与える。 そしてGoogle Play Storeにログインする。ログインは必ず権限を全て与えてから。ログイン後には権限を減らすことができる。
あと何故か日本語キーだったのがログインのときだけUSキーになった。
これでGoogle Play Storeが使えるぞ
f:id:Zarat:20190706163549p:plain
しかし、Google Play Storeが使えるからと言って全てのアプリが使える訳ではない。というか使えるアプリが少ない。ほとんどのアプリはインストールできない、インストールに成功しても起動しないなど、このエミュレータは我々に根気強さを求めているのか(錯乱)。
x86に対応していると分かるapkファイルから入れる方がインストール成功の可能性は高いと思われる。Google Play Storeを選ぶのは負けなのでは。
補足:
権限を全て与えてもログイン失敗する場合は
$ sudo /snap/anbox/current/bin/anbox-bridge.sh start
したり、
$ sudo /snap/anbox/current/bin/anbox-bridge.sh restart
すると良いらしい。これらは参考リンクにも記載されている。また、Google Play StoreをAnboxで使うのにdnsmasqパッケージが必要だという人もいるみたいだが、Ubuntu Desktop 18.04.2 LTSでは要らなかった。
libhoudiniについて:
wiki.onakasuita.org
arekorebibouroku.hateblo.jp
これが在ればarm64対応のアプリをx86でも動かせるということだと思われる。逆にこれが無いと動かないのではと思っているがどうなのだろう。
最後に前回の記事ではapktoolについて紹介した。
apktoolについて調査しているときにLinux上のAndroidエミュレータは、どんなものがあるのか気になったので調べてみた。
調べた中で最も興味の湧いたLinuxのandroidエミュレータを紹介させていただく。
Anbox(Android in a Box)
一応snapについて:
Anboxをインストール
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
一応PPAについて:
ii)インストールしたカーネルモジュールをロードする
iii)ノードがあるか確認
2.Anboxをsnapでインストール
X.アンインストールする場合
Anboxを起動
i)apkファイルを直接インストール
ii)Google Playを入れる
イ)事前に必要なものをインストール
lzipについて:
squashfs-toolsについて:
ロ)Google Playストア、libhoudiniをインストール
ハ)Google Play Services,Google Play Storeに権限を与える
libhoudiniについて:
最後に
参考
Anbox(Android in a Box)
github.com
無料で使えるLinux上のAndroidエミュレータ。多くのAndroidエミュレータは仮想的にAndoroid環境を使ってシステムをエミュレートするが、AnboxはホストOSと同じカーネルでAndroidシステムを動かす。なので仮想的に環境を構築するより動作が軽い。ただホストOSと同じカーネルを利用するせいなのか全てのアプリが使える訳ではない。
記事の執筆時はβ版として提供されている。この記事を書いた時点で公式がサポートしているLinuxディストリビューションは、Ubuntu 16.04(xenial) ,Ubuntu 18.04(bionic)の二つのみである。しかし、snapが使えるディストリビューションではおそらく動作すると思われる。(Debian系でもいけるらしい)
一応snapについて:
news.mynavi.jp
jp.techcrunch.com
kledgeb.blogspot.com
www.nowhere.co.jp
ついでにsnapアプリのストアのようなもの
uappexplorer.com
Anboxをインストール
github.com
早速Anboxをインストールしてみる。今回は2019/07/04時点で最新の
Ubuntu Desktop 18.04.2 LTS
をVirtualBoxに入れて(仮想RAM 4096MB,仮想HDD 64GB)でやっていく。
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install anbox-modules-dkms
一応PPAについて:
allabout.co.jp
kazuhira-r.hatenablog.com
gihyo.jp
cloud-work.net
ii)インストールしたカーネルモジュールをロードする
$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux
iii)ノードがあるか確認
$ ls -l /dev/{ashmem,binder}
/dev/ashmem
/dev/binder
2.Anboxをsnapでインストール
snapが無い場合のインストールについてはsnapに関する上記リンクを参照して頂きたい。また、snapを持っていても更新の確認をおすすめする。では、snapでAnboxをインストール。
$ sudo snap install --devmode --beta anbox
10分くらい時間がかかる。
また、新しいバージョンへのアップデートは自動では行われないのでコマンドで行う必要がある。
Anbox更新コマンド:
$ snap refresh --beta --devmode anbox
最新の情報についてはこのコマンド:
$ snap info anbox
X.アンインストールする場合
$ snap remove anbox
※このコマンドではanboxに関する全てのデータが消えてしまい元に戻らないようなので注意。
また、anboxをアンインストールするならばインストールしたカーネルなども削除すべきなので、
$ sudo apt install ppa-purge
$ sudo ppa-purge ppa:morphis/anbox-support
Anboxを起動
ここまで来ればあとは起動するだけ!コマンドラインに以下を入力!
$ anbox.appmgr
起動が成功すればこんな感じ↓
f:id:Zarat:20190706145157p:plain
普通のandroidエミュレータと違って画面がウインドウをのように使えるのが良い。あとはエミュレータのはずなのに操作がサクサクなのが良い(使用環境によるだろうが比較的軽いハズ)。
あと、何故か分からないけれど右クリックは通じるけど左クリックが通じないボタンがある。
よし!じゃあ早速何ができるか遊んでみるか!
んっ?Google Playが無いだとぉぉぉ?!
\(^o^)/オワタ
そんなあなたには二つの道があります。
それは、
i)エンジニアならばやはりCUIじゃけん。コマンドラインでapkをインストールするんじゃ。
ii)スマートに効率的にGUIでインストールしたい。やっぱGoogle Playストア入れるっきゃないでしょ。
ということで順番に見ていく。
i)apkファイルを直接インストール
apkファイルを持ってきてインストールするには adb と fastboot 二つのパッケージが必要だと思われます。(adbは絶対必要だが、fastbootはよく分かってない。たぶん含まれているライブラリが必要なのだと思われる。)
Android Debug Bridge | Android Developers
tek2tech.com
droidd.ru
また、多くの記事はAndroid SDKを入れないと adb と fastboot は利用できないと書いているように思えるがパッケージのみ入れるだけで使える。
$ sudo apt install android-tools-adb
$ sudo apt install android-tools-fastboot
次にapkファイルは、やはりなんでも良いという訳では無い。基本的には Architecture が x86 または arm64 に対応していれば動くらしい。
apkファイルが沢山あるところ:
www.apkmirror.com
apkファイルが手に入ったら、これでインストール。
$ adb start-server
$ adb install file.apk
使用例)
f:id:Zarat:20190706153312p:plain
ダウンロードしたapkファイルは大分ファイル名が長い。Successと表示されればインストール完了。arm64と記載されていても軽く確認した中では成功するものが見つからなかった。
インストールに成功すればanboxに追加される。
f:id:Zarat:20190706153758p:plain
インストールに成功しても起動しないアプリが多くあるので注意
ここら辺は今後のanboxに期待するしかないだろう。
もしかしたら危険なアプリもあるかもしれないが、そこら辺は当サイトは責任を負いませんということで。
ii)Google Playを入れる
イ)事前に必要なものをインストール
やっぱ正規のストアのGoogle Playの方が安心だよねってことで入れていく。
まず、Google Playストアをインストールするためのインストールが必要である。必要とされるのは、wget , lzip , unzip squashfs-tools の4つ。Ubuntu18.04.02 LTS にはこれらのパッケージはlzip以外デフォルトで入っている。使用環境に含まれているか一応確認した方が良い。
(追記)curlも必要なのでcurl、も入れる。
以下まとめてインストールするコマンドを記述しておく
$ sudo apt install wget lzip unzip squashfs-tools curl
補足:
lzipについて:
www.nongnu.org
gzipと同じくらい早く復元でき、bzip2よりも効率よく圧縮できるらしい。でも使ってる人あまり見かけない。
squashfs-toolsについて:
qiita.com
nopipi.hatenablog.com
おそらくSquashfsイメージで配布しているlibhoudiniを利用するため。
ロ)Google Playストア、libhoudiniをインストール
$ wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
#ダウンロードしてインストールしてくれるシェルスクリプトをダウンロードしてる
$ chmod +x install-playstore.sh
$ sudo ./install-playstore.sh
割と時間がかかる。自分は10分ほど。
終わったら一度起動して、
$ anbox.appmgr
ハ)Google Play Services,Google Play Storeに権限を与える
Settings -> Apps -> Google Play Services -> Permissionsで権限を与えてあげて。同様にSettings -> Apps -> Google Play Store-> Permissionsで権限を与える。 そしてGoogle Play Storeにログインする。ログインは必ず権限を全て与えてから。ログイン後には権限を減らすことができる。
あと何故か日本語キーだったのがログインのときだけUSキーになった。
これでGoogle Play Storeが使えるぞ
f:id:Zarat:20190706163549p:plain
しかし、Google Play Storeが使えるからと言って全てのアプリが使える訳ではない。というか使えるアプリが少ない。ほとんどのアプリはインストールできない、インストールに成功しても起動しないなど、このエミュレータは我々に根気強さを求めているのか(錯乱)。
x86に対応していると分かるapkファイルから入れる方がインストール成功の可能性は高いと思われる。Google Play Storeを選ぶのは負けなのでは。
補足:
権限を全て与えてもログイン失敗する場合は
$ sudo /snap/anbox/current/bin/anbox-bridge.sh start
したり、
$ sudo /snap/anbox/current/bin/anbox-bridge.sh restart
すると良いらしい。これらは参考リンクにも記載されている。また、Google Play StoreをAnboxで使うのにdnsmasqパッケージが必要だという人もいるみたいだが、Ubuntu Desktop 18.04.2 LTSでは要らなかった。
libhoudiniについて:
wiki.onakasuita.org
arekorebibouroku.hateblo.jp
これが在ればarm64対応のアプリをx86でも動かせるということだと思われる。逆にこれが無いと動かないのではと思っているがどうなのだろう。
前回の記事ではapktoolについて紹介した。
apktoolについて調査しているときにLinux上のAndroidエミュレータは、どんなものがあるのか気になったので調べてみた。
調べた中で最も興味の湧いたLinuxのandroidエミュレータを紹介させていただく。
Anbox(Android in a Box)
一応snapについて:
Anboxをインストール
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
一応PPAについて:
ii)インストールしたカーネルモジュールをロードする
iii)ノードがあるか確認
2.Anboxをsnapでインストール
X.アンインストールする場合
Anboxを起動
i)apkファイルを直接インストール
ii)Google Playを入れる
イ)事前に必要なものをインストール
lzipについて:
squashfs-toolsについて:
ロ)Google Playストア、libhoudiniをインストール
ハ)Google Play Services,Google Play Storeに権限を与える
libhoudiniについて:
最後に
参考
Anbox(Android in a Box)
github.com
無料で使えるLinux上のAndroidエミュレータ。多くのAndroidエミュレータは仮想的にAndoroid環境を使ってシステムをエミュレートするが、AnboxはホストOSと同じカーネルでAndroidシステムを動かす。なので仮想的に環境を構築するより動作が軽い。ただホストOSと同じカーネルを利用するせいなのか全てのアプリが使える訳ではない。
記事の執筆時はβ版として提供されている。この記事を書いた時点で公式がサポートしているLinuxディストリビューションは、Ubuntu 16.04(xenial) ,Ubuntu 18.04(bionic)の二つのみである。しかし、snapが使えるディストリビューションではおそらく動作すると思われる。(Debian系でもいけるらしい)
一応snapについて:
news.mynavi.jp
jp.techcrunch.com
kledgeb.blogspot.com
www.nowhere.co.jp
ついでにsnapアプリのストアのようなもの
uappexplorer.com
Anboxをインストール
github.com
早速Anboxをインストールしてみる。今回は2019/07/04時点で最新の
Ubuntu Desktop 18.04.2 LTS
をVirtualBoxに入れて(仮想RAM 4096MB,仮想HDD 64GB)でやっていく。
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install anbox-modules-dkms
一応PPAについて:
allabout.co.jp
kazuhira-r.hatenablog.com
gihyo.jp
cloud-work.net
ii)インストールしたカーネルモジュールをロードする
$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux
iii)ノードがあるか確認
$ ls -l /dev/{ashmem,binder}
/dev/ashmem
/dev/binder
2.Anboxをsnapでインストール
snapが無い場合のインストールについてはsnapに関する上記リンクを参照して頂きたい。また、snapを持っていても更新の確認をおすすめする。では、snapでAnboxをインストール。
$ sudo snap install --devmode --beta anbox
10分くらい時間がかかる。
また、新しいバージョンへのアップデートは自動では行われないのでコマンドで行う必要がある。
Anbox更新コマンド:
$ snap refresh --beta --devmode anbox
最新の情報についてはこのコマンド:
$ snap info anbox
X.アンインストールする場合
$ snap remove anbox
※このコマンドではanboxに関する全てのデータが消えてしまい元に戻らないようなので注意。
また、anboxをアンインストールするならばインストールしたカーネルなども削除すべきなので、
$ sudo apt install ppa-purge
$ sudo ppa-purge ppa:morphis/anbox-support
Anboxを起動
ここまで来ればあとは起動するだけ!コマンドラインに以下を入力!
$ anbox.appmgr
起動が成功すればこんな感じ↓
f:id:Zarat:20190706145157p:plain
普通のandroidエミュレータと違って画面がウインドウをのように使えるのが良い。あとはエミュレータのはずなのに操作がサクサクなのが良い(使用環境によるだろうが比較的軽いハズ)。
あと、何故か分からないけれど右クリックは通じるけど左クリックが通じないボタンがある。
よし!じゃあ早速何ができるか遊んでみるか!
んっ?Google Playが無いだとぉぉぉ?!
\(^o^)/オワタ
そんなあなたには二つの道があります。
それは、
i)エンジニアならばやはりCUIじゃけん。コマンドラインでapkをインストールするんじゃ。
ii)スマートに効率的にGUIでインストールしたい。やっぱGoogle Playストア入れるっきゃないでしょ。
ということで順番に見ていく。
i)apkファイルを直接インストール
apkファイルを持ってきてインストールするには adb と fastboot 二つのパッケージが必要だと思われます。(adbは絶対必要だが、fastbootはよく分かってない。たぶん含まれているライブラリが必要なのだと思われる。)
Android Debug Bridge | Android Developers
tek2tech.com
droidd.ru
また、多くの記事はAndroid SDKを入れないと adb と fastboot は利用できないと書いているように思えるがパッケージのみ入れるだけで使える。
$ sudo apt install android-tools-adb
$ sudo apt install android-tools-fastboot
次にapkファイルは、やはりなんでも良いという訳では無い。基本的には Architecture が x86 または arm64 に対応していれば動くらしい。
apkファイルが沢山あるところ:
www.apkmirror.com
apkファイルが手に入ったら、これでインストール。
$ adb start-server
$ adb install file.apk
使用例)
f:id:Zarat:20190706153312p:plain
ダウンロードしたapkファイルは大分ファイル名が長い。Successと表示されればインストール完了。arm64と記載されていても軽く確認した中では成功するものが見つからなかった。
インストールに成功すればanboxに追加される。
f:id:Zarat:20190706153758p:plain
インストールに成功しても起動しないアプリが多くあるので注意
ここら辺は今後のanboxに期待するしかないだろう。
もしかしたら危険なアプリもあるかもしれないが、そこら辺は当サイトは責任を負いませんということで。
ii)Google Playを入れる
イ)事前に必要なものをインストール
やっぱ正規のストアのGoogle Playの方が安心だよねってことで入れていく。
まず、Google Playストアをインストールするためのインストールが必要である。必要とされるのは、wget , lzip , unzip squashfs-tools の4つ。Ubuntu18.04.02 LTS にはこれらのパッケージはlzip以外デフォルトで入っている。使用環境に含まれているか一応確認した方が良い。
(追記)curlも必要なのでcurl、も入れる。
以下まとめてインストールするコマンドを記述しておく
$ sudo apt install wget lzip unzip squashfs-tools curl
補足:
lzipについて:
www.nongnu.org
gzipと同じくらい早く復元でき、bzip2よりも効率よく圧縮できるらしい。でも使ってる人あまり見かけない。
squashfs-toolsについて:
qiita.com
nopipi.hatenablog.com
おそらくSquashfsイメージで配布しているlibhoudiniを利用するため。
ロ)Google Playストア、libhoudiniをインストール
$ wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
#ダウンロードしてインストールしてくれるシェルスクリプトをダウンロードしてる
$ chmod +x install-playstore.sh
$ sudo ./install-playstore.sh
割と時間がかかる。自分は10分ほど。
終わったら一度起動して、
$ anbox.appmgr
ハ)Google Play Services,Google Play Storeに権限を与える
Settings -> Apps -> Google Play Services -> Permissionsで権限を与えてあげて。同様にSettings -> Apps -> Google Play Store-> Permissionsで権限を与える。 そしてGoogle Play Storeにログインする。ログインは必ず権限を全て与えてから。ログイン後には権限を減らすことができる。
あと何故か日本語キーだったのがログインのときだけUSキーになった。
これでGoogle Play Storeが使えるぞ
f:id:Zarat:20190706163549p:plain
しかし、Google Play Storeが使えるからと言って全てのアプリが使える訳ではない。というか使えるアプリが少ない。ほとんどのアプリはインストールできない、インストールに成功しても起動しないなど、このエミュレータは我々に根気強さを求めているのか(錯乱)。
x86に対応していると分かるapkファイルから入れる方がインストール成功の可能性は高いと思われる。Google Play Storeを選ぶのは負けなのでは。
補足:
権限を全て与えてもログイン失敗する場合は
$ sudo /snap/anbox/current/bin/anbox-bridge.sh start
したり、
$ sudo /snap/anbox/current/bin/anbox-bridge.sh restart
すると良いらしい。これらは参考リンクにも記載されている。また、Google Play StoreをAnboxで使うのにdnsmasqパッケージが必要だという人もいるみたいだが、Ubuntu Desktop 18.04.2 LTSでは要らなかった。
libhoudiniについて:
wiki.onakasuita.org
arekorebibouroku.hateblo.jp
これが在ればarm64対応のアプリをx86でも動かせるということだと思われる。逆にこれが無いと動かないのではと思っているがどうなのだろう。
最後に
エミュレータなのに仮想環境ではなく、同じカーネル上で面白いと思って手を出してみた。実際、サクサク動いたし楽しかったけど、それは初めだけだった希ガス。
結論
Linuxでandroidエミュレータやらなくていい。今後に期待。
参考
baker-street.jugem.jp
www.fosslinux.com
baker-street.jugem.jp
www.linuxuprising.com
最後に
エミュレータなのに仮想環境ではなく、同じカーネル上で面白いと思って手を出してみた。実際、サクサク動いたし楽しかったけど、それは初めだけだった希ガス。
結論
Linuxでandroidエミュレータやらなくていい。今後に期待。
参考
baker-street.jugem.jp
www.fosslinux.com
baker-street.jugem.jp
www.linuxuprising.com
エミュレータなのに仮想環境ではなく、同じカーネル上で面白いと思って手を出してみた。実際、サクサク動いたし楽しかったけど、それは初めだけだった希ガス。
前回の記事ではapktoolについて紹介した。
apktoolについて調査しているときにLinux上のAndroidエミュレータは、どんなものがあるのか気になったので調べてみた。
調べた中で最も興味の湧いたLinuxのandroidエミュレータを紹介させていただく。
Anbox(Android in a Box)
一応snapについて:
Anboxをインストール
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
一応PPAについて:
ii)インストールしたカーネルモジュールをロードする
iii)ノードがあるか確認
2.Anboxをsnapでインストール
X.アンインストールする場合
Anboxを起動
i)apkファイルを直接インストール
ii)Google Playを入れる
イ)事前に必要なものをインストール
lzipについて:
squashfs-toolsについて:
ロ)Google Playストア、libhoudiniをインストール
ハ)Google Play Services,Google Play Storeに権限を与える
libhoudiniについて:
最後に
参考
Anbox(Android in a Box)
github.com
無料で使えるLinux上のAndroidエミュレータ。多くのAndroidエミュレータは仮想的にAndoroid環境を使ってシステムをエミュレートするが、AnboxはホストOSと同じカーネルでAndroidシステムを動かす。なので仮想的に環境を構築するより動作が軽い。ただホストOSと同じカーネルを利用するせいなのか全てのアプリが使える訳ではない。
記事の執筆時はβ版として提供されている。この記事を書いた時点で公式がサポートしているLinuxディストリビューションは、Ubuntu 16.04(xenial) ,Ubuntu 18.04(bionic)の二つのみである。しかし、snapが使えるディストリビューションではおそらく動作すると思われる。(Debian系でもいけるらしい)
一応snapについて:
news.mynavi.jp
jp.techcrunch.com
kledgeb.blogspot.com
www.nowhere.co.jp
ついでにsnapアプリのストアのようなもの
uappexplorer.com
Anboxをインストール
github.com
早速Anboxをインストールしてみる。今回は2019/07/04時点で最新の
Ubuntu Desktop 18.04.2 LTS
をVirtualBoxに入れて(仮想RAM 4096MB,仮想HDD 64GB)でやっていく。
1.インストールに必要なカーネルモジュールを入れる
i)UbuntuにAnboxのPPAを加え、PPA経由でanbox-module-dkmsをインストール
$ sudo add-apt-repository ppa:morphis/anbox-support
$ sudo apt update
$ sudo apt install anbox-modules-dkms
一応PPAについて:
allabout.co.jp
kazuhira-r.hatenablog.com
gihyo.jp
cloud-work.net
ii)インストールしたカーネルモジュールをロードする
$ sudo modprobe ashmem_linux
$ sudo modprobe binder_linux
iii)ノードがあるか確認
$ ls -l /dev/{ashmem,binder}
/dev/ashmem
/dev/binder
2.Anboxをsnapでインストール
snapが無い場合のインストールについてはsnapに関する上記リンクを参照して頂きたい。また、snapを持っていても更新の確認をおすすめする。では、snapでAnboxをインストール。
$ sudo snap install --devmode --beta anbox
10分くらい時間がかかる。
また、新しいバージョンへのアップデートは自動では行われないのでコマンドで行う必要がある。
Anbox更新コマンド:
$ snap refresh --beta --devmode anbox
最新の情報についてはこのコマンド:
$ snap info anbox
X.アンインストールする場合
$ snap remove anbox
※このコマンドではanboxに関する全てのデータが消えてしまい元に戻らないようなので注意。
また、anboxをアンインストールするならばインストールしたカーネルなども削除すべきなので、
$ sudo apt install ppa-purge
$ sudo ppa-purge ppa:morphis/anbox-support
Anboxを起動
ここまで来ればあとは起動するだけ!コマンドラインに以下を入力!
$ anbox.appmgr
起動が成功すればこんな感じ↓
f:id:Zarat:20190706145157p:plain
普通のandroidエミュレータと違って画面がウインドウをのように使えるのが良い。あとはエミュレータのはずなのに操作がサクサクなのが良い(使用環境によるだろうが比較的軽いハズ)。
あと、何故か分からないけれど右クリックは通じるけど左クリックが通じないボタンがある。
よし!じゃあ早速何ができるか遊んでみるか!
んっ?Google Playが無いだとぉぉぉ?!
\(^o^)/オワタ
そんなあなたには二つの道があります。
それは、
i)エンジニアならばやはりCUIじゃけん。コマンドラインでapkをインストールするんじゃ。
ii)スマートに効率的にGUIでインストールしたい。やっぱGoogle Playストア入れるっきゃないでしょ。
ということで順番に見ていく。
i)apkファイルを直接インストール
apkファイルを持ってきてインストールするには adb と fastboot 二つのパッケージが必要だと思われます。(adbは絶対必要だが、fastbootはよく分かってない。たぶん含まれているライブラリが必要なのだと思われる。)
Android Debug Bridge | Android Developers
tek2tech.com
droidd.ru
また、多くの記事はAndroid SDKを入れないと adb と fastboot は利用できないと書いているように思えるがパッケージのみ入れるだけで使える。
$ sudo apt install android-tools-adb
$ sudo apt install android-tools-fastboot
次にapkファイルは、やはりなんでも良いという訳では無い。基本的には Architecture が x86 または arm64 に対応していれば動くらしい。
apkファイルが沢山あるところ:
www.apkmirror.com
apkファイルが手に入ったら、これでインストール。
$ adb start-server
$ adb install file.apk
使用例)
f:id:Zarat:20190706153312p:plain
ダウンロードしたapkファイルは大分ファイル名が長い。Successと表示されればインストール完了。arm64と記載されていても軽く確認した中では成功するものが見つからなかった。
インストールに成功すればanboxに追加される。
f:id:Zarat:20190706153758p:plain
インストールに成功しても起動しないアプリが多くあるので注意
ここら辺は今後のanboxに期待するしかないだろう。
もしかしたら危険なアプリもあるかもしれないが、そこら辺は当サイトは責任を負いませんということで。
ii)Google Playを入れる
イ)事前に必要なものをインストール
やっぱ正規のストアのGoogle Playの方が安心だよねってことで入れていく。
まず、Google Playストアをインストールするためのインストールが必要である。必要とされるのは、wget , lzip , unzip squashfs-tools の4つ。Ubuntu18.04.02 LTS にはこれらのパッケージはlzip以外デフォルトで入っている。使用環境に含まれているか一応確認した方が良い。
(追記)curlも必要なのでcurl、も入れる。
以下まとめてインストールするコマンドを記述しておく
$ sudo apt install wget lzip unzip squashfs-tools curl
補足:
lzipについて:
www.nongnu.org
gzipと同じくらい早く復元でき、bzip2よりも効率よく圧縮できるらしい。でも使ってる人あまり見かけない。
squashfs-toolsについて:
qiita.com
nopipi.hatenablog.com
おそらくSquashfsイメージで配布しているlibhoudiniを利用するため。
ロ)Google Playストア、libhoudiniをインストール
$ wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
#ダウンロードしてインストールしてくれるシェルスクリプトをダウンロードしてる
$ chmod +x install-playstore.sh
$ sudo ./install-playstore.sh
割と時間がかかる。自分は10分ほど。
終わったら一度起動して、
$ anbox.appmgr
ハ)Google Play Services,Google Play Storeに権限を与える
Settings -> Apps -> Google Play Services -> Permissionsで権限を与えてあげて。同様にSettings -> Apps -> Google Play Store-> Permissionsで権限を与える。 そしてGoogle Play Storeにログインする。ログインは必ず権限を全て与えてから。ログイン後には権限を減らすことができる。
あと何故か日本語キーだったのがログインのときだけUSキーになった。
これでGoogle Play Storeが使えるぞ
f:id:Zarat:20190706163549p:plain
しかし、Google Play Storeが使えるからと言って全てのアプリが使える訳ではない。というか使えるアプリが少ない。ほとんどのアプリはインストールできない、インストールに成功しても起動しないなど、このエミュレータは我々に根気強さを求めているのか(錯乱)。
x86に対応していると分かるapkファイルから入れる方がインストール成功の可能性は高いと思われる。Google Play Storeを選ぶのは負けなのでは。
補足:
権限を全て与えてもログイン失敗する場合は
$ sudo /snap/anbox/current/bin/anbox-bridge.sh start
したり、
$ sudo /snap/anbox/current/bin/anbox-bridge.sh restart
すると良いらしい。これらは参考リンクにも記載されている。また、Google Play StoreをAnboxで使うのにdnsmasqパッケージが必要だという人もいるみたいだが、Ubuntu Desktop 18.04.2 LTSでは要らなかった。
libhoudiniについて:
wiki.onakasuita.org
arekorebibouroku.hateblo.jp
これが在ればarm64対応のアプリをx86でも動かせるということだと思われる。逆にこれが無いと動かないのではと思っているがどうなのだろう。
最後に
エミュレータなのに仮想環境ではなく、同じカーネル上で面白いと思って手を出してみた。実際、サクサク動いたし楽しかったけど、それは初めだけだった希ガス。
結論
Linuxでandroidエミュレータやらなくていい。今後に期待。
参考
baker-street.jugem.jp
www.fosslinux.com
baker-street.jugem.jp
www.linuxuprising.com
結論
Linuxでandroidエミュレータやらなくていい。今後に期待。
参考
baker-street.jugem.jp
www.fosslinux.com
baker-street.jugem.jp
www.linuxuprising.com
ル上で面白いと思って手を出してみた。実際、サクサク動いたし楽しかったけど、それは初めだけだった希ガス。
結論
参考
0 コメント:
コメントを投稿