From 2368c5afd54472e6a2229b711dc823d17c9ebde7 Mon Sep 17 00:00:00 2001 From: weishu Date: Thu, 20 Nov 2025 13:36:54 +0800 Subject: [PATCH] metaovl: use `cp` instead of `mv` to copy files --- .../meta-overlayfs/metamodule/customize.sh | 21 +++++----------- .../meta-overlayfs/metamodule/metainstall.sh | 24 +++++++++---------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/userspace/meta-overlayfs/metamodule/customize.sh b/userspace/meta-overlayfs/metamodule/customize.sh index feb8686b..a7cdcd37 100644 --- a/userspace/meta-overlayfs/metamodule/customize.sh +++ b/userspace/meta-overlayfs/metamodule/customize.sh @@ -45,8 +45,13 @@ ui_print "- Architecture-specific binary installed successfully" IMG_FILE="$MODPATH/modules.img" MNT_DIR="$MODPATH/mnt" IMG_SIZE_MB=2048 +EXISTING_IMG="/data/adb/modules/$MODID/modules.img" -if [ ! -f "$IMG_FILE" ]; then +if [ -f "$EXISTING_IMG" ]; then + ui_print "- Reusing modules image from previous install" + cp "$EXISTING_IMG" "$IMG_FILE" || \ + abort "! Failed to copy existing modules image" +else ui_print "- Creating 2GB ext4 image for module storage" # Create sparse file (2GB logical size, 0 bytes actual) @@ -58,20 +63,6 @@ if [ ! -f "$IMG_FILE" ]; then abort "! Failed to format ext4 image" ui_print "- Image created successfully (sparse file)" -else - ui_print "- Existing image found, keeping it" -fi - -# Mount image immediately for use -ui_print "- Mounting image for immediate use..." -mkdir -p "$MNT_DIR" -if ! mountpoint -q "$MNT_DIR" 2>/dev/null; then - mount -t ext4 -o loop,rw,noatime "$IMG_FILE" "$MNT_DIR" || \ - abort "! Failed to mount image" - ui_print "- Image mounted successfully" -else - ui_print "- Image already mounted" fi ui_print "- Installation complete" -ui_print "- Image is ready for module installations" diff --git a/userspace/meta-overlayfs/metamodule/metainstall.sh b/userspace/meta-overlayfs/metamodule/metainstall.sh index 928723f5..b3ec411c 100644 --- a/userspace/meta-overlayfs/metamodule/metainstall.sh +++ b/userspace/meta-overlayfs/metamodule/metainstall.sh @@ -40,7 +40,9 @@ module_requires_overlay_move() { # Post-installation: move partition directories to ext4 image post_install_to_image() { - ui_print "- Moving module content to image" + ui_print "- Copying module content to image" + + set_perm_recursive $MNT_DIR 0 0 0755 0644 MOD_IMG_DIR="$MNT_DIR/$MODID" mkdir -p "$MOD_IMG_DIR" @@ -48,31 +50,29 @@ post_install_to_image() { # Move all partition directories for partition in system vendor product system_ext odm oem; do if [ -d "$MODPATH/$partition" ]; then - ui_print " Moving $partition/" - mv "$MODPATH/$partition" "$MOD_IMG_DIR/" || { + ui_print "- Copying $partition/" + cp -af "$MODPATH/$partition" "$MOD_IMG_DIR/" || { ui_print "! Warning: Failed to move $partition" } fi done # Set permissions - chown -R 0:0 "$MOD_IMG_DIR" 2>/dev/null - chmod -R 755 "$MOD_IMG_DIR" 2>/dev/null + set_perm_recursive $MOD_IMG_DIR 0 0 0755 0644 + set_perm_recursive $MOD_IMG_DIR/system/bin 0 2000 0755 0755 + set_perm_recursive $MOD_IMG_DIR/system/xbin 0 2000 0755 0755 + set_perm_recursive $MOD_IMG_DIR/system/system_ext/bin 0 2000 0755 0755 + set_perm_recursive $MOD_IMG_DIR/system/vendor 0 2000 0755 0755 u:object_r:vendor_file:s0 - ui_print "- Module content moved to image" + ui_print "- Module content copied" } -# Main installation flow ui_print "- Using meta-overlayfs metainstall" -# 1. Ensure ext4 image is mounted -ensure_image_mounted - -# 2. Call standard install_module function (defined in installer.sh) install_module -# 3. Post-process: move content to image when overlay data exists if module_requires_overlay_move; then + ensure_image_mounted post_install_to_image else ui_print "- Skipping move to modules image"