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ランチャースクリプトに最後の2行を挿入する方法がわかりません。輸出しようとしています

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

私が見つけたスクリプトは次のとおりです。Reddit。お役に立てば幸いです。また、それがあなたにうまくいったら教えてください。私も同様の立場にいます。

#! /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!'

関連情報