#!/bin/sh
/etc/init.d/framework stop
KDS=KindleDeviceServices
K3JAR=${KDS}Shasta-1.0.jar
K2JAR=${KDS}TN-1.0.jar
AMZPATH=/opt/amazon/ebook/lib/
JPATH=com/amazon/kindle/kindlet/internal/portability/
K2D1=A3P5ROKL5A1OLE
K2D2=A3UN6WX5RRO2AG
K2D3=A13V1IB3VIYZZH
K3D1=A1VC38T7YXB528
K3D2=A3AEGXETSR30VB
K3D3=A3JWKAKR8XB7XF
DCA=DeviceCapabilityAdapterImpl\$1.class
cd /mnt/us/deviceHack
mkdir -p k2
mkdir -p k3
mkdir -p k2root
umount ${AMZPATH}/${K3JAR} 2> /dev/null
if [ ! -e ${K3JAR}.orig ]
then
	echo "Backup original ${K3JAR} as ${K3JAR}.orig"
	cp ${AMZPATH}/${K3JAR} ${K3JAR}.orig
fi

if [ ! -e ${K2JAR} ]
then
	echo "${K2JAR} does not exist"
	K2IMG="/mnt/us/output/rootfs.img"
	if [ -e rootfs.img ]
	then 
		K2IMG=rootfs
	fi
	echo "attempt to mount ${K2IMG}"
	mount -o loop ${K2IMG} k2root
	echo "Attempt to copy ${K2JAR}"
	cp k2root/${AMZPATH}/${K2JAR} .
	umount k2root
fi
cd k3
echo "extracting k3 files"
rm -fr *
../unzip  -q ../${K3JAR}.orig
cd ..
if [ ! -e ${K2JAR} ]
then
	echo "Unable to find ${K2JAR}, process without it!"
	echo "Some keys may not work properly"
	echo "Patching ${DCA}"
	cp k3/${JPATH}/capability/${DCA} .
	cat ${DCA}|sed s/${K3D1}/${K2D1}/|sed s/${K3D2}/${K2D2}/|sed s/${K3D3}/${K2D3}/ > k3/${JPATH}/capability/${DCA} 
else
	cd k2
	echo "extracting k2 files"
	rm -fr *
	../unzip -q ../${K2JAR}
	cd ..
	echo "Copying res files"
	cp k2/res/* k3/res
	echo "Copying ${DCA}"
	cp k2/${JPATH}/capability/${DCA}  k3/${JPATH}/capability/
	echo "Overwrite shasta.keyborad.json by miranda.keyboard.json"
	cp k2/${JPATH}/hardware/miranda.keyboard.json k3/${JPATH}/hardware/shasta.keyboard.json        
fi
echo "Patching b/d.class"
cp k3/${JPATH}/b/d.class .
cat d.class|sed s/${K3D1}/${K2D1}/|sed s/${K3D2}/${K2D2}/|sed s/${K3D3}/${K2D3}/ > k3/${JPATH}/b/d.class 
echo "Packing ${K3JAR}.new"
cd k3
../zip -q -r ../${K3JAR}.new *
cd ..
if [ $1 == install ]
then
	echo "Copying ${K3JAR}"
	cp ${K3JAR}.new ${AMZPATH}/${K3JAR}
else	
	echo "Binding ${K3JAR}"
	mount -o bind ${K3JAR}.new ${AMZPATH}/${K3JAR}
fi
/etc/init.d/framework start
