曲线救国: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之后,会有诸多问题等着您:
- 无网络链接
- 安装不上arm的apk包
- 播放音视频不能
- etc.
只好手动修复……
手动修复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
重要提示
- 为了避免各种问题,安装全程请自行爪巴墙壁,如果没有爪巴小心慢到怀疑人生……
- 针对音视频的操作必须重启container manager,届时ubuntu也会重启,请做好准备。
埋了anbox
snap remove anbox
sudo apt install ppa-purge
sudo ppa-purge ppa:morphis/anbox-support
sudo apt-get update
这样才算是大功告成趴……