曲线救国:Ubuntu安装Anbox手记

· · 个人记录

Anbox安装手记

[TOC]

缘起

今天预约的某爱抖露手游出了公测,就想要安装个Anbox玩玩。结果这尼玛的Anbox真鸡儿难装……

Anbox即为 Android in a box,让你在linux下运行android程序,界面友好,和真的android机虽不能相提并论,起码能凑合用了(装点QQ什么的还是OK的)。

OS: Ubuntu 20.04

参考:官方文档 和这篇博客 这个帖子

观前提示:请看文后 重要提示

安装dkms内核模块

这东西才是最恶心人的!

官网教程:

sudo add-apt-repository ppa:morphis/anbox-support
sudo apt update
sudo apt install anbox-modules-dkms

是不是很简单?可是它会报错:

E: 仓库 “http://ppa.launchpad.net/morphis/anbox-support/ubuntu focal Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

BFS一看,全是要我删除该源的,PPA源删掉了你让我install什么?不可行不可行。

幸好几番周折找到了这个github项目:Anbox

在issue找到了一个和我一样悲惨的同志,下面有巨佬给出指导:

编辑.list文件,在 deb 后插入 [trusted=yes]

我试了下,update竟然成功,只是爆出一大堆“忽略”,也没办法安装内核模块……

幸好又在项目里找到了这个:anbox-modules

一看,完全OK!

先给dkms装一个linux-header

sudo apt-get install dkms

然后把这个仓库clone下来,安装:

git clone https://github.com/anbox/anbox-modules
cd anbox-modules
./INSTALL.sh

手动启动内核模块(之后会自动开启):

sudo modprobe ashmem_linux
sudo modprobe binder_linux

此时应有输出:

binder_linux          114688  0
ashmem_linux           16384  0

全程无报错,检查一下:

lsmod | grep -e ashmem_linux -e binder_linux
ls -alh /dev/binder /dev/ashmem

此时应有输出:

crw-rw-rw- 1 root root  10, 55 Jun 19 16:30 /dev/ashmem
crw-rw-rw- 1 root root 511,  0 Jun 19 16:30 /dev/binder

大功告成!

安装Anbox

直接按官网流程走。

如果没有安装snap,装一个:

sudo apt-get install snapd

利用snap安装anbox:

snap install --devmode --beta anbox

检查版本方法:

snap info anbox

现在,运行 anbox.appmgr 即可打开anbox!

这并不是结束!

装好anbox之后,会有诸多问题等着您:

只好手动修复……

手动修复anbox的feature

启动anbox container服务

sudo systemctl start anbox-container-manager

安装Google Play以支持houdini

找到了这个github项目:playstore installer

直接无脑安装:

git clone https://github.com/geeks-r-us/anbox-playstore-installer
cd anbox-playstore-installer
./install-playstore

稍等,之后打开anbox,发现有google play 的图标了!

点击 Settings ,给你的 Google Play Services 和 Google Play Store 添加所有权限。

现在可以给你的 goole play 登录账号了。

登不上号怎么办?

如果登不上,可以先打开 anbox-bridge。

sudo /snap/anbox/current/bin/anbox-bridge.sh start

众所周知,在国内登录google需要一些特殊技巧(懂的都懂),我们给 anbox 添加代理:

adb shell settings put global http_proxy 192.168.250.1:<port>

其中,port填你的端口号。

删除代理的方法:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

(管杀管埋

建立网络链接

nmcli con add type bridge ifname anbox0 -- connection.id anbox-net ipv4.method shared ipv4.addresses 192.168.250.1/24

(不加小心爆炸

添加桌面文件(可选)

编辑/usr/share/applications/anbox.desktop,并添加:

[Desktop Entry]
Name=Anbox
GenericName=Application Manager
Comment=Android in a box
Version=1.0
Type=Application
Icon=anbox
Exec=anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
Terminal=false
Keywords=android;container;
Categories=Utility;

添加anbox-session-manager服务(可选)

编辑 /usr/lib/systemd/user/anbox-session-manager.service 并添加:

[Unit]
Description=Anbox Session Manager

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

[Install]
WantedBy=default.target

设置anbox自动运行(可选)

sudo systemctl enable anbox-container-manager
sudo systemctl enable anbox-session-manager --user

安装apk包

打开apk的目录,执行:

adb install name.apk

如果不打开houdini支持,别想安装QQ

重要提示

  1. 为了避免各种问题,安装全程请自行爪巴墙壁,如果没有爪巴小心慢到怀疑人生……
  2. 针对音视频的操作必须重启container manager,届时ubuntu也会重启,请做好准备。

埋了anbox

snap remove anbox
sudo apt install ppa-purge
sudo ppa-purge ppa:morphis/anbox-support
sudo apt-get update

这样才算是大功告成趴……