X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/blobdiff_plain/40c6aa7ac2bcf00f42efd43be4c0a06dec1ed0a6..2c223d412e8dfcb89efaf715f1e1f657a8c7e509:/tools/helpers/images.py diff --git a/tools/helpers/images.py b/tools/helpers/images.py index e00e9b1..3f1929c 100644 --- a/tools/helpers/images.py +++ b/tools/helpers/images.py @@ -4,6 +4,7 @@ import logging import zipfile import json import hashlib +import shutil import os import tools.config from tools import helpers @@ -78,6 +79,7 @@ def get(args): tools.config.save(args, cfg) os.remove(images_zip) break + remove_overlay(args) def replace(args, system_zip, system_time, vendor_zip, vendor_time): cfg = tools.config.load(args) @@ -92,6 +94,13 @@ def replace(args, system_zip, system_time, vendor_zip, vendor_time): zip_ref.extractall(args.images_path) cfg["waydroid"]["vendor_datetime"] = str(vendor_time) tools.config.save(args, cfg) + remove_overlay(args) + +def remove_overlay(args): + if os.path.isdir(tools.config.defaults["overlay_rw"]): + shutil.rmtree(tools.config.defaults["overlay_rw"]) + if os.path.isdir(tools.config.defaults["overlay_work"]): + shutil.rmtree(tools.config.defaults["overlay_work"]) def make_prop(args, cfg, full_props_path): if not os.path.isfile(args.work + "/waydroid_base.prop"): @@ -126,20 +135,23 @@ def make_prop(args, cfg, full_props_path): os.chmod(full_props_path, 0o644) def mount_rootfs(args, images_dir, session): + cfg = tools.config.load(args) helpers.mount.mount(args, images_dir + "/system.img", tools.config.defaults["rootfs"], umount=True) - helpers.mount.mount_overlay(args, [tools.config.defaults["overlay"], - tools.config.defaults["rootfs"]], - tools.config.defaults["rootfs"], - upper_dir=tools.config.defaults["overlay_rw"] + "/system", - work_dir=tools.config.defaults["overlay_work"] + "/system") + if cfg["waydroid"]["mount_overlays"] == "True": + helpers.mount.mount_overlay(args, [tools.config.defaults["overlay"], + tools.config.defaults["rootfs"]], + tools.config.defaults["rootfs"], + upper_dir=tools.config.defaults["overlay_rw"] + "/system", + work_dir=tools.config.defaults["overlay_work"] + "/system") helpers.mount.mount(args, images_dir + "/vendor.img", tools.config.defaults["rootfs"] + "/vendor") - helpers.mount.mount_overlay(args, [tools.config.defaults["overlay"] + "/vendor", - tools.config.defaults["rootfs"] + "/vendor"], - tools.config.defaults["rootfs"] + "/vendor", - upper_dir=tools.config.defaults["overlay_rw"] + "/vendor", - work_dir=tools.config.defaults["overlay_work"] + "/vendor") + if cfg["waydroid"]["mount_overlays"] == "True": + helpers.mount.mount_overlay(args, [tools.config.defaults["overlay"] + "/vendor", + tools.config.defaults["rootfs"] + "/vendor"], + tools.config.defaults["rootfs"] + "/vendor", + upper_dir=tools.config.defaults["overlay_rw"] + "/vendor", + work_dir=tools.config.defaults["overlay_work"] + "/vendor") for egl_path in ["/vendor/lib/egl", "/vendor/lib64/egl"]: if os.path.isdir(egl_path):