diff --git a/vm/init-waydroid.sh b/vm/init-waydroid.sh new file mode 100755 index 0000000000000000000000000000000000000000..6ce4b1c74e2336fbc051607c8023abde1f77daef --- /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 0000000000000000000000000000000000000000..827ccf7e435754038eb28c86c8d469583b5bd845 --- /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"])