我想制作一个脚本来启动韦德机器人Android 容器 (LineageOS)。
目前,我可以开始一个LineageOS虚拟电话没有问题:
sudo systemctl start waydroid-container
weston
然后,在里面weston-terminal
:
waydroid session start
waydroid show-full-ui
请注意,Waydroid 仅适用于 Wayland 会话管理器,并且韦斯顿作曲家是一个简单的方法 使用普通的 X windows 管理器运行它。
我不知道应该如何在 Bash 启动器脚本中插入最后两行。我尝试导出
XDG_SESSION_TYPE=wayland
但是,当 Waydroid 会话开始时,我对如何将手机 GUI 推送到 Weston 合成器一无所知。
当然还有X11的解决方案,比如安盒 但相比之下,Waydroid 就更出色了。
答案1
发送 Waydroid 的变量到位(即在韦斯顿内部)WAYLAND_DISPLAY
不是XDG_SESSION_TYPE
。另外,X韦兰服务器应该被激活。
因此,请确保 Waydroid 容器已打开:
systemctl start waydroid-container
现在,您可以使用以下命令从终端/脚本启动手机:
weston --xwayland &
export WAYLAND_DISPLAY=wayland-1
sleep 2
waydroid show-full-ui &
与其杀死 Waydroid,更好的方法是关闭手机:
waydroid session stop
并按 Ctrl+Alt+Backspace 退出 Weston。
对于 HiDPI 显示,您可以--scale 2
向 Weston 添加参数。
答案2
这是我在这里找到的脚本红迪特。希望能帮助到你。另外,如果它对你有用,请告诉我,我也处于类似的位置。
#! /usr/bin/bash
if [ "$(systemctl is-active waydroid-container.service)" == 'active' ];then
killall -9 weston
sudo systemctl stop waydroid-container.service
exit
fi
killall -9 weston
sudo systemctl restart waydroid-container.service
if [ -z "$(pgrep weston)" ]; then
weston --xwayland &> /dev/null &
fi
sleep 2 &&
export XDG_SESSION_TYPE='wayland'
export DISPLAY=':1'
konsole --new-tab --hide-tabbar --hide-menubar -e '/usr/bin/waydroid show-full-ui' &
while [ -n "$(pgrep weston)" ];do
sleep 1
done
sudo systemctl stop waydroid-container.service
答案3
这个脚本对我来说非常有用,它启动 weston 和 waydroid,当您关闭 weston 窗口时,它会自动停止 waydriod 会话!在 Ubuntu 和 ArchLinux 上测试。
#!/bin/bash
export WAYLAND_DISPLAY=mysocket
weston --socket=$WAYLAND_DISPLAY --backend=x11-backend.so --width=1920 --height=1080 &
cmd1_pid=$!
waydroid show-full-ui &
wait $cmd1_pid
waydroid session stop
echo 'waydroid session stopped successfully!'