From 676de74d9bf14d6a8db21d65e2cb2f2e4a1e3720 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Wed, 14 Dec 2011 02:52:42 +0000
Subject: [PATCH] Don't validate the Device Descriptor's vendor ID when
 validating that a device is an Android Accessory device; the Product ID and
 (later) Accessory protocol support is enough to probe AOA class support
 without having to maintain a list of Android device manufacture VID values.

---
 Demos/Host/LowLevel/AndroidAccessoryHost/DeviceDescriptor.c | 4 ----
 LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h | 3 ---
 LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c     | 3 ---
 3 files changed, 10 deletions(-)

diff --git a/Demos/Host/LowLevel/AndroidAccessoryHost/DeviceDescriptor.c b/Demos/Host/LowLevel/AndroidAccessoryHost/DeviceDescriptor.c
index be6bf1023..4e174f0fc 100644
--- a/Demos/Host/LowLevel/AndroidAccessoryHost/DeviceDescriptor.c
+++ b/Demos/Host/LowLevel/AndroidAccessoryHost/DeviceDescriptor.c
@@ -55,10 +55,6 @@ uint8_t ProcessDeviceDescriptor(void)
 	if (DeviceDescriptor.Header.Type != DTYPE_Device)
 	  return InvalidDeviceDataReturned;
 
-	/* Validate returned device Vendor ID against the Android ADK spec values */
-	if (DeviceDescriptor.VendorID != ANDROID_VENDOR_ID)
-	  return IncorrectAndroidDevice;
-
 	/* Check the product ID to determine if the Android device is in accessory mode */
 	if ((DeviceDescriptor.ProductID != ANDROID_ACCESSORY_PRODUCT_ID) &&
 	    (DeviceDescriptor.ProductID != ANDROID_ACCESSORY_ADB_PRODUCT_ID))
diff --git a/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h b/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
index f78643766..45e7ca540 100644
--- a/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
+++ b/LUFA/Drivers/USB/Class/Common/AndroidAccessoryClassCommon.h
@@ -64,9 +64,6 @@
 		#endif
 
 	/* Macros: */
-		/** Vendor ID value in a Device Descriptor to indicate an Android device. */
-		#define ANDROID_VENDOR_ID                   0x18D1
-
 		/** Product ID value in a Device Descriptor to indicate an Android device in Open Accessory mode. */
 		#define ANDROID_ACCESSORY_PRODUCT_ID        0x2D00
 
diff --git a/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c b/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
index 56a913d13..8ff64299f 100644
--- a/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
+++ b/LUFA/Drivers/USB/Class/Host/AndroidAccessoryClassHost.c
@@ -44,9 +44,6 @@ bool AOA_Host_ValidateAccessoryDevice(USB_ClassInfo_AOA_Host_t* const AOAInterfa
 	if (DeviceDescriptor->Header.Type != DTYPE_Device)
 	  return false;
 
-	if (DeviceDescriptor->VendorID != ANDROID_VENDOR_ID)
-	  return false;
-
 	*NeedModeSwitch = ((DeviceDescriptor->ProductID != ANDROID_ACCESSORY_PRODUCT_ID) &&
 	                   (DeviceDescriptor->ProductID != ANDROID_ACCESSORY_ADB_PRODUCT_ID));
 
-- 
GitLab