安卓运行环境Anbox安装/编译说明(20190426)
Tofloor
poster avatar
MobeiSiran
deepin
2019-04-16 20:18
Author
本帖最后由 MobeiSiran 于 2019-4-26 22:44 编辑

1、编译安装Anbox
  1. sudo apt install build-essential cmake cmake-data debhelper dbus google-mock libboost-dev libboost-filesystem-dev libboost-log-dev libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-test-dev libboost-thread-dev libcap-dev libsystemd-dev libegl1-mesa-dev libgles2-mesa-dev libglm-dev libgtest-dev liblxc1 libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev lxc-dev libdw-dev libbfd-dev libdwarf-dev pkg-config protobuf-compiler
Copy the Code
  1. git clone https://github.com/anbox/anbox.git
  2. cd anbox
  3. mkdir build
  4. cd build
  5. cmake ..
  6. make
  7. sudo make install
Copy the Code

2、添加安卓镜像文件
  1. sudo wget -P /var/lib/anbox -O android.img https://build.anbox.io/android-images/2018/07/19/android_amd64.img
Copy the Code

3、添加内核模块支持
  1. wget http://ppa.launchpad.net/morphis/anbox-support/ubuntu/pool/main/a/anbox-modules/anbox-modules-dkms_13_all.deb && sudo dpkg -i anbox-modules-dkms_13_all.deb
Copy the Code

4、添加systemd服务
  1. [Unit]
  2. Description=Anbox Container Manager
  3. After=network.target
  4. Wants=network.target
  5. ConditionPathExists=/var/lib/anbox/android.img

  6. [Service]
  7. ExecStartPre=/sbin/modprobe ashmem_linux
  8. ExecStartPre=/sbin/modprobe binder_linux
  9. ExecStart=/usr/local/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/var/lib/anbox/android.img --use-rootfs-overlay

  10. [Install]
  11. WantedBy=multi-user.target
Copy the Code
注:将此部分内容添加至/lib/systemd/system/anbox-container-manager.service。可选项:
--data-path                              ;容器及数据路径
--android-img                           ;安卓根文件系统镜像路径,默认为--data-path + /android.img
--privileged                              ;特权模式
--daemon                                ;标记为系统守护进程
--use-rootfs-overlay                  ;启用overlayfs
--container-network-address      ;指定网络地址
--container-network-gateway     ;指定网关
--container-network-dns-servers ;指定域名服务

5、启动Anbox Container服务
  1. sudo systemctl start anbox-container-manager
Copy the Code

6、修正媒体播放功能
此部分内容已合并至第七步
注:将此内容添加至/var/lib/anbox/rootfs-overlay/system/etc/media_codecs.xml

7、添加libhoudini
下载链接:
  1. https://pan.baidu.com/s/12YjELsOfTXIYOXZ6gyCvfA
Copy the Code
提取码: 2adi
文件下载完成后,进入文件所在目录,执行以下命令
  1. sudo rm -r /var/lib/anbox/rootfs-overlay
  2. sudo unsquashfs -d /var/lib/anbox/rootfs-overlay/ overlay.sfs
Copy the Code

8、添加桌面文件
  1. [Desktop Entry]
  2. Name=Anbox
  3. GenericName=Application Manager
  4. Comment=Android in a box
  5. Version=1.0
  6. Type=Application
  7. Icon=anbox
  8. Exec=anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
  9. Terminal=false
  10. Keywords=android;container;
  11. Categories=Utility;
Copy the Code
注:将以上内容添加至/usr/share/applications/anbox.desktop

9、建立网络连接
  1. nmcli con add type bridge ifname anbox0 -- connection.id anbox-net ipv4.method shared ipv4.addresses 192.168.250.1/24
Copy the Code

10、添加anbox-session-manager服务(可选)
  1. [Unit]
  2. Description=Anbox Session Manager

  3. [Service]
  4. ExecStart=/usr/local/bin/anbox session-manager

  5. [Install]
  6. WantedBy=default.target
Copy the Code
注:将以上内容添加至/usr/lib/systemd/user/anbox-session-manager.service;
可选项:
--software-rendering      ;使用软件渲染替代硬件加速GL渲染
--single-window             ;单窗口模式
--window-size                ;单窗口模式窗体大小 --window-size=1027,768
--standalone                  ;阻止默认容器启动
--use-system-dbus          ;使用系统的DBus
--experimental                ;启用实验性功能
--desktop_file_hint          ;在QtMir/Unity8上隐藏桌面文件

11、设置anbox服务自动运行(可选)
  1. sudo systemctl enable anbox-container-manager
  2. sudo systemctl enable anbox-session-manager --user
Copy the Code

12、anbox shell
在anbox session manager启动后,可通过adb shell命令进入。也可通过lxc-attach来访问容器。
  1. sudo lxc-attach \
  2.     -q \
  3.     --clear-env \
  4.     -P /var/lib/anbox/containers \
  5.     -n default \
  6.     -v PATH=/sbin:/system/bin:/system/sbin:/system/xbin \
  7.     -v ANDROID_ASSETS=/assets \
  8.     -v ANDROID_DATA=/data \
  9.     -v ANDROID_ROOT=/system \
  10.     -v ANDROID_STORAGE=/storage \
  11.     -v ASEC_MOUNTPOINT=/mnt/asec \
  12.     -v EXTERNAL_STORAGE=/sdcard -- /system/bin/sh
Copy the Code
注:可将此命令保存到/usr/local/bin/anbox-shell,而后只需要在终端中输入anbox-shell即可进入。注意添加执行权限
  1. sudo chmod a+x /usr/local/bin/anbox-shell
Copy the Code

13、deb安装
下载链接,下载其中版本号最新的安装包。当前是anbox_0.1.1~git20190307-deepin_amd64.deb
  1. https://pan.baidu.com/s/1NpyPs8Utf9XIbfBSFXfyBg
Copy the Code
提取码: 98xu如果没安装内核模块请参考第3步添加,如果安装出现依赖问题,可能是缺少dkms这个包,那么请通过以下代码安装dkms(应该都有的)
  1. sudo apt install dkms
Copy the Code

14、已确定基本功能能够正常使用的应用程序:
(1)、腾讯TIM
(2)、微信
(3)、华为音乐
(4)、QQ HD(无法验证登录)
(5)、QQ音乐车机版、电视版、手机版
(6)、ES文件管理器
(7)、星辰浏览器HD
(8)、WPS(不可登录)
(9)、终端模拟器
(10)、百度贴吧

注:针对/var/lib/anbox/rootfs-overlay的操作一般只有在重启anbox-container-manager服务后才会生效。
  1. sudo systemctl reboot anbox-container-manager
Copy the Code

日志:
2019年4月18日,修正arm翻译器问题。原方法根据基于snap的anbox脚本得来,发现无用。
2019年4月19日,已将应用打包成deb,方便直接安装。打包参考了debian软件源内的anbox_0.0_git20190124-1_amd64.deb。
2019年4月20日,修复了deb安装包依赖问题。文件正在上传,文件是anbox_0.1.1~git20190307-deepin_amd64.deb。
2019年4月26日,同步了github上master分支源码,打包了新的deb安装包,文件是anbox_0.2~git20190424-deepin_amd64.deb。该版本修复了vpn及部分软件闪退问题。

中文输入请使用粘贴功能

扫描下方二维码,对我进行赞助





Reply Favorite View the author
All Replies
1 / 3
To page
avatar
咿呀
deepin
2019-04-17 00:49
#1
你好,请问为啥我的/var/lib/  下没有anbox文件夹呀。我是一步一步按照这个走的。然后这个文件anbox-container-manager.service也是我手动新建的
/var/lib/anbox/rootfs-overlay/system/etc/media_codecs.xml 这个文件我也是手动新建以及手动新建它的文件路径。最后anbox只是starting在就自动关闭了。
希望大佬帮忙解决一下下


Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 01:44
#2
https://bbs.deepin.org/post/176820
你好,请问为啥我的/var/lib/  下没有anbox文件夹呀。我是一步一步按照这个走的。然后这个文件anbox-contai ...

自己建一个吧
Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 01:52
#3
https://bbs.deepin.org/post/176820
你好,请问为啥我的/var/lib/  下没有anbox文件夹呀。我是一步一步按照这个走的。然后这个文件anbox-contai ...

还有你看一下 systemctl status anbox-container-manager.service 是不是正常启动的
Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 02:01
#4
https://bbs.deepin.org/post/176820
你好,请问为啥我的/var/lib/  下没有anbox文件夹呀。我是一步一步按照这个走的。然后这个文件anbox-contai ...

哦,你的可能是没有anbox需要的内核模块,下载这个包安装
  1. http://ppa.launchpad.net/morphis/anbox-support/ubuntu/pool/main/a/anbox-modules/anbox-modules-dkms_13_all.deb
Copy the Code
Reply View the author
avatar
咿呀
deepin
2019-04-17 05:57
#5
本帖最后由 geniusking 于 2019-4-16 21:59 编辑
https://bbs.deepin.org/post/176820
还有你看一下 systemctl status anbox-container-manager.service 是不是正常启动的
好像是服务死掉了



Reply View the author
avatar
咿呀
deepin
2019-04-17 05:59
#6
https://bbs.deepin.org/post/176820
哦,你的可能是没有anbox需要的内核模块,下载这个包安装

已经安装了还是
Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 07:53
#7
geniusking 发表于 2019-4-16 21:59
已经安装了还是

终端运行anbox session-manager看看有什么反应
Reply View the author
avatar
zlf1039
deepin
2019-04-17 10:33
#8
安装完成后启动music应用后,软件闪退,之后重启电脑,启动anbox加载一会儿闪退。
安装方法是https://bbs.deepin.org/post/176820#page%3D1

zlf@deepin:~/.local/share/applications/anbox$ anbox session-manager
[ 2019-04-16 18:33:18] [daemon.cpp:61@Run] Failed to connect to socket /run/anbox-container.socket: No such file or directory


Reply View the author
avatar
zlf1039
deepin
2019-04-17 10:42
#9
https://dev.tencent.com/s/673d0a69-7215-4c2d-b1a6-546113e9c8ba 这个下载不了啊
Reply View the author
avatar
咿呀
deepin
2019-04-17 18:28
#10
https://bbs.deepin.org/post/176820
终端运行anbox session-manager看看有什么反应

多谢回复,这个是个麻烦问题,在github的anbox下也有这个问题但是还没有解决。不知你是否有办法

Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 20:06
#11
https://bbs.deepin.org/post/176820
多谢回复,这个是个麻烦问题,在github的anbox下也有这个问题但是还没有解决。不知你是否有办法

...

你这个很明显是anbox-container-manager这个服务没有启动,在终端运行
  1. sudo /usr/local/bin/anbox container-manager --privileged --data-path=/var/lib/anbox --use-rootfs-overlay
Copy the Code
看看有什么反应
Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 20:10
#12
https://bbs.deepin.org/post/176820
你这个很明显是anbox-container-manager这个服务没有启动,在终端运行看看有什么反应 ...

还不行的话你试试用
  1. sudo /usr/local/bin/anbox container-manager  --privileged --data-path=/var/lib/anbox --use-rootfs-overlay --android-image=/var/lib/anbox/android.img
Copy the Code
Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 20:11
#13
https://bbs.deepin.org/post/176820
你这个很明显是anbox-container-manager这个服务没有启动,在终端运行看看有什么反应 ...

还不行的话你试试用
  1. sudo /usr/local/bin/anbox container-manager  --privileged --data-path=/var/lib/anbox --use-rootfs-overlay --android-image=/var/lib/anbox/android.img
Copy the Code
Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 20:23
#14
https://bbs.deepin.org/post/176820
安装完成后启动music应用后,软件闪退,之后重启电脑,启动anbox加载一会儿闪退。
安装方法是https://bbs.d ...

[Unit]
Description=Anbox Container Manager
After=network.target
Wants=network.target
ConditionPathExists=/var/lib/anbox/android.img

[Service]
ExecStartPre=/sbin/modprobe ashmem_linux
ExecStartPre=/sbin/modprobe binder_linux
ExecStart=/usr/local/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --android-image=/var/lib/anbox/android.img --use-rootfs-overlay

[Install]
WantedBy=multi-user.target
Reply View the author
avatar
咿呀
deepin
2019-04-17 21:10
#15
https://bbs.deepin.org/post/176820
还不行的话你试试用

嗯,可以了真是感谢。
music有点问题,点击后anbox就直接关闭了,不过不影响

Reply View the author
avatar
MobeiSiran
deepin
2019-04-17 21:36
#16
https://bbs.deepin.org/post/176820
嗯,可以了真是感谢。
music有点问题,点击后anbox就直接关闭了,不过不影响

音乐推荐使用华为音乐,目前我试过的就这个能
Reply View the author
avatar
咿呀
deepin
2019-04-17 21:51
#17
https://bbs.deepin.org/post/176820
音乐推荐使用华为音乐,目前我试过的就这个能

                              
Reply View the author
avatar
风吹过的绿洲
deepin
2019-04-18 07:38
#18
anbox使用体验怎么样?比起xdroid呢?我感觉xdroid占用CPU太高,卡。。。
Reply View the author
avatar
zlf1039
deepin
2019-04-18 09:24
#19
目前就是可以安装软件和游戏了,就是安装后启动不了,只有看一眼了。

安装了一个QQHD 版,启动后输入账号和密码,点击登录,一直在登录界面加载,就是加载不出来
Reply View the author
avatar
MobeiSiran
deepin
2019-04-18 20:26
#20
https://bbs.deepin.org/post/176820
目前就是可以安装软件和游戏了,就是安装后启动不了,只有看一眼了。

安装了一个QQHD 版,启动后输入账号 ...

QQHD的话,只有登录不需要验证的才能登陆,需要验证的在验证那一步会出问题。你多试几次
Reply View the author
1 / 3
To page