From fb961ca01bb338d32e99b5e08567f31f107bfee7 Mon Sep 17 00:00:00 2001 From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz> Date: Fri, 2 Feb 2024 23:53:51 +0100 Subject: [PATCH] VM waydroid-run --- vm/init-waydroid.sh | 8 ++++++++ vm/waydroid-run.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100755 vm/init-waydroid.sh create mode 100644 vm/waydroid-run.py diff --git a/vm/init-waydroid.sh b/vm/init-waydroid.sh new file mode 100755 index 0000000..6ce4b1c --- /dev/null +++ b/vm/init-waydroid.sh @@ -0,0 +1,8 @@ +#!/bin/bash +cd "$(dirname "$0")" +. ../userconfig-lib.sh +install_begin + +confln waydroid-run.py ~/bin/ E + +install_ok diff --git a/vm/waydroid-run.py b/vm/waydroid-run.py new file mode 100644 index 0000000..827ccf7 --- /dev/null +++ b/vm/waydroid-run.py @@ -0,0 +1,38 @@ +#!/bin/python3 +import os, sys, subprocess +import time, select +import select + +app_name = sys.argv[1] if len(sys.argv) >= 2 else None +session = None + +def init(): + global session + session = subprocess.Popen(["waydroid", "session", "start"], stderr=subprocess.PIPE) + time.sleep(0.1) + p = subprocess.run(["waydroid", "show-full-ui"]) + +def clean(): + subprocess.run(["waydroid", "session", "stop"]) + session.communicate() + +init() +while True: + poll = select.poll() + poll.register(session.stderr.fileno(), select.POLLIN) + poll.register(sys.stdin.fileno(), select.POLLIN) + for fd, event in poll.poll(): + if fd == sys.stdin.fileno(): + inp = input() + print("STDIN", inp) + if inp == "reload": + clean() + init() + if fd == session.stderr.fileno(): + print("SESSION") + l = session.stderr.readline().strip().decode("utf-8") + print(l) + if l.endswith("Android with user 0 is ready"): + if app_name: + p = subprocess.run(["waydroid", "app", "launch", app_name]) + p = subprocess.run(["waydroid", "show-full-ui"]) -- GitLab