Co-authored-by: weishu <twsxtd@gmail.com> Co-authored-by: YuKongA <70465933+YuKongA@users.noreply.github.com> Co-authored-by: Ylarod <me@ylarod.cn>
66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/system/bin/sh
|
|
# meta-overlayfs Module Mount Handler
|
|
# This script is the entry point for dual-directory module mounting
|
|
|
|
MODDIR="${0%/*}"
|
|
IMG_FILE="$MODDIR/modules.img"
|
|
MNT_DIR="$MODDIR/mnt"
|
|
|
|
# Log function
|
|
log() {
|
|
echo "[meta-overlayfs] $1"
|
|
}
|
|
|
|
log "Starting module mount process"
|
|
|
|
# Ensure ext4 image is mounted
|
|
if ! mountpoint -q "$MNT_DIR" 2>/dev/null; then
|
|
log "Image not mounted, mounting now..."
|
|
|
|
# Check if image file exists
|
|
if [ ! -f "$IMG_FILE" ]; then
|
|
log "ERROR: Image file not found at $IMG_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# Create mount point
|
|
mkdir -p "$MNT_DIR"
|
|
|
|
# Mount the ext4 image
|
|
mount -t ext4 -o loop,rw,noatime "$IMG_FILE" "$MNT_DIR" || {
|
|
log "ERROR: Failed to mount image"
|
|
exit 1
|
|
}
|
|
log "Image mounted successfully at $MNT_DIR"
|
|
else
|
|
log "Image already mounted at $MNT_DIR"
|
|
fi
|
|
|
|
# Binary path (architecture-specific binary selected during installation)
|
|
BINARY="$MODDIR/meta-overlayfs"
|
|
|
|
if [ ! -f "$BINARY" ]; then
|
|
log "ERROR: Binary not found: $BINARY"
|
|
exit 1
|
|
fi
|
|
|
|
# Set dual-directory environment variables
|
|
export MODULE_METADATA_DIR="/data/adb/modules"
|
|
export MODULE_CONTENT_DIR="$MNT_DIR"
|
|
|
|
log "Metadata directory: $MODULE_METADATA_DIR"
|
|
log "Content directory: $MODULE_CONTENT_DIR"
|
|
log "Executing $BINARY"
|
|
|
|
# Execute the mount binary
|
|
"$BINARY"
|
|
EXIT_CODE=$?
|
|
|
|
if [ $EXIT_CODE -ne 0 ]; then
|
|
log "Mount failed with exit code $EXIT_CODE"
|
|
exit $EXIT_CODE
|
|
fi
|
|
|
|
log "Mount completed successfully"
|
|
exit 0
|