2019年12月4日水曜日

LinuxのAndroidエミュレータ Anboxを試してみる。後から、Google Playもインストール出来ます。

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について紹介した。
apktoolについて調査しているときにLinux上のAndroidエミュレータは、どんなものがあるのか気になったので調べてみた。
調べた中で最も興味の湧いたLinuxandroidエミュレータを紹介させていただく。

Anbox(Android in a Box)

無料で使えるLinux上のAndroidエミュレータ。多くのAndroidエミュレータは仮想的にAndoroid環境を使ってシステムをエミュレートするが、AnboxはホストOSと同じカーネルAndroidシステムを動かす。なので仮想的に環境を構築するより動作が軽い。ただホストOSと同じカーネルを利用するせいなのか全てのアプリが使える訳ではない。
記事の執筆時はβ版として提供されている。この記事を書いた時点で公式がサポートしているLinuxディストリビューションは、Ubuntu 16.04(xenial) ,Ubuntu 18.04(bionic)の二つのみである。しかし、snapが使えるディストリビューションではおそらく動作すると思われる。(Debian系でもいけるらしい)
一応snapについて:
ついでにsnapアプリのストアのようなもの

Anboxをインストール

早速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について:
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 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
使用例)
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について:
gzipと同じくらい早く復元でき、bzip2よりも効率よく圧縮できるらしい。でも使ってる人あまり見かけない。
squashfs-toolsについて:
 おそらくSquashfsイメージで配布しているlibhoudiniを利用するため。
ロ)Google Playストア、libhoudiniをインストール
#ダウンロードしてインストールしてくれるシェルスクリプトをダウンロードしてる
$ 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について:

 これが在れば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

 上で面白いと思って手を出してみた。実際、サクサク動いたし楽しかったけど、それは初めだけだった希ガス
結論
Linuxandroidエミュレータやらなくていい。今後に期待。

参考



0 コメント:

コメントを投稿