#!/sbin/sh

#------------------------------------------------------------------------
#                       PixelTouch OTA Package
#
#              This file is protected by various copyrights, 
#            therefore secondary distribution is not permitted.
#              Furthermore, obtaining or continuing to store 
#     OTA packages through means other than the updater is prohibited.
#
#                         2026 TeamPixelTouch
#                           pixeltouch.org
#------------------------------------------------------------------------

OUTFD=$2
ZIP_PATH=$3

ui_print() {
    echo -n -e "ui_print $1\n" > /proc/self/fd/$OUTFD
    echo -n -e "ui_print\n" > /proc/self/fd/$OUTFD
}

ui_print "--------------------------------"
ui_print "   PixelTouch: Update Package"
ui_print "   by kaepi2022  v2.1.0"
ui_print "--------------------------------"

if [ -f /sbin/twrp ] || [ -f /system/bin/twrp ] || [ -n "$TW_VERSION" ]; then
    ui_print ""
    ui_print "  [DETECTED]: TWRP ($OF_VERSION)"
    ui_print "  Hey there, TWRP bro! :)"
    ui_print "  you are using custom recovery. "
    ui_print "  Therefore, we cannot guarantee that it will work 100%."
    ui_print ""
elif [ -n "$OF_VERSION" ]; then
    ui_print ""
    ui_print "  [DETECTED]: OrangeFox ($OF_VERSION)"
    ui_print "  Hello Fox :D"
    ui_print "  you are using custom recovery. "
    ui_print "  Therefore, we cannot guarantee that it will work 100%."
    ui_print ""
fi

mount /dev/block/by-name/cache /cache 2>/dev/null

EXTRACT_DIR="/tmp/ota_package"
rm -rf "$EXTRACT_DIR"
mkdir -p "$EXTRACT_DIR"

ui_print "Extracting everything from ZIP..."
if unzip -o "$ZIP_PATH" -d "$EXTRACT_DIR"; then
    ui_print "Extraction success."
else
    ui_print "ERROR: Extraction failed!"
    exit 1
fi

ui_print "Mounting system partitions..."
mount -o rw /dev/block/mmcblk0p28 /system_root
TARGET_DIR="/system_root/system"
mount -t ext4 -o rw /dev/block/by-name/vendor /vendor
TARGET_DIR_VENDOR="/vendor/"

ui_print "Syncing files to $TARGET_DIR..."

if [ -d "$EXTRACT_DIR/system/system" ]; then
    SRC="$EXTRACT_DIR/system/system/."
elif [ -d "$EXTRACT_DIR/system" ]; then
    SRC="$EXTRACT_DIR/system/."
else
    SRC="$EXTRACT_DIR/system/." 
fi

if cp -af $SRC "$TARGET_DIR/"; then
    ui_print "Copy success."
else
    ui_print "ERROR: Copy failed! (Check if /system is RW)"
    exit 1
fi

ui_print "Setting permissions..."
toybox chmod 644 "$TARGET_DIR/build.prop"
toybox chmod 644 "$TARGET_DIR/etc/prop.default"

mkdir "$TARGET_DIR/priv-app/PixelTouchAcceptTermsSystems"
cp -af "$EXTRACT_DIR/files/MtkSettings.apk" "$TARGET_DIR/priv-app/MtkSettings/MtkSettings.apk"
cp -af "$EXTRACT_DIR/files/MtkDocumentsUI.apk" "$TARGET_DIR/priv-app/MtkDocumentsUI/MtkDocumentsUI.apk"
cp -af "$EXTRACT_DIR/files/PixelTouchInformation.apk" "$TARGET_DIR/app/PixelTouchInformation/PixelTouchInformation.apk"
toybox chmod 644 "$TARGET_DIR/priv-app/MtkSettings/MtkSettings.apk"
toybox chmod 644 "$TARGET_DIR/priv-app/MtkDocumentsUI/MtkDocumentsUI.apk"
toybox chmod 644 "$TARGET_DIR/app/PixelTouchInformation/PixelTouchInformation.apk"

ui_print "Starting removing pre-installed apps.."
ui_print "WTF?! >> WHY DOES THIS OTA PACKAGE UNINSTALL GOOGLE APPS?!"
ui_print "ANSWER : THESE GOOGLE APPS IS NOT POPULAR FOR SOME USER lol. :)"
[ -d "$TARGET_DIR_VENDOR/odm/app/Maps" ] && rm -rf "$TARGET_DIR_VENDOR/odm/app/Maps"
[ -d "$TARGET_DIR_VENDOR/odm/app/Duo" ] && rm -rf "$TARGET_DIR_VENDOR/odm/app/Duo"
ui_print "OPTIMIZATION DEX2OAT"
[ -d "$TARGET_DIR_VENDOR/odm/app/YouTube" ] && rm -rf "$TARGET_DIR_VENDOR/odm/app/YouTube"

ui_print "LET'S GOOOOOOOOOO"
ui_print "YOUR DEVICE BECAME SO LIGHT NOW!!!!"

rm -f /cache/recovery/command
rm -f /cache/update.zip

ui_print "Finishing touches... (Syncing)"
sync
sleep 8
sync
ui_print "Update Complete!"
exit 0