#!/sbin/sh

OUTFD=$2
ZIP=$3

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

cd /tmp
rm -rf arter97
mkdir arter97
cd arter97
unzip -o "$ZIP"

ui_print " ";
ui_print " - mounting system partition"
mount /system

# Sanity check
if ! grep -q "csc_set_filter_property" /system/lib64/libcsc.so ; then
	ui_print "!Firmware is older than OH2!"
	ui_print "!OH2+ firmware is required for this kernel!"
	exit 1
fi

ui_print " - mounting data partition"
mount /data

ui_print " - flashing boot.img"
cat boot.img > /dev/block/platform/15570000.ufs/by-name/BOOT

ui_print " - removing Knox"
cd /system

rm -rf *app/BBCAgent*
rm -rf *app/Bridge*
rm -rf *app/ContainerAgent*
rm -rf *app/ContainerEventsRelayManager*
rm -rf *app/DiagMonAgent*
rm -rf *app/ELMAgent*
rm -rf *app/FotaClient*
rm -rf *app/FWUpdate*
rm -rf *app/FWUpgrade*
rm -rf *app/HLC*
rm -rf *app/KLMSAgent*
rm -rf *app/*Knox*
rm -rf *app/*KNOX*
rm -rf *app/LocalFOTA*
rm -rf *app/RCPComponents*
rm -rf *app/SecKids*
rm -rf *app/SecurityLogAgent*
rm -rf *app/SPDClient*
rm -rf *app/SyncmlDM*
rm -rf *app/UniversalMDMClient*
rm -rf container/*Knox*
rm -rf container/*KNOX*

sed -i -e '/ro.securestorage.knox/c\ro.securestorage.knox=false' build.prop
sed -i -e '/ro.securestorage.support/c\ro.securestorage.support=false' build.prop

if [ ! -e /system/noble_egl_v2_installed ]; then
	ui_print " - installing new Graphics drivers"
	chown 0.0 -R /tmp/arter97/system
	find /tmp/arter97/system -type d -exec chmod 755 {} \;
	find /tmp/arter97/system -type f -exec chmod 644 {} \;
	cp -rp /tmp/arter97/system/* .
	touch /system/noble_egl_v2_installed
fi
rm /system/lib*/omx/libOMX.Exynos.AAC.Decoder.so 2>/dev/null
rm /system/lib*/omx/libOMX.Exynos.FLAC.Decoder.so 2>/dev/null
rm /system/lib*/omx/libOMX.Exynos.MP3.Decoder.so 2>/dev/null

cd /
ui_print " - tuning file systems"
fstrim -v /system > /dev/null 2>&1
fstrim -v /data   > /dev/null 2>&1
fstrim -v /cache  > /dev/null 2>&1

ui_print " - unmounting partition /data"
umount /data > /dev/null 2>&1

ui_print " - unmounting partition /system"
umount /system > /dev/null 2>&1

ui_print " "
ui_print "finished"
rm -rf /tmp/arter97
sync
