#!/bin/sh

DRIVER="/System/Library/Extensions/ProlificUsbSerial.kext"

# Check if the driver is installed.
if [ ! -e "$DRIVER/Contents/Info.plist" ]; then
	echo "Please install the Prolific driver first!" 1>&2
	exit 1
fi

# Patch the driver.
patch --silent --backup -d "$DRIVER/Contents" -p0 <<'EOF'
--- Info.plist
+++ Info.plist
@@ -41,6 +41,40 @@
 			<key>idVendor</key>
 			<integer>1659</integer>
 		</dict>
+		<key>04B8_0521</key>
+		<dict>
+			<key>CFBundleIdentifier</key>
+			<string>com.prolific.driver.PL2303</string>
+			<key>IOClass</key>
+			<string>com_prolific_driver_PL2303</string>
+			<key>IOProviderClass</key>
+			<string>IOUSBInterface</string>
+			<key>bConfigurationValue</key>
+			<integer>1</integer>
+			<key>bInterfaceNumber</key>
+			<integer>0</integer>
+			<key>idProduct</key>
+			<integer>1313</integer>
+			<key>idVendor</key>
+			<integer>1208</integer>
+		</dict>
+		<key>04B8_0522</key>
+		<dict>
+			<key>CFBundleIdentifier</key>
+			<string>com.prolific.driver.PL2303</string>
+			<key>IOClass</key>
+			<string>com_prolific_driver_PL2303</string>
+			<key>IOProviderClass</key>
+			<string>IOUSBInterface</string>
+			<key>bConfigurationValue</key>
+			<integer>1</integer>
+			<key>bInterfaceNumber</key>
+			<integer>0</integer>
+			<key>idProduct</key>
+			<integer>1314</integer>
+			<key>idVendor</key>
+			<integer>1208</integer>
+		</dict>
 	</dict>
 	<key>OSBundleLibraries</key>
 	<dict>
EOF
if [ $? -ne 0 ]; then
	echo "Patching the driver failed!" 1>&2
	exit 1
fi

# Force an update of the kext cache.
touch "/System/Library/Extensions"

# Reload the driver.
kextunload "$DRIVER"
kextload "$DRIVER"
