Anbox的配置
本文仅针对Arch Linux用户而言,Manjaro用户请不要尝试,显卡驱动会炸(别问,问就是试过)
简介
Anbox
是一个可以在 GNU/Linux
发行版上运行 Android App 的一个 容器。
使用它,你可以让Android Apps直接跑在内核上,效率比较高
领先Windows一万年(?)
开始
1. 本体的安装
sudo pacman -Syy
sudo pacman -S yay adb #如果已经装过yay就忽略
yay -S anbox-git anbox-<xxxxx>
其中,anbox-xxxxxx可以是以下内容
- anbox-image(官方镜像)
- anbox-image-houdini(包含 Houdini)
- anbox-image-houdini-rooted(包含 Houdini 和 SuperSU)
- anbox-image-gapps(包含 Houdini 和 OpenGApps)
- anbox-image-gapps-rootedAUR (包含 Houdini, OpenGApps 和 SuperSU)
通常情况下,在 x86_64 计算机上运行 ARM 应用程序需要 Houdini
,所以不要安装anbox-image,这样在后续安装ARM程序的时候会出现[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]的错误
2.内核
需要运行带有 ashmem 和 binder 模块的内核,但它们不是 Arch Linux 的默认内核 ( linux ) 的一部分,所以需要安装一个包含这些模块的内核
通常情况下,你可以使用linux-zen
内核
它包含了anbox运行所要的模块,而且也是最简单的方式
此内核需要一两周滚动更新一次,即sudo pacman -Syu
sudo pacman -S linux-zen linux-zen-headers
3.更新Grub
# 以下步骤不是必需的
sudo nano /etc/default/grub
# 这三行是将子菜单展开,这样不用点击 advanced 进去了
GRUB_DISABLE_SUBMENU=y
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
# Ctrl+x ,y退出
#----------以下步骤是必要的-------
sudo grub-mkconfig -o /boot/grub/grub.cfg
#大概会输出以下内容(选段)
正在生成 grub 配置文件
找到 Linux 镜像:/boot/xxxxxxxx
找到 initrd 镜像: /boot/xxxx.img /boot/xxxxx.img
4.重启界面选择Linux-zen
重启,在grub中选择即可
5.挂载binderfs
linux-zen内核必需挂载binderfs
首先,需要一个挂载点。默认情况下,Anbox 将使用 /dev/binderfs
。 可以直接创建该目录,但它会在启动时被删除
# 直接创建目录
sudo mkdir /dev/binderfs
所以这里建议使用 systemd-tmpfiles(ArchLinux Wiki) 实现在启动时创建 /dev/binderfs
为此
需要在 /etc/tmpfiles.d/
创建一个包含以下内容的文件:
/etc/tmpfiles.d/anbox.conf
d! /dev/binderfs 0755 root root
实现:
sudo nano /etc/tmpfiles.d/anbox.conf
d! /dev/binderfs 0755 root root
# Ctrl+x ,y退出
其次需要挂载 binder 文件系统
mount -t binder none /dev/binderfs
如果想要在启动时挂载它,只需要在 fstab 中添加下面这一行。
none /dev/binderfs binder nofail 0 0
实现:
sudo /dev/fstab
#在最下面添加:
none /dev/binderfs binder nofail 0 0
# Ctrl+x ,y退出
警告: 添加 nofail
参数后,当启动没有 binderfs 支持的内核时,将无法进入恢复 shell
再次重启
6.打开服务
sudo systemctl enable anbox-container-manager.service
7.启动Anbox
在桌面环境菜单中找到anbox,打开它,可以进行使用
8.安装软件
在anbox中,adb无需手动配置
adb install xxxx.apk