실행할 스크립트를 만들고 싶습니다.웨이드 로봇Android 컨테이너(LineageOS).
현재는 다음을 시작할 수 있습니다.리니지OS가상 전화에는 문제가 없습니다.
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!'