如何使用 CachyOS 玩阴阳师⚓︎
本文总结在 CachyOS 下运行《阴阳师》安卓版的完整流程。核心方案是使用 Waydroid 运行 Android 系统,通过 libhoudini 提供 ARM 应用转译,并使用 waydroid-nvidia 让 NVIDIA 显卡为 Android 游戏提供硬件加速。下面的图片是没有使用显卡的 CPU 情况,请勿模仿。

我使用的主要环境为:
CachyOS
Wayland + niri
Intel x86_64 CPU
NVIDIA RTX 5060
nvidia-open
Waydroid
libhoudini
最终运行路径大致为:
阴阳师 ARM Android 版
↓
libhoudini
↓
Waydroid x86_64
↓
ANGLE / Vulkan / Venus
↓
NVIDIA RTX 5060
相比在 Wine 中继续套一层 Android 模拟器,这种方式要直接得多。
最后你会得到一个可以直接从 Linux 桌面启动的《阴阳师》Android 客户端。
准备工作:安装 Waydroid⚓︎
首先安装 Waydroid:
sudo pacman -S waydroid
初始化 Android 镜像:
sudo waydroid init
启动并启用容器服务:
sudo systemctl enable --now waydroid-container.service
然后启动 Android Session:
waydroid session start
正常情况下会看到类似:
[gbinder] Service manager /dev/binder has appeared
Android with user 0 is ready
打开完整 Android 界面:
waydroid show-full-ui
也可以查看当前安装的 Android 应用:
waydroid app list
第一步:安装 ARM 转译 libhoudini⚓︎
Waydroid 本身运行的是 x86_64 Android,而包括《阴阳师》在内的大量 Android 游戏包含 ARM native library。
因此首先需要给 Waydroid 加入 ARM 转译。
可以先确认 CPU:
grep -m1 'vendor_id' /proc/cpuinfo
我的结果为:
vendor_id : GenuineIntel
因此使用 Intel 的 libhoudini。
安装需要的工具:
sudo pacman -S --needed git lzip
克隆 Waydroid Extras Script:
cd ~/Projects
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
项目官方文档使用传统的 venv + pip,这里我使用自己更习惯的 uv 管理 Python 环境:
uv venv
uv pip install -r requirements.txt
然后安装 libhoudini:
sudo .venv/bin/python main.py install libhoudini
脚本会下载并修改 Waydroid 对应的 system/vendor 环境。
完成后重新启动 Waydroid:
waydroid session stop
sudo systemctl restart waydroid-container.service
waydroid session start
检查 native bridge:
sudo waydroid shell getprop ro.dalvik.vm.native.bridge
正常应该输出:
libhoudini.so
继续检查 ABI:
sudo waydroid shell getprop ro.product.cpu.abilist
我的结果为:
x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
这说明 Waydroid 已经具备运行 ARM Android 应用的能力。
如果使用 AMD CPU,可以优先考虑
libndk;本文使用 Intel CPU,因此后续全部基于 libhoudini。
第二步:安装《阴阳师》⚓︎
前往《阴阳师》官方渠道下载 Android APK。
假设 APK 位于:
~/Downloads/yys/onmyoji.apk
使用 Waydroid 安装:
waydroid app install ~/Downloads/yys/onmyoji.apk
安装完成后可以直接让 Android Package Manager 检查:
sudo waydroid shell pm list packages | grep -Ei 'netease|onmyoji'
正常情况下会看到:
package:com.netease.onmyoji
需要注意的是,《阴阳师》在部分情况下可能不会出现在:
waydroid app list
的 Launcher 应用列表中。
只要:
sudo waydroid shell pm list packages
能够看到:
com.netease.onmyoji
就说明 APK 已经成功安装。
直接启动:
waydroid app launch com.netease.onmyoji
第三步:解决 Waydroid 没有网络的问题⚓︎
正常情况下 Waydroid 应该可以自动联网,但如果系统使用 UFW、Docker 等工具,可能出现:
Android 可以启动
↓
应用可以运行
↓
但是 Browser 和游戏完全无法联网
可以先检查 Waydroid 网桥:
ip addr show waydroid0
正常情况下宿主机会有:
inet 192.168.240.1/24
再检查 Android 内部:
sudo waydroid shell -- ip -4 addr show eth0
正常应该获得:
192.168.240.x/24
例如:
inet 192.168.240.112/24
检查 Android 的路由表:
sudo waydroid shell -- ip route show table eth0
正常结果应该类似:
default via 192.168.240.1 dev eth0 proto static
192.168.240.0/24 dev eth0 proto static scope link
如果 eth0 完全没有 IPv4 地址,或者没有默认路由,可以检查 UFW:
sudo ufw status verbose
如果 UFW 开启,可以仅针对 Waydroid 放行 DHCP、DNS 与转发流量,而不是直接开放整个系统的 FORWARD:
sudo ufw allow in on waydroid0 proto udp to any port 67
sudo ufw allow in on waydroid0 \
to 192.168.240.1 port 53 proto udp
sudo ufw allow in on waydroid0 \
to 192.168.240.1 port 53 proto tcp
sudo ufw route allow in on waydroid0 \
from 192.168.240.0/24 to any
应用配置:
sudo ufw reload
然后重启 Waydroid:
waydroid session stop
sudo systemctl restart waydroid-container.service
waydroid session start
重新检查:
sudo waydroid shell -- ip -4 addr show eth0
sudo waydroid shell -- ip route show table eth0
Docker 用户额外注意⚓︎
如果同时使用 Docker:
systemctl is-active docker
可能看到:
active
检查:
sudo iptables -S FORWARD
如果出现:
-P FORWARD DROP
说明 Docker 修改了 Linux 的转发策略。
这可能导致 Waydroid:
Android
↓
waydroid0
↓
FORWARD DROP
↓
无法访问公网
可以先临时验证:
sudo iptables -I FORWARD 1 -i waydroid0 -j ACCEPT
sudo iptables -I FORWARD 1 -o waydroid0 -j ACCEPT
如果加入以后 Waydroid 可以正常联网,就说明问题确实在 Docker/防火墙转发这一层。
对于长期同时使用 Docker 和 Waydroid 的机器,也可以在 Docker 配置中避免 Docker主动把 forwarding policy 修改成 DROP。
如果 /etc/docker/daemon.json 已经存在其他设置,请将下面的字段合并进去,而不是直接覆盖整个文件:
{
"ip-forward-no-drop": true
}
然后重新启动 Docker:
sudo systemctl restart docker.service
第四步:测试 Waydroid 网络⚓︎
Waydroid 自带 LineageOS Browser,可以直接启动:
waydroid app launch org.lineageos.jelly
尝试访问百度。
也可以从命令行测试:
sudo waydroid shell -- ping -c 3 www.baidu.com
正常情况下应该能够完成 DNS 解析并收到响应。
如果:
192.168.240.1 能 ping
公网 IP 不能访问
重点检查宿主机 FORWARD 和 NAT。
如果:
公网 IP 可以访问
域名无法解析
则重点检查 DNS。
当 Browser 能正常打开网页以后,《阴阳师》的资源检查和资源下载也应该可以正常工作。
第五步:给 Waydroid 启用 NVIDIA GPU 加速⚓︎
普通 Waydroid 在 NVIDIA 显卡上很可能退化到 SwiftShader 软件渲染。
可以检查:
sudo waydroid shell dumpsys SurfaceFlinger | grep GLES
如果看到类似:
ANGLE
Vulkan
SwiftShader Device
说明:
阴阳师
↓
ANGLE
↓
SwiftShader
↓
CPU 软件渲染
此时虽然游戏可能可以启动,但通常会出现:
CPU 占用非常高
画质较差
帧率低
发热严重
对于 NVIDIA RTX 显卡,可以使用 waydroid-nvidia。
首先确认当前使用 NVIDIA Open Kernel Module:
pacman -Q | grep -E 'nvidia|waydroid'
我的 CachyOS 使用:
linux-cachyos-nvidia-open
nvidia-utils
停止当前 Waydroid:
waydroid session stop
sudo systemctl stop waydroid-container.service
然后使用 paru 安装:
paru -S waydroid-nvidia-bin
waydroid-nvidia-bin 与普通 waydroid 冲突。
安装过程中如果提示:
waydroid-nvidia-bin and waydroid are in conflict.
Remove waydroid?
选择删除普通 waydroid 即可。
这里替换的是 Waydroid 软件包,并不需要主动删除:
/var/lib/waydroid
也不要重新清空 Android 数据,否则已经安装的《阴阳师》和其他 Android 数据也会一起消失。
安装完成后:
waydroid init
然后部署 NVIDIA guest stack:
sudo waydroid-nvidia-setup
启用服务:
sudo systemctl enable --now waydroid-container.service
systemctl --user enable --now wd-venus.service
完成后建议注销当前 Wayland/niri 会话,然后重新登录一次。
重新登录后:
waydroid session start
检查 Venus 服务:
systemctl --user status wd-venus.service
然后检查 GPU:
sudo waydroid shell dumpsys SurfaceFlinger | grep GLES
普通软件渲染时会看到:
SwiftShader
正确启用 NVIDIA 后,应该变成类似:
ANGLE
NVIDIA
Vulkan
Venus
NVIDIA GeForce RTX 5060
也就是说最终渲染链路变成:
阴阳师
↓
ANGLE
↓
Vulkan / Venus
↓
RTX 5060
而不再让 CPU 使用 SwiftShader 模拟 GPU。
第六步:确认 libhoudini 没有失效⚓︎
切换到 waydroid-nvidia 后,建议再次检查 ARM 转译:
sudo waydroid shell getprop ro.dalvik.vm.native.bridge
应该仍然是:
libhoudini.so
然后:
sudo waydroid shell getprop ro.product.cpu.abilist
应该仍包含:
arm64-v8a
armeabi-v7a
如果这两项正常,就说明:
ARM 转译 OK
NVIDIA GPU OK
Waydroid OK
第七步:启动《阴阳师》⚓︎
现在直接运行:
waydroid app launch com.netease.onmyoji
也可以先进入完整 Android:
waydroid show-full-ui
再从 Android 界面启动游戏。
至此完整结构为:
CachyOS
│
└── Waydroid
│
├── libhoudini
│ └── ARM → x86_64
│
└── waydroid-nvidia
└── ANGLE
↓
Venus
↓
RTX 5060
↓
阴阳师
更新《阴阳师》⚓︎
《阴阳师》日常的资源更新通常直接由游戏客户端完成,例如:
活动资源
新式神资源
语音
地图
资源包
这部分与 Android 手机上的游戏基本一致,不需要重新安装 Waydroid。
如果以后遇到必须更新 APK 的大版本,可以下载新的官方 APK,再执行:
waydroid app install /path/to/new-onmyoji.apk
只要依然使用同一个:
com.netease.onmyoji
并且 APK 签名一致,Android 会按照应用升级处理。
因此一般不需要:
卸载旧版
重新安装
重新下载所有数据
更新 Waydroid 后的注意事项⚓︎
Waydroid、Android image 和《阴阳师》本身是三套不同的更新。
平时:
阴阳师资源
→ 游戏自己更新
阴阳师 APK
→ 下载新版 APK 覆盖安装
Waydroid 软件包
→ CachyOS / paru 更新
如果以后 Waydroid system/vendor image 发生较大更新,建议重新检查:
sudo waydroid shell getprop ro.dalvik.vm.native.bridge
如果不再是:
libhoudini.so
重新进入:
cd ~/Projects/waydroid_script
执行:
sudo .venv/bin/python main.py install libhoudini
对于 NVIDIA 环境,如果升级后 GPU 加速失效,也可以重新执行:
sudo waydroid-nvidia-setup
然后检查:
sudo waydroid shell dumpsys SurfaceFlinger | grep GLES
常用检查命令⚓︎
检查 Waydroid 状态:
waydroid status
打开完整 Android:
waydroid show-full-ui
查看应用:
waydroid app list
检查《阴阳师》是否安装:
sudo waydroid shell pm list packages | grep onmyoji
启动《阴阳师》:
waydroid app launch com.netease.onmyoji
检查 ARM 转译:
sudo waydroid shell getprop ro.dalvik.vm.native.bridge
检查 ABI:
sudo waydroid shell getprop ro.product.cpu.abilist
检查 GPU:
sudo waydroid shell dumpsys SurfaceFlinger | grep GLES
检查 Android IPv4:
sudo waydroid shell -- ip -4 addr show eth0
检查默认路由:
sudo waydroid shell -- ip route show table eth0
测试网络:
sudo waydroid shell -- ping -c 3 www.baidu.com
查看日志:
sudo waydroid logcat
如果《阴阳师》出现闪退、黑屏或者无法进入游戏,可以一边运行:
sudo waydroid logcat
一边重新启动游戏,从日志中寻找:
FATAL
SIGSEGV
houdini
ANGLE
Vulkan
EGL
onmyoji
相关报错。
最终,这套方案的优势是整个 Android 游戏仍然运行在 Linux 容器中:
Linux Kernel
↓
Waydroid Container
↓
Android
↓
libhoudini + Venus
↓
RTX 5060
不需要:
Linux
→ Wine
→ Windows Android 模拟器
→ Android
→ 游戏
对于 CachyOS + NVIDIA 用户来说,在解决 ARM 转译、网络和 NVIDIA GPU 加速以后,Waydroid 可以作为一个相当实用的 Android 游戏运行环境。