]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/actions/initializer.py
shell: Do not abort if classpath env file is missing
[waydroid.git] / tools / actions / initializer.py
index 8f6c2c3be1ccfde46c725a227240de2027f3fa67..fdf67a34dd91a3ccea11ca41b65bbecbd331011f 100644 (file)
@@ -23,10 +23,13 @@ def get_vendor_type(args):
     ret = "MAINLINE"
     if vndk_str != "":
         vndk = int(vndk_str)
     ret = "MAINLINE"
     if vndk_str != "":
         vndk = int(vndk_str)
-        if vndk > 31:
-            vndk -= 1 # 12L -> Halium 12
         if vndk > 19:
         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
 
 
     return ret
 
@@ -35,20 +38,37 @@ def setup_config(args):
     args.arch = helpers.arch.host()
     cfg["waydroid"]["arch"] = args.arch
 
     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"]
     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 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"]
     channels_cfg = tools.config.load_channels()
     if not args.system_channel:
         args.system_channel = channels_cfg["channels"]["system_channel"]
@@ -67,11 +87,8 @@ def setup_config(args):
         "/waydroid_" + args.arch + "/" + args.system_type + ".json"
     system_request = helpers.http.retrieve(args.system_ota)
     if system_request[0] != 200:
         "/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
 
     device_codename = helpers.props.host_get(args, "ro.product.device")
     args.vendor_type = None
@@ -85,12 +102,8 @@ def setup_config(args):
             break
 
     if not args.vendor_type:
             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"]
 
     if args.system_ota != cfg["waydroid"].get("system_ota"):
         cfg["waydroid"]["system_datetime"] = tools.config.defaults["system_datetime"]
@@ -100,10 +113,6 @@ 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
     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
 
     tools.config.save(args, cfg)
     return True