#!/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_r1"

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

# Remove files
ui_print "Removing files..."
rm -rf /system/app/Ds*
rm -rf /system/app/DsUI*
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 instead
if [ -f $VENDOR_CONFIG ];
then
	CONFIG_FILE=$VENDOR_CONFIG
fi

# Restore audio_effects.conf
ui_print "Restoring $CONFIG_FILE..."

# If backup file exists restore that one
if [-f $CONFIG_FILE.bak ];
then
	mv -f $CONFIG_FILE.bak $CONFIG_FILE
fi

# Remove library & effect
sed -i '/dap/,/}/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
cp /tmp/dap/lib/libdlbdapstorage.so /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/Ds
	cp /tmp/dap/app/Ds/Ds.apk /system/app/Ds/Ds.apk
	mkdir -p /system/app/DsUI
	cp /tmp/dap/app/DsUI/DsUI.apk /system/app/DsUI/DsUI.apk
	
else
	cp /tmp/dap/app/Ds/Ds.apk /system/app/Ds.apk
	cp /tmp/dap/app/DsUI/DsUI.apk /system/app/DsUI.apk
fi

mkdir -p /system/etc/dolby
cp /tmp/dap/etc/dolby/ds-default.xml /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
fi

ui_print "Patching $CONFIG_FILE..."

# 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 "Brought to you by worstenbrood@2015"
umount /system
rm -rf /tmp/dap