#!/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
}

ui_print "DAP_r6.2"

# Mount system
ui_print "Mounting system..."
mount /system
mount -o rw,remount /system
mount -o rw,remount /system /system
mount /data
mount -o rw,remount /data
mount -o rw,remount /data /data

# Remove files
ui_print "Removing files..."
rm -rf /system/app/As*
rm -rf /system/app/AsUI*
rm -f /system/lib/soundfx/libswdap-mod.so
rm -f /system/lib/libdlbdapstorage.so
rm -f /system/etc/dolby

# Normal/vendor config locations
CONFIG_FILE=/system/etc/audio_effects.conf
VENDOR_CONFIG=/system/vendor/etc/audio_effects.conf

# If vendor exists, patch it
if [ -f $VENDOR_CONFIG ];
then
	# Remove library & effect
	sed -i '/dap/,/}/d' $VENDOR_CONFIG
fi

# Remove library & effect
sed -i '/dap/,/}/d' $CONFIG_FILE

# If vendor exists, patch it
if [ -f $VENDOR_CONFIG ];
then
	# Remove library & effect
	sed -i '/ds/,/#DOLBY_END/d' $VENDOR_CONFIG
fi

# Remove library & effect
sed -i '/ds/,/#DOLBY_END/d' $CONFIG_FILE

# Extract files
ui_print "Extracting files..."
cd /tmp
mkdir dap
cd dap
unzip -o "$ZIP"

# Copy files
ui_print "Copying files..."

cp /tmp/dap/lib/soundfx/libswdap-mod.so /system/lib/soundfx/libswdap-mod.so
chmod 0644 /system/lib/soundfx/libswdap-mod.so
cp /tmp/dap/lib/libdlbdapstorage.so /system/lib/libdlbdapstorage.so
chmod 0644 /system/lib/libdlbdapstorage.so

# Get API version
API=$(cat /system/build.prop | grep "ro.build.version.sdk=" | dd bs=1 skip=21 count=2)

if [ "$API" -ge "21" ];
then
	ui_print "Make sure to turn OFF NuPlayer in Developer Options!"
	mkdir -p /system/app/As
	cp /tmp/dap/app/As/As.apk /system/app/As/As.apk
	chmod -R 0755 /system/app/As
	mkdir -p /system/app/AsUI
	cp /tmp/dap/app/AsUI/AsUI.apk /system/app/AsUI/AsUI.apk
	chmod -R 0755 /system/app/AsUI	
else
	cp /tmp/dap/app/As/As.apk /system/app/As.apk
	chmod 0755 /system/app/As.apk
	cp /tmp/dap/app/AsUI/AsUI.apk /system/app/AsUI.apk
	chmod 0755 /system/app/AsUI.apk
fi

mkdir -p /system/etc/dolby
cp /tmp/dap/etc/dolby/ds-default.xml /system/etc/dolby/ds-default.xml
chmod 0644 /system/etc/dolby/ds-default.xml

# Install rom backup script if available
if [ -d /system/addon.d ]; 
then
	cp /tmp/dap/addon.d/23-dap.sh /system/addon.d/23-dap.sh
	chmod 0755 /system/addon.d/23-dap.sh
fi

ui_print "Patching $CONFIG_FILE..."

# If vendor exists, patch it
if [ -f $VENDOR_CONFIG ];
then
	# Add libary
	sed -i 's/^libraries {/libraries {\n  dap {\n    path \/system\/lib\/soundfx\/libswdap-mod.so\n  }/g' $VENDOR_CONFIG
	
	# Add effect
	sed -i 's/^effects {/effects {\n  dap {\n    library dap\n    uuid 9d4921da-8225-4f29-aefa-39537a041337\n  }/g' $VENDOR_CONFIG
fi

# Add libary
sed -i 's/^libraries {/libraries {\n  dap {\n    path \/system\/lib\/soundfx\/libswdap-mod.so\n  }/g' $CONFIG_FILE

# Add effect
sed -i 's/^effects {/effects {\n  dap {\n    library dap\n    uuid 9d4921da-8225-4f29-aefa-39537a041337\n  }/g' $CONFIG_FILE

# Cleanup
ui_print "Install complete"
umount /system
rm -rf /tmp/dap