import os
import tools.config
import tools.helpers.ipc
+import tools.helpers.net
import dbus
def print_status(args):
print("Session:\tRUNNING")
print("Container:\t" + session["state"])
print("Vendor type:\t" + cfg["waydroid"]["vendor_type"])
+ print("IP address:\t" + (tools.helpers.net.get_device_ip_address() or "UNKNOWN"))
print("Session user:\t{}({})".format(session["user_name"], session["user_id"]))
print("Wayland display:\t" + session["wayland_display"])
else:
--- /dev/null
+# Copyright 2023 Maximilian Wende
+# SPDX-License-Identifier: GPL-3.0-or-later
+from shutil import which
+import tools.helpers.run
+import logging
+import re
+
+def adb_connect(args):
+ """
+ Creates an android debugging connection from the host system to the
+ Waydroid device, if ADB is found on the host system and the device
+ has booted.
+ """
+ # Check if adb exists on the system.
+ if not which("adb"):
+ return
+
+ # Start and 'warm up' the adb server
+ tools.helpers.run.user(args, ["adb", "start-server"])
+
+ ip = get_device_ip_address()
+ if not ip:
+ return
+
+ tools.helpers.run.user(args, ["adb", "connect", ip])
+ logging.info("Established ADB connection to Waydroid device at {}.".format(ip))
+
+def get_device_ip_address():
+ # The IP address is queried from the DHCP lease file.
+ lease_file = "/var/lib/misc/dnsmasq.waydroid0.leases"
+
+ try:
+ with open(lease_file) as f:
+ return re.search("(\d{1,3}\.){3}\d{1,3}\s", f.read()).group().strip()
+ except:
+ pass
\ No newline at end of file
import os
import threading
import tools.config
+import tools.helpers.net
from tools.interfaces import IUserMonitor
from tools.interfaces import IPlatform
def userUnlocked(uid):
logging.info("Android with user {} is ready".format(uid))
+ tools.helpers.net.adb_connect(args)
+
platformService = IPlatform.get_service(args)
if platformService:
if not os.path.exists(apps_dir):