metaovl: use cp instead of mv to copy files
This commit is contained in:
@@ -45,8 +45,13 @@ ui_print "- Architecture-specific binary installed successfully"
|
|||||||
IMG_FILE="$MODPATH/modules.img"
|
IMG_FILE="$MODPATH/modules.img"
|
||||||
MNT_DIR="$MODPATH/mnt"
|
MNT_DIR="$MODPATH/mnt"
|
||||||
IMG_SIZE_MB=2048
|
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"
|
ui_print "- Creating 2GB ext4 image for module storage"
|
||||||
|
|
||||||
# Create sparse file (2GB logical size, 0 bytes actual)
|
# Create sparse file (2GB logical size, 0 bytes actual)
|
||||||
@@ -58,20 +63,6 @@ if [ ! -f "$IMG_FILE" ]; then
|
|||||||
abort "! Failed to format ext4 image"
|
abort "! Failed to format ext4 image"
|
||||||
|
|
||||||
ui_print "- Image created successfully (sparse file)"
|
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
|
fi
|
||||||
|
|
||||||
ui_print "- Installation complete"
|
ui_print "- Installation complete"
|
||||||
ui_print "- Image is ready for module installations"
|
|
||||||
|
|||||||
@@ -40,7 +40,9 @@ module_requires_overlay_move() {
|
|||||||
|
|
||||||
# Post-installation: move partition directories to ext4 image
|
# Post-installation: move partition directories to ext4 image
|
||||||
post_install_to_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"
|
MOD_IMG_DIR="$MNT_DIR/$MODID"
|
||||||
mkdir -p "$MOD_IMG_DIR"
|
mkdir -p "$MOD_IMG_DIR"
|
||||||
@@ -48,31 +50,29 @@ post_install_to_image() {
|
|||||||
# Move all partition directories
|
# Move all partition directories
|
||||||
for partition in system vendor product system_ext odm oem; do
|
for partition in system vendor product system_ext odm oem; do
|
||||||
if [ -d "$MODPATH/$partition" ]; then
|
if [ -d "$MODPATH/$partition" ]; then
|
||||||
ui_print " Moving $partition/"
|
ui_print "- Copying $partition/"
|
||||||
mv "$MODPATH/$partition" "$MOD_IMG_DIR/" || {
|
cp -af "$MODPATH/$partition" "$MOD_IMG_DIR/" || {
|
||||||
ui_print "! Warning: Failed to move $partition"
|
ui_print "! Warning: Failed to move $partition"
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Set permissions
|
# Set permissions
|
||||||
chown -R 0:0 "$MOD_IMG_DIR" 2>/dev/null
|
set_perm_recursive $MOD_IMG_DIR 0 0 0755 0644
|
||||||
chmod -R 755 "$MOD_IMG_DIR" 2>/dev/null
|
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"
|
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
|
install_module
|
||||||
|
|
||||||
# 3. Post-process: move content to image when overlay data exists
|
|
||||||
if module_requires_overlay_move; then
|
if module_requires_overlay_move; then
|
||||||
|
ensure_image_mounted
|
||||||
post_install_to_image
|
post_install_to_image
|
||||||
else
|
else
|
||||||
ui_print "- Skipping move to modules image"
|
ui_print "- Skipping move to modules image"
|
||||||
|
|||||||
Reference in New Issue
Block a user