安装waydroid和cago
首先添加官方仓库,再安装
curl https://repo.waydro.id | sudo bash
sudo apt install cage waydroid -y然后初始化waydroid,这里使用原版
sudo waydroid init -s VANILLAwaydroid默认会优先使用iptables-lagacy,根据https://github.com/waydroid/waydroid/issues/2023,可以使用如下脚本进行替换:
sudo sed -i~ -E 's/=.\$\(command -v (nft|ip6?tables-legacy).*/=/g' \
/usr/lib/waydroid/data/scripts/waydroid-net.sh然后启动后台服务
sudo systemctl enable --now waydroid-container使用waydroid-script
waydroid默认情况下不支持在x86上运行arm应用,推荐使用waydroid-script安装兼容层;该工具还有其他功能,比如安装magisk
https://github.com/casualsnek/waydroid_script
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py运行
直接运行cage会干扰x11转发,可以使用如下命令隔离运行:
systemd-run --user \
--unit=waydroid-headless \
-p Description="Isolated Headless Waydroid" \
-p PrivateTmp=yes \
-E WLR_BACKENDS=headless \
-E WLR_RENDERER=pixman \
-E XDG_SESSION_TYPE=wayland \
-E WAYLAND_DISPLAY=wayland-99 \
-E DISPLAY= \
/bin/bash -c "export XDG_RUNTIME_DIR=\${RuntimeDirectory:-/run/user/$(id -u)/waydroid-iso}; mkdir -p \$XDG_RUNTIME_DIR; exec cage -- waydroid show-full-ui"连接
默认情况下连接adb需要手动授权,可以通过如下操作关闭:
waydroid session stop
sudo systemctl stop waydroid-container
sudo vi /var/lib/waydroid/waydroid_base.prop然后修改如下两行:
ro.adb.secure=0
ro.debuggable=1查看waydroid使用的IP:
(base) quq233@quq233:~$ waydroid status
Session: RUNNING
Container: RUNNING
Vendor type: MAINLINE
IP address: 192.168.240.112
Session user: quq233(1000)
Wayland display: wayland-0使用adb连接后,用scrcpy即可显示画面