X11 세션에서 Waydroid를 사용하여 Android LineageOS를 시작하는 스크립트

X11 세션에서 Waydroid를 사용하여 Android LineageOS를 시작하는 스크립트

실행할 스크립트를 만들고 싶습니다.웨이드 로봇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 2Weston에 매개변수를 추가할 수 있습니다.

답변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!'

관련 정보