#!/system/bin/sh

devices="$(ls -d /sys/devices/*/usb*/*/*/*0E77:0104* 2> /dev/null)"

if [ -z "$devices" ] ; then
	echo "no device detected"
	exit 0
fi

# to test with one and multiple devices
#devices="/sys/devices/ff580000.usb/usb3/3-1/3-1:1.0/0003:0E77:0104.0001"
#devices="/sys/devices/ff580000.usb/usb3/3-1/3-1:1.0/0003:0E77:0104.0001\n/sys/devices/ff580000.usb/usb3/3-1/5-1:1.0/0003:0E77:0104.0001"

function extractDevices {
	echo -e "$1" | while read device
		do
			devid="$(echo -e "$device" | cut -d '/' -f 7)" 
			if [ -z "$devid" ] ; then
				continue
			fi
			echo -n "$devid "
		done
}

devids=$(extractDevices "$devices")

echo "detected devices: $devids"

if [ "$1" != "--only-bind" ] ; then
	for devid in $devids
	do
		echo "unbinding $devid"
		echo -n "$devid" > /sys/bus/usb/drivers/usbhid/unbind 
	done
fi

if [ "$1" != "--only-unbind" ] ; then
	for devid in $devids
	do
		echo "binding $devid"
		echo -n "$devid" > /sys/bus/usb/drivers/usbhid/bind
	done
fi                                                                                                                                                                                                         

exit 0
