#!/sbin/sh
# Custom update-binary for AIOG V4 (All-In-One Genshin)

OUTFD=$2
ZIPFILE=$3

# Custom UI Print function
ui_print() {
  echo -n -e "ui_print $1\n" >&"$OUTFD"
  echo -n -e "ui_print\n" >&"$OUTFD"
}

ui_print "- Starting AIOG custom installation..."

# Environment Detection (Magisk / KSU / APatch)
if [ -n "$KSU" ];
then
  ui_print "- Environment: KernelSU detected"
  ENV_DIR="/data/adb/ksu/modules"
elif [ -n "$APATCH" ];
then
  ui_print "- Environment: APatch detected"
  ENV_DIR="/data/adb/ap/modules"
else
  ui_print "- Environment: Magisk detected"
  ENV_DIR="/data/adb/modules"
fi

# Setup directory
MODID="aiog_genshin"
MODPATH="$ENV_DIR/$MODID"
TMPDIR="/dev/tmp/aiog_install"

rm -rf "$TMPDIR" 2>/dev/null
mkdir -p "$TMPDIR"

# Extract zip file (excluding META-INF)
ui_print "- Extracting module files..."
unzip -o "$ZIPFILE" -x "META-INF/*" -d "$TMPDIR" >&2

# Execute customize.sh
if [ -f "$TMPDIR/customize.sh" ];
then
  ui_print "- Executing customize.sh..."
  # Export variables for customize.sh
  export MODPATH
  export TMPDIR
  export ZIPFILE
  
  # Run custom script
  ash "$TMPDIR/customize.sh"
fi

# Move files to root module path
ui_print "- Installing module to root system..."
rm -rf "$MODPATH" 2>/dev/null
mkdir -p "$MODPATH"
cp -af $TMPDIR/* $MODPATH/

# Set manual permissions (Upgraded for stricter root access execution)
ui_print "- Setting up strict permissions..."
chown -R 0:0 "$MODPATH"
find "$MODPATH" -type d -exec chmod 755 {} \;
find "$MODPATH" -type f -exec chmod 644 {} \;
find "$MODPATH" -name "*.sh" -exec chmod 755 {} \;
find "$MODPATH" -name "system.prop" -exec chmod 644 {} \;

# Clean temp directory
rm -rf "$TMPDIR"

ui_print "- AIOG custom installer finished!"
exit 0
