Anbox的配置

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可以是以下内容

通常情况下,在 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
上一篇:CentOS 7之后版本启动引导顺序


下一篇:Linux (9)引导过程与服务控制