Waydroid教学:在Arch Linux电脑跑Android APP
Last Update:
Word Count:
Read Time:
转载:https://ivonblog.com/posts/archlinux-waydroid/#0-waydroid%E7%89%B9%E8%89%B2
Waydroid教学:在Arch Linux电脑跑Android APP
Waydroid是Anbox配合Halium技术开发的LXC Android容器,可在GNU/Linux系统执行Android APP。
- 作业系统:Arch Linux
- Linux核心版本:6.3.2
- Waydroid映像档版本:LineageOS 18 (Android 11)
- CPU: Intel I5-7400
- GPU: Intel UHD 630
0. Waydroid特色
以下是Waydroid的特色功能:
- Linux平台自由开源的Android容器解决方案
- 支援x86与ARM架构的装置
- 与宿主机共用剪贴簿
- 直接使用电脑显示卡硬体加速,跑3D游戏、看影片没什么问题。
- 內建GAPPS,可以使用Google Play
- 支援给x86装置安装ARM转译器
- 支援安装Widevine DRM模组
- 支援Magisk
1. 设定显示卡与Linux核心
1.1. 切换至Wayland
Waydroid必须使用Wayland显示协定,用此指令检查目前的工作阶段是否为Wayland:
1 |
|
若显示X11代表不是Wayland。GNOME和KDE可在登入画面切换至Wayland工作阶段。
如果想在X11工作阶段使用Waydroid,请安装Weston,再参考文末作法。
1.2. 安装binder核心模组
Waydroid要求Linux核心支援binder核心模组,但Arch Linux预设的linux
核心並无开启此选项,因此需要从AUR安装binder_linux-dkms
补齐。
1 |
|
安装后载入binder核心模组
1 |
|
设定开机自动载入核心模组
1 |
|
2. 安装Waydroid
- 从AUR安装Waydroid:
1 |
|
- 初始化Waydroid,下载含有GAPPS的Android系统映像档。
1 |
|
- 启动Waydroid容器服务
1 |
|
- 由於图形驱动程式的缘故,目前Waydroid只支援Intel和AMD的显示卡,Nvidia显示卡会没画面。请看本文最下面的额外作法。
- 点选应用程式列表的「Waydroid」图示开启主画面,或者使用指令:
waydroid show-full-ui
- 若Waydroid没有网路,允许其通过防火墙:
1 |
|
3. 將Waydroid註册为Google装置
- Waydroid第一次开机可能会收到
Device is not Play Protect certified
的通知,无法登入Google帐號。
- 此时要取得casualsnek製作的指令稿,用於取得Waydroid的装置ID。该指令会印出一长串数字。
1 |
|
- 开启装置註册页面,登入Google帐號,输入装置ID註册,等个半小时应该就能登入Google帐號了。如果还是不行就重新启动Waydroid容器服务:
1 |
|
- 现在可以安装APP了,Google Play和F-Droid会自动筛出適合x86架构的APP。
4. 安装ARM转译器libhoudini
很多APP只为手机的ARM架构打造,但大多数电脑都是x86架构,为此你需要安装ARM转译器才能执行ARM架构的APP。
目前ARM→x86的转译器有libhoudini和libndk,前者比后者稳定些。casualsnek指令稿的libhoudini是从Microsoft Android Subsytem for Windows所抽取出来。
- 执行casualsnek的指令稿安装libhoudini:
1 |
|
- 重启Waydroid
1 |
|
- 试著安装Subway Surfers这款仅提供ARM架构的小游戏。如果开的起来代表ARM转译器正常运作。
5. Waydroid相关指令
若Waydroid无法启动,请善用sudo systemctl status waydroid-container
和waydroid log
和sudo waydroid logcat
查看错误讯息。
用指令开启Waydroid主画面
1 |
|
启动/停止Waydroid容器服务
1 |
|
Waydroid在启动后可以进入Android shell,並且有Root权限
1 |
|
Waydroid用此指令安装APK
1 |
|
让Waydroid开启多视窗模式,变成好像Linux的原生应用程式一般。启动后按F11切换
1 |
|
如果要完全移除Waydroid:
1 |
|
Waydroid的Android系统资料放在~/.local/share/waydroid/data/
,系统映像档位於/var/lib/waydroid
,APP图示位於~/.local/share/applications/
6. 有关Waydroid的疑难杂症
6.1. 解决Nivida显示卡的问题
由於Nvidia图形驱动程式不遵守公开標准,目前Waydroid在Nvidia显示卡无法启动。
硬要的话,编辑/var/lib/waydroid/waydroid_base.prop
,加入以下內容改用效能极差的软体渲染。
1 |
|
6.2. 如何在X11环境启动Waydroid
- 启动Weston
1 |
|
- 在Weston视窗开启终端机,启动Waydroid主画面
1 |
|
6.3. 不想要Waydroid APP图示出现在桌面
Waydroid的Android APP图示位於~/.local/share/applications/*aydroid
写个指令稿於Waydroid关闭后刪除之。
6.4. Waydroid APP无法写入內部储存空间
如果出现此问题,请使用casualsnek的指令稿修正目录权限:
复製
1 |
|