X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/068a143be99bf57fe649395ad9d95ef966fc49d8..c181bf984d4c5c8b189e3ffcf6bb52f5ed6b0d98:/tools/actions/initializer.py diff --git a/tools/actions/initializer.py b/tools/actions/initializer.py index fee1280..fdf67a3 100644 --- a/tools/actions/initializer.py +++ b/tools/actions/initializer.py @@ -23,10 +23,13 @@ def get_vendor_type(args): ret = "MAINLINE" if vndk_str != "": vndk = int(vndk_str) - if vndk > 31: - vndk -= 1 # 12L -> Halium 12 if vndk > 19: - ret = "HALIUM_" + str(vndk - 19) + halium_ver = vndk - 19 + if vndk > 31: + halium_ver -= 1 # 12L -> Halium 12 + ret = "HALIUM_" + str(halium_ver) + if vndk == 32: + ret += "L" return ret @@ -35,20 +38,37 @@ def setup_config(args): args.arch = helpers.arch.host() cfg["waydroid"]["arch"] = args.arch + args.vendor_type = get_vendor_type(args) + cfg["waydroid"]["vendor_type"] = args.vendor_type + + helpers.drivers.setupBinderNodes(args) + cfg["waydroid"]["binder"] = args.BINDER_DRIVER + cfg["waydroid"]["vndbinder"] = args.VNDBINDER_DRIVER + cfg["waydroid"]["hwbinder"] = args.HWBINDER_DRIVER + + has_preinstalled_images = False preinstalled_images_paths = tools.config.defaults["preinstalled_images_paths"] - if not args.images_path: - for preinstalled_images in preinstalled_images_paths: - if os.path.isdir(preinstalled_images): - if os.path.isfile(preinstalled_images + "/system.img") and os.path.isfile(preinstalled_images + "/vendor.img"): - args.images_path = preinstalled_images - break - else: - logging.warning("Found directory {} but missing system or vendor image, ignoring...".format(preinstalled_images)) + for preinstalled_images in preinstalled_images_paths: + if os.path.isdir(preinstalled_images): + if os.path.isfile(preinstalled_images + "/system.img") and os.path.isfile(preinstalled_images + "/vendor.img"): + has_preinstalled_images = True + args.images_path = preinstalled_images + break + else: + logging.warning("Found directory {} but missing system or vendor image, ignoring...".format(preinstalled_images)) if not args.images_path: args.images_path = tools.config.defaults["images_path"] cfg["waydroid"]["images_path"] = args.images_path + if has_preinstalled_images: + cfg["waydroid"]["system_ota"] = args.system_ota = "None" + cfg["waydroid"]["vendor_ota"] = args.vendor_ota = "None" + cfg["waydroid"]["system_datetime"] = tools.config.defaults["system_datetime"] + cfg["waydroid"]["vendor_datetime"] = tools.config.defaults["vendor_datetime"] + tools.config.save(args, cfg) + return True + channels_cfg = tools.config.load_channels() if not args.system_channel: args.system_channel = channels_cfg["channels"]["system_channel"] @@ -59,15 +79,16 @@ def setup_config(args): if not args.system_type: args.system_type = channels_cfg["channels"]["system_type"] + if not args.system_channel or not args.vendor_channel: + logging.error("ERROR: You must provide 'System OTA' and 'Vendor OTA' URLs.") + return False + args.system_ota = args.system_channel + "/" + args.rom_type + \ "/waydroid_" + args.arch + "/" + args.system_type + ".json" system_request = helpers.http.retrieve(args.system_ota) if system_request[0] != 200: - if args.images_path not in preinstalled_images_paths: - raise ValueError( - "Failed to get system OTA channel: {}, error: {}".format(args.system_ota, system_request[0])) - else: - args.system_ota = "None" + raise ValueError( + "Failed to get system OTA channel: {}, error: {}".format(args.system_ota, system_request[0])) device_codename = helpers.props.host_get(args, "ro.product.device") args.vendor_type = None @@ -81,12 +102,8 @@ def setup_config(args): break if not args.vendor_type: - if args.images_path not in preinstalled_images_paths: - raise ValueError( - "Failed to get vendor OTA channel: {}".format(vendor_ota)) - else: - args.vendor_ota = "None" - args.vendor_type = get_vendor_type(args) + raise ValueError( + "Failed to get vendor OTA channel: {}".format(vendor_ota)) if args.system_ota != cfg["waydroid"].get("system_ota"): cfg["waydroid"]["system_datetime"] = tools.config.defaults["system_datetime"] @@ -96,11 +113,8 @@ def setup_config(args): cfg["waydroid"]["vendor_type"] = args.vendor_type cfg["waydroid"]["system_ota"] = args.system_ota cfg["waydroid"]["vendor_ota"] = args.vendor_ota - helpers.drivers.setupBinderNodes(args) - cfg["waydroid"]["binder"] = args.BINDER_DRIVER - cfg["waydroid"]["vndbinder"] = args.VNDBINDER_DRIVER - cfg["waydroid"]["hwbinder"] = args.HWBINDER_DRIVER tools.config.save(args, cfg) + return True def init(args): if not is_initialized(args) or args.force: @@ -109,7 +123,8 @@ def init(args): initializer_service = tools.helpers.ipc.DBusContainerService("/Initializer", "id.waydro.Initializer") except dbus.DBusException: pass - setup_config(args) + if not setup_config(args): + return status = "STOPPED" if os.path.exists(tools.config.defaults["lxc"] + "/waydroid"): status = helpers.lxc.status(args)