飞腾FT2000+/64服务器上如何运行Anbox
1. Anbox介绍
Anbox是Android in a Box的缩写,将安卓操作系统放入一个LXC容器中,将硬件访问进行抽象,将核心系统服务整合到GNU/Linux系统中。每个安卓应用都可以像原生应用一样整合到宿主操作系统中。
硬件抽象:
容器中的安卓不能直接访问任何硬件。所有硬件的访问都要通过宿主机上anbox守护进程。容器中的安卓系统用不同的管道和宿主机通信,并通过这些管道发送硬件访问命令。
1.1 snaps
在GNU/Linux宿主操作系统上安装Anbox之前,要求宿主操作系统安装了snaps。Snaps是一种适用于桌面、云和物联网环境的应用安装包方式,这种方式使得应用安装方便快捷、具有安全性、跨平台性、以及依赖无关性。
snap有四个基本概念:
- snap 命令行接口和应用包格式
- snapd 管理和维护snap的后台服务
- snapcraft 构建一个新的snap框架和命令
- Snap Store 用于上传snap应用,供给用户浏览和下载的商店
我们仅仅需要理解snap和snapd的概念。
1.2 Anbox安装
Anbox的安装主要包括两个步骤:
- 必要的内核模块,内核版本在4.17之后已经集成比较完善,建议采用高版本内核
参见两个内核配置文件:
- linux/drivers/android/Kconfig
- linux/drivers/staging/android/Kconfig
成功后可以
查看ls -l /dev/{ashmem, binder}
或者ls -l /dev/{ashmem, binderfs}
binderfs需要手动挂载
sudo mkdir /dev/binderfs
mount -t binder none /dev/binderfs
- Anbox snap编译安装
2.1 依赖软件的安装
2.2 CMake请安装高版本3.18.x
2.3 anbox下载安装
下载方式git clone https://github.com/anbox/anbox.git --recurse-submodules
修改anbox/CMakeLists.txt,注释下面两行:
#find_package(GMock)
...
#add_subdirectory(tests)
编译过程缺少什么依赖包,就安装什么包。
1.3 安卓镜像下载和安装
下载安卓镜像到/var/lib/anbox/目录中(镜像命名为android.img)
下载路径:https://build.anbox.io/andoid-images/2017/08/04/andoid_1_arm64.img
上面的安卓如果运行有问题,可以自行下载其他安卓镜像
1.4 启动服务制作和启动
在/lib/systemd/system/目录中创建anbox-container-manager.service服务
[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
- 启动服务
第一次需要完成如下操作,后续不需要进行操作
sudo systemctl enable anbox-container-manager
sudo systemctl start anbox-container-manager- anbox运行
运行命令:anbox session-manager
注意:如果启动遇到dbus_message_new_method_call()问题,运行命令修改为DBUS_FATAL_WARNINGS=0 anbox session-manager
1.5 应用管理
应用管理程序anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
应用安装需要android-tools-adb工具,针对XXX.apk应用程序
adb install xxx.apk
即可