X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/5718ba8b068a83ad07ebdfdfd02d5c3a2bc35aca..c312b3fc94fb158df9c74fc20ea81c194b525caa:/tools/actions/initializer.py diff --git a/tools/actions/initializer.py b/tools/actions/initializer.py index fdc4a40..8f6c2c3 100644 --- a/tools/actions/initializer.py +++ b/tools/actions/initializer.py @@ -23,6 +23,8 @@ 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) @@ -57,6 +59,10 @@ 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) @@ -99,6 +105,7 @@ def setup_config(args): 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: @@ -107,14 +114,20 @@ 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) if status != "STOPPED": logging.info("Stopping container") - helpers.lxc.stop(args) - helpers.images.umount_rootfs(args) + try: + container = tools.helpers.ipc.DBusContainerService() + args.session = container.GetSession() + container.Stop(False) + except Exception as e: + logging.debug(e) + tools.actions.container_manager.stop(args) if args.images_path not in tools.config.defaults["preinstalled_images_paths"]: helpers.images.get(args) else: @@ -128,13 +141,17 @@ def init(args): os.mkdir(tools.config.defaults["overlay_rw"]) os.mkdir(tools.config.defaults["overlay_rw"]+"/system") os.mkdir(tools.config.defaults["overlay_rw"]+"/vendor") + helpers.drivers.probeAshmemDriver(args) helpers.lxc.setup_host_perms(args) helpers.lxc.set_lxc_config(args) helpers.lxc.make_base_props(args) if status != "STOPPED": logging.info("Starting container") - helpers.images.mount_rootfs(args, args.images_path) - helpers.lxc.start(args) + try: + container.Start(args.session) + except Exception as e: + logging.debug(e) + logging.error("Failed to restart container. Please do so manually.") if "running_init_in_service" not in args or not args.running_init_in_service: try: @@ -284,7 +301,7 @@ def remote_init_client(args): channels_cfg = tools.config.load_channels() self.set_default_size(600, 250) - self.set_icon_from_file(tools.config.tools_src + "/data/AppIcon.png") + self.set_icon_name("waydroid") grid = Gtk.Grid(row_spacing=6, column_spacing=6, margin=10, column_homogeneous=True) grid.set_hexpand(True)