Waydroid 简介
Waydroid 是一个基于容器的开源工具,允许用户在 Linux 系统上运行完整的 Android 系统。它利用 Linux 内核的命名空间和 cgroups 功能,通过轻量级虚拟化技术实现 Android 应用的兼容性,无需传统虚拟机的高开销。
核心特性
- 轻量级:基于容器技术,资源占用远低于传统虚拟机(如 VirtualBox)。
- 高性能:直接使用宿主机的 Linux 内核,支持硬件加速(如 GPU)。
- 兼容性:支持大多数 Android 应用,包括依赖 Google 服务框架的应用(需额外配置)。
- 集成性:Android 应用可与 Linux 桌面环境无缝交互(如窗口模式、共享剪贴板)。
技术原理
Waydroid 由两部分组成:
- Waydroid 容器:运行 Android 系统的用户空间,基于 LineageOS 或 AOSP。
- Waydroid 服务:管理容器生命周期,处理与宿主机(如输入、显示)的交互。
依赖 Linux 内核的以下功能:
- binderfs:提供 Android 的 Binder IPC 机制。
- ashmem:实现共享内存。
- 硬件加速:通过 VirglRenderer 或宿主 GPU 驱动支持图形渲染。
系统要求
- Linux 内核 ≥ 5.4(需启用 binderfs 和 ashmem)。
- 支持 Vulkan 的 GPU(推荐)或 VirglRenderer。
- 至少 4GB 内存(建议 8GB 以上)。
常见问题与优化
- 应用崩溃:检查是否启用硬件加速,或尝试切换图形后端(如
waydroid prop set ro.hardware.gralloc=default)。 - 网络问题:确保宿主机网络正常,Waydroid 默认共享宿主机网络。
- 输入法支持:在 Android 设置中手动启用第三方输入法。
性能优化方面,建议使用主流的 Wayland 合成器(如 Sway、GNOME on Wayland)以获得更好的窗口管理。分配更多 CPU 核心给容器(通过 waydroid prop set ro.cpuset.cpus=0-3),并关闭不必要的 Android 后台服务以节省资源。


安装准备
首先更新系统并安装必要的依赖工具:
sudo apt install curl ca-certificates -y
curl -s https://repo.waydro.id | sudo bash
sudo apt install waydroid -y
sudo systemctl enable --now waydroid-container
执行完成后,可以在应用菜单中找到 Waydroid 图标并启动。

镜像配置
首次初始化时需要下载镜像文件,但直接下载速度可能较慢。此时可以手动下载镜像包,打开 https://sourceforge.net/projects/waydroid/files/images/,可以看到 vendor 和 system 两个文件夹,进去下载对应版本的 vendor 和 system,使用常用下载工具获取。
这里提供两个官方源地址供参考:
https://zenlayer.dl.sourceforge.net/project/waydroid/images/system/lineage/waydroid_x86_64/lineage-20.0-20250809-VANILLA-waydroid_x86_64-system.zip?viasf=1
https://zenlayer.dl.sourceforge.net/project/waydroid/images/vendor/waydroid_x86_64/lineage-20.0-20250809-MAINLINE-waydroid_x86_64-vendor.zip?viasf=1
注意,如果需要下载带谷歌框架的镜像,需要选择 GAPPS 版本!

下载后解压,得到 vendor.img 和 system.img,将镜像复制到 waydroid 指定文件夹内:
sudo mkdir -p /usr/share/waydroid-extra/images/
sudo mv system.img /usr/share/waydroid-extra/images/
sudo mv vendor.img /usr/share/waydroid-extra/images/
初始化系统:
sudo waydroid init -f
启动与图形适配
运行 waydroid session start 尝试启动:
waydroid session start
如果看到类似 [16:42:18] WAYLAND_DISPLAY is not set, defaulting to "wayland-0" 的提示,或者报错 Wayland socket ... doesn't exist,这通常是因为 NVIDIA 显卡与 Ubuntu 桌面环境的兼容性问题。
这个问题比较常见,可以通过安装 Weston 合成器解决:
sudo apt install weston -y
重新启动时指定环境变量:
export WAYLAND_DISPLAY=wayland-1
waydroid session start
成功启动后,界面应该能正常显示。

网络配置
默认情况下,模拟器可能是断网的,需要配置防火墙规则才能联网。
打开模拟器的终端窗口,执行以下命令开放必要端口:
sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo ufw reload
sudo ufw status
sudo ufw enable
修改浏览器默认引擎后,重新打开首页即可正常使用网络功能。

安装应用商店
推荐使用 F-Droid 作为应用来源:
https://f-droid.org/FDroid.apk
使用下载器下载 FDroid.apk,然后使用以下指令安装:
waydroid app install FDroid.apk
F-Droid 更换为清华源以提升下载速度:
https://mirrors.tuna.tsinghua.edu.cn/fdroid/repo/?fingerprint=43238D512C1E5EB2D6569F4A3AFBF5523418B82E0A3ED1552770ABB9A9C9CCAB
ARM 翻译层支持
为了运行更多非 x86 架构的 Android 应用,可以安装 ARM 翻译层(LibHoudini)。
首先停止容器:
# 停止容器
sudo systemctl stop waydroid-container
克隆脚本仓库并创建环境:
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
安装 lzipsudoaptinstall lzip # 安装 libhoudini (ARM 转译层)sudo venv/bin/python3 main.py install libhoudini
修复后的命令如下:
# 安装 lzipsudoaptinstall lzip
sudo apt install lzip
# 安装 libhoudini (ARM 转译层)
sudo venv/bin/python3 main.py install libhoudini
启动容器:
# 启动容器
sudo systemctl start waydroid-container
此时可以尝试安装 TapTap 等应用。

触屏功能设置
在使用 Waydroid 时,某些应用可能需要模拟 touch 事件。例如,修复某些游戏中无法拖动进度条的问题,可以通过以下命令实现:
# waydroid prop set persist.waydroid.fake_touch xxx.xxx.xxx
# 注意填写正确的应用信息
waydroid prop set persist.waydroid.fake_touch com.hypergryph.arknights


