From 571ab3e4c67a2c7d7ef031c00047444abb525b2e Mon Sep 17 00:00:00 2001 From: Alessandro Astone Date: Sun, 10 Jul 2022 16:56:38 +0200 Subject: [PATCH] Improve robustness of the dynamic aidl version picker Detect the aidl version just before starting the session. Allow reading None. --- tools/actions/container_manager.py | 11 ++++------- tools/helpers/drivers.py | 5 +++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/tools/actions/container_manager.py b/tools/actions/container_manager.py index 0588939..d6ce155 100644 --- a/tools/actions/container_manager.py +++ b/tools/actions/container_manager.py @@ -86,14 +86,11 @@ def start(args): cfg = tools.config.load(args) android_api = 0 try: - mnt = "/tmp/waydroid-" + str(uuid.uuid1()) - helpers.mount.mount(args, cfg["waydroid"]["images_path"] + "/system.img", mnt) - android_api = int(helpers.props.file_get(args, mnt + "/system/build.prop", + android_api = int(helpers.props.file_get(args, + tools.config.defaults["rootfs"] + "/system/build.prop", "ro.build.version.sdk")) except: logging.error("Failed to parse android version from system.img") - finally: - helpers.mount.umount_all(args, mnt); if android_api < 28: binder_protocol = "aidl" @@ -117,8 +114,6 @@ def start(args): stop(args) sys.exit(0) - set_aidl_version() - status = helpers.lxc.status(args) if status == "STOPPED": # Load binder and ashmem drivers @@ -164,6 +159,8 @@ def start(args): # Mount rootfs helpers.images.mount_rootfs(args, cfg["waydroid"]["images_path"]) + set_aidl_version() + # Mount data helpers.mount.bind(args, session_cfg["session"]["waydroid_data"], tools.config.defaults["data"]) diff --git a/tools/helpers/drivers.py b/tools/helpers/drivers.py index 66744b3..b04877d 100644 --- a/tools/helpers/drivers.py +++ b/tools/helpers/drivers.py @@ -176,5 +176,6 @@ def loadBinderNodes(args): args.BINDER_DRIVER = cfg["waydroid"]["binder"] args.VNDBINDER_DRIVER = cfg["waydroid"]["vndbinder"] args.HWBINDER_DRIVER = cfg["waydroid"]["hwbinder"] - args.BINDER_PROTOCOL = cfg["waydroid"]["binder_protocol"] - args.SERVICE_MANAGER_PROTOCOL = cfg["waydroid"]["service_manager_protocol"] + # These might not be in cfg on package upgrade + args.BINDER_PROTOCOL = cfg["waydroid"].get("binder_protocol") + args.SERVICE_MANAGER_PROTOCOL = cfg["waydroid"].get("service_manager_protocol") -- 2.47.3