jwise / HoRNDIS

Android USB tethering driver for Mac OS X
Other
2.98k stars 328 forks source link

Should match with IOUSBInterface, not IOUSBDevice #2

Closed robolmos closed 11 years ago

robolmos commented 11 years ago

Devices like Droid RAZR, which have a device class of 0/0/0 (rather than 224/0/0), will not work, since currently we match on a device class of 224/0/0. We should match on an interface class to make sure we get what we want; if we do that, then we can match on the more specific interface class, as well, to avoid picking up CDC devices.

Original:

Subj: Tethering error with Mac 10.7.5 and Android 4.0.4

Steps:

  1. Installed HoRNDIS and rebooted (tried install/reboot again just to be sure)
  2. Plugged in my phone via USB
  3. Enabled USB tethering and it says "tethering error" on the phone
    • There are also no changes in the Network preferences on the Mac

Via kextstat I saw it wasn't loaded so I manually loaded it:

sudo kextload /System/Library/Extensions/HoRNDIS.kext

Tried to tether again and noticed these errors in kernel.log:

Nov 14 19:05:28 Robs-MacBook-Pro kernel[0]: 0 1 AppleUSBCDCACMData: start - Find CDC driver for ACM data interface failed Nov 14 19:05:28 Robs-MacBook-Pro kernel[0]: 0 1 AppleUSBCDCECMData: start - Find CDC driver for ECM data interface failed

jwise commented 11 years ago

Hi Rob.

Here's a link to the USB prober tool (you can also get it in Apple's USB debug kits) for OS X.

Can you launch that, attempt to tether your phone, and then click "Save Output" and attach the file here? I think what's going on is that HoRNDIS is not matching against your device because the descriptors may be slightly different than what it's expecting; if that be the case, then I should have a quick fix for you.

Thanks, joshua

robolmos commented 11 years ago

Hey Joshua,

I tried the USB Prober app and it crashes. I tried looking for a debug kit and none of them are for 10.7.5. Can you provide me a link a 10.7.5 USB debug kit or or steps to find it?

Thanks

jwise commented 11 years ago

Gee, that's no good! What's the crash signature -- is there some particular library that's missing? I may be able to provide the missing dylib.

Unfortunately, if it's not on Apple's site, I'm not sure where to find it, but in case something went wrong when I was zipping it, you can try [http://touch-base.com/documentation/USBMacProber.htm](one of the versions from this guy's site), too.

robolmos commented 11 years ago

I just now found USB Prober and got it running. It's in the Hardware IO Tools for February. Apparently it was removed from the Late July (August) Tools...

Running the capture now.

robolmos commented 11 years ago

Is this what you're looking for? The USB Port status?

Hub (EHCI Root Hub Simulation) @ 0xfa000000 with 6 ports Port 1: Status: 0x0503 Change: 0x0000 HubDevice STATUS(change): CONNECT ENABLE POWER HighSpeed Port 2: Status: 0x0507 Change: 0x0000 FaceTime HD Camera (Built-in) STATUS(change): CONNECT ENABLE SUSPEND POWER HighSpeed Port 3: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 4: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 5: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 6: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Hub (HubDevice) @ 0xfa100000 with 3 ports Port 1: Status: 0x0107 Change: 0x0000 BRCM2070 Hub STATUS(change): CONNECT ENABLE SUSPEND POWER FullSpeed Port 2: Status: 0x0103 Change: 0x0000 Apple Internal Keyboard / Trackpad STATUS(change): CONNECT ENABLE POWER FullSpeed Port 3: Status: 0x0503 Change: 0x0000 XT912 STATUS(change): CONNECT ENABLE POWER HighSpeed Hub (BRCM2070 Hub) @ 0xfa110000 with 3 ports Port 1: (_dev)->DeviceRequest err: 0xe000404f Port 2: Not Responding Port 3: (_dev)->DeviceRequest err: 0xe000404f Hub (EHCI Root Hub Simulation) @ 0xfd000000 with 8 ports Port 1: Status: 0x0507 Change: 0x0000 HubDevice STATUS(change): CONNECT ENABLE SUSPEND POWER HighSpeed Port 2: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 3: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 4: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 5: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 6: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 7: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Port 8: Status: 0x0500 Change: 0x0000 STATUS(change): POWER HighSpeed Hub (HubDevice) @ 0xfd100000 with 2 ports Port 1: Not Responding Port 2: Not Responding

jwise commented 11 years ago

I'm looking for the results in the 'bus probe' tab (importantly, the device and configuration descriptors). A "Save Output" in the bus probe tab should get the right thing.

robolmos commented 11 years ago

Ah, OK. I think it's only the XT912 section but here's all of it just in case:

High Speed device @ 1 (0xFA000000): ............................................. Hub device: "EHCI Root Hub Simulation" Port Information: 0x061d Built-in Root Hub Captive Internal Device Connected Enabled Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 2 Device Descriptor
Descriptor Version Number: 0x0200 Device Class: 9 (Hub) Device Subclass: 0 Device Protocol: 1 (High Speed Single Transaction Translator) Device MaxPacketSize: 64 Device VendorID/ProductID: 0x05AC/0x8006 (Apple Inc.) Device Version Number: 0x0200 Number of Configurations: 1 Manufacturer String: 2 "Apple Inc." Product String: 1 "EHCI Root Hub Simulation" Serial Number String: 0 (none) Configuration Descriptor (current config)
Length (and contents): 27 Raw Descriptor (hex) 0000: 0A 02 1B 00 01 01 00 60 00 4A 09 04 00 00 01 09
Raw Descriptor (hex) 0010: 00 01 00 08 05 81 03 08 00 09 FF Number of Interfaces: 1 Configuration Value: 1 Attributes: 0x60 (self-powered, remote wakeup) MaxPower: 0 ma Interface #0 - Hub
Alternate Setting 0 Number of Endpoints 1 Interface Class: 9 (Hub) Interface Subclass; 0 Interface Protocol: 1 (Multi TT Hub configured as a Single TT Hub) Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 8 (8 x 1 transactions opportunities per microframe) Polling Interval: 9 (256 microframes (32 msecs) ) High Speed device @ 2 (0xFA200000): ............................................. FaceTime HD Camera (Built-in) (Device is suspended) Port Information: 0x003f Captive Attached to Root Hub Internal Device Connected Enabled Suspended Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 3 High Speed device @ 3 (0xFA100000): ............................................. Hub device from SMSC Port Information: 0x001f Captive Attached to Root Hub Internal Device Connected Enabled Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 2 Device Descriptor
Descriptor Version Number: 0x0200 Device Class: 9 (Hub) Device Subclass: 0 Device Protocol: 2 (High Speed Multiple Transaction Translators) Device MaxPacketSize: 64 Device VendorID/ProductID: 0x0424/0x2513 (SMSC) Device Version Number: 0x0BB3 Number of Configurations: 1 Manufacturer String: 0 (none) Product String: 0 (none) Serial Number String: 0 (none) Configuration Descriptor (current config)
Length (and contents): 41 Raw Descriptor (hex) 0000: 09 02 29 00 01 01 00 E0 01 09 04 00 00 01 09 00
Raw Descriptor (hex) 0010: 01 00 07 05 81 03 01 00 0C 09 04 00 01 01 09 00
Raw Descriptor (hex) 0020: 02 00 07 05 81 03 01 00 0C Number of Interfaces: 1 Configuration Value: 1 Attributes: 0xE0 (self-powered, remote wakeup) MaxPower: 2 ma Interface #0 - Hub
Alternate Setting 0 Number of Endpoints 1 Interface Class: 9 (Hub) Interface Subclass; 0 Interface Protocol: 1 (Multi TT Hub configured as a Single TT Hub) Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 1 (1 x 1 transactions opportunities per microframe) Polling Interval: 12 (2048 microframes (256 msecs) ) Interface #0 - Hub (#1)
Alternate Setting 1 Number of Endpoints 1 Interface Class: 9 (Hub) Interface Subclass; 0 Interface Protocol: 2 (Multi TT Hub) Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 1 (1 x 1 transactions opportunities per microframe) Polling Interval: 12 (2048 microframes (256 msecs) ) Hub Descriptor
Length (and contents): 9 Raw Descriptor (hex) 0000: 09 29 03 0D 00 32 01 0E FF Number of Ports: 0x03 Hub Characteristics: 0xd (Individually switched compound hub with individual port overcurrent protection requiring 8 FS bit times and no port indicators) PowerOnToGood time: 100 ms Controller current: 1 mA Device Removable (byte): 0xe Port Power Control Mask (byte): 0xff Device Qualifier Descriptor
Descriptor Version Number: 0x0200 Device Class 9 (Hub) Device Subclass 0 Device Protocol 0 (Full/Low Speed) Device MaxPacketSize: 64 Number of Configurations: 1 bReserved: 0 Other Speed Configuration Descriptor
Length (and contents): 25 Raw Descriptor (hex) 0000: 09 07 19 00 01 01 00 E0 01 09 04 00 00 01 09 00
Raw Descriptor (hex) 0010: 00 00 07 05 81 03 01 00 FF Number of Interfaces: 1 Configuration Value: 1 Attributes: 0xE0 (self-powered, remote wakeup) MaxPower: 2 ma Interface #0 - Hub
Alternate Setting 0 Number of Endpoints 1 Interface Class: 9 (Hub) Interface Subclass; 0 Interface Protocol: 0 Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 1 Polling Interval: 255 ms Full Speed device @ 4 (0xFA110000): ............................................. BRCM2070 Hub (Device is suspended) Port Information: 0x003d Captive Internal Device Connected Enabled Suspended Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 2 Full Speed device @ 5 (0xFA120000): ............................................. Composite device: "Apple Internal Keyboard / Trackpad" Port Information: 0x001d Captive Internal Device Connected Enabled Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 4 Device Descriptor
Descriptor Version Number: 0x0200 Device Class: 0 (Composite) Device Subclass: 0 Device Protocol: 0 Device MaxPacketSize: 8 Device VendorID/ProductID: 0x05AC/0x0252 (Apple Inc.) Device Version Number: 0x0118 Number of Configurations: 1 Manufacturer String: 1 "Apple Inc." Product String: 2 "Apple Internal Keyboard / Trackpad" Serial Number String: 0 (none) Configuration Descriptor (current config)
Length (and contents): 84 Raw Descriptor (hex) 0000: 09 02 54 00 03 01 00 A0 14 09 04 00 00 01 03 01
Raw Descriptor (hex) 0010: 01 03 09 21 11 01 21 01 22 9C 00 07 05 83 03 0A
Raw Descriptor (hex) 0020: 00 08 09 04 01 00 01 03 00 00 04 09 21 11 01 00
Raw Descriptor (hex) 0030: 01 22 1B 00 07 05 81 03 40 00 02 09 04 02 00 01
Raw Descriptor (hex) 0040: 03 01 02 04 09 21 11 01 00 01 22 34 00 07 05 84
Raw Descriptor (hex) 0050: 03 08 00 08 Number of Interfaces: 3 Configuration Value: 1 Attributes: 0xA0 (bus-powered, remote wakeup) MaxPower: 40 ma Interface #0 - HID/Boot Interface .............................................. "Apple Internal Keyboard" Alternate Setting 0 Number of Endpoints 1 Interface Class: 3 (HID) Interface Subclass; 1 (Boot Interface) Interface Protocol: 1 HID Descriptor
Descriptor Version Number: 0x0111 Country Code: 33 Descriptor Count: 1 Descriptor 1
Type: 0x22 (Report Descriptor) Length (and contents): 156 Raw Descriptor (hex) 0000: 05 01 09 06 A1 01 85 01 05 07 19 E0 29 E7 15 00
Raw Descriptor (hex) 0010: 25 01 75 01 95 08 81 02 95 01 75 08 81 01 95 05
Raw Descriptor (hex) 0020: 75 01 05 08 19 01 29 05 91 02 95 01 75 03 91 01
Raw Descriptor (hex) 0030: 95 06 75 08 15 00 26 FF 00 05 07 19 00 29 FF 81
Raw Descriptor (hex) 0040: 00 05 0C 75 01 95 01 09 B8 15 00 25 01 81 02 05
Raw Descriptor (hex) 0050: FF 09 03 75 07 95 01 81 02 C0 05 0C 09 01 A1 01
Raw Descriptor (hex) 0060: 85 52 15 00 25 01 75 01 95 01 09 CD 81 02 09 B3
Raw Descriptor (hex) 0070: 81 02 09 B4 81 02 09 B5 81 02 09 B6 81 02 81 01
Raw Descriptor (hex) 0080: 81 01 81 01 85 09 15 00 25 01 75 08 95 01 06 01
Raw Descriptor (hex) 0090: FF 09 0B B1 02 75 08 95 02 B1 01 C0 Parsed Report Descriptor:
Usage Page (Generic Desktop) Usage (Keyboard)
Collection (Application)
ReportID................ (1)
Usage Page (Keyboard/Keypad) Usage Minimum........... (224)
Usage Maximum........... (231)
Logical Minimum......... (0)
Logical Maximum......... (1)
Report Size............. (1)
Report Count............ (8)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Report Count............ (1)
Report Size............. (8)
Input................... (Constant, Array, Absolute) Report Count............ (5)
Report Size............. (1)
Usage Page (LED) Usage Minimum........... (1)
Usage Maximum........... (5)
Output.................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) Report Count............ (1)
Report Size............. (3)
Output.................. (Constant, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) Report Count............ (6)
Report Size............. (8)
Logical Minimum......... (0)
Logical Maximum......... (255)
Usage Page (Keyboard/Keypad) Usage Minimum........... (0)
Usage Maximum........... (255)
Input................... (Data, Array, Absolute) Usage Page (Consumer) Report Size............. (1)
Report Count............ (1)
Usage 184 (0xb8)
Logical Minimum......... (0)
Logical Maximum......... (1)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage Page (255) Usage 3 (0x3)
Report Size............. (7)
Report Count............ (1)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) End Collection
Usage Page (Consumer) Usage 1 (0x1)
Collection (Application)
ReportID................ (82)
Logical Minimum......... (0)
Logical Maximum......... (1)
Report Size............. (1)
Report Count............ (1)
Usage 205 (0xcd)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage 179 (0xb3)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage 180 (0xb4)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage 181 (0xb5)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Usage 182 (0xb6)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Input................... (Constant, Array, Absolute) Input................... (Constant, Array, Absolute) Input................... (Constant, Array, Absolute) ReportID................ (9)
Logical Minimum......... (0)
Logical Maximum......... (1)
Report Size............. (8)
Report Count............ (1)
Usage Page (Vendor defined 1) Usage 11 (0xb)
Feature................. (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) Report Size............. (8)
Report Count............ (2)
Feature................. (Constant, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) End Collection
Endpoint 0x83 - Interrupt Input
Address: 0x83 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 10 Polling Interval: 8 ms Interface #1 - HID .............................................. "Touchpad" Alternate Setting 0 Number of Endpoints 1 Interface Class: 3 (HID) Interface Subclass; 0 Interface Protocol: 0 HID Descriptor
Descriptor Version Number: 0x0111 Country Code: 0 Descriptor Count: 1 Descriptor 1
Type: 0x22 (Report Descriptor) Length (and contents): 27 Raw Descriptor (hex) 0000: 06 00 FF 09 01 A1 03 06 00 FF 09 01 15 00 26 FF
Raw Descriptor (hex) 0010: 00 85 44 75 08 96 FF 01 81 00 C0 Parsed Report Descriptor:
Usage Page (Vendor defined 0) Usage 1 (0x1)
Collection (Collection )
Usage Page (Vendor defined 0) Usage 1 (0x1)
Logical Minimum......... (0)
Logical Maximum......... (255)
ReportID................ (68)
Report Size............. (8)
Report Count............ (511)
Input................... (Data, Array, Absolute) End Collection
Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 64 Polling Interval: 2 ms Interface #2 - HID/Boot Interface .............................................. "Touchpad" Alternate Setting 0 Number of Endpoints 1 Interface Class: 3 (HID) Interface Subclass; 1 (Boot Interface) Interface Protocol: 2 HID Descriptor
Descriptor Version Number: 0x0111 Country Code: 0 Descriptor Count: 1 Descriptor 1
Type: 0x22 (Report Descriptor) Length (and contents): 52 Raw Descriptor (hex) 0000: 05 01 09 02 A1 01 09 01 A1 00 05 09 19 01 29 03
Raw Descriptor (hex) 0010: 15 00 25 01 85 02 95 03 75 01 81 02 95 01 75 05
Raw Descriptor (hex) 0020: 81 01 05 01 09 30 09 31 15 81 25 7F 75 08 95 02
Raw Descriptor (hex) 0030: 81 06 C0 C0 Parsed Report Descriptor:
Usage Page (Generic Desktop) Usage (Mouse)
Collection (Application)
Usage (Pointer)
Collection (Physical)
Usage Page (Button) Usage Minimum........... (1)
Usage Maximum........... (3)
Logical Minimum......... (0)
Logical Maximum......... (1)
ReportID................ (2)
Report Count............ (3)
Report Size............. (1)
Input................... (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) Report Count............ (1)
Report Size............. (5)
Input................... (Constant, Array, Absolute) Usage Page (Generic Desktop) Usage (X)
Usage (Y)
Logical Minimum......... (-127)
Logical Maximum......... (127)
Report Size............. (8)
Report Count............ (2)
Input................... (Data, Variable, Relative, No Wrap, Linear, Preferred State, No Null Position, Bitfield) End Collection
End Collection
Endpoint 0x84 - Interrupt Input
Address: 0x84 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 8 Polling Interval: 8 ms Full Speed device @ 7 (0xFA113000): ............................................. Bluetooth USB Host Controller (did not respond to inquiry - kIOReturnNotResponding (0xe00002ed)) Port Information: kIOUSBPipeStalled (0xe000404f) Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 8 High Speed device @ 6 (0xFA130000): ............................................. Composite device: "XT912" Port Information: 0x001d Captive Internal Device Connected Enabled Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 4 Device Descriptor
Descriptor Version Number: 0x0200 Device Class: 0 (Composite) Device Subclass: 0 Device Protocol: 0 Device MaxPacketSize: 64 Device VendorID/ProductID: 0x22B8/0x431C (Motorola MDS) Device Version Number: 0x0216 Number of Configurations: 1 Manufacturer String: 2 "Motorola" Product String: 3 "XT912" Serial Number String: 4 "0A3BEA020A00C01C" Configuration Descriptor (current config)
Length (and contents): 75 Raw Descriptor (hex) 0000: 09 02 4B 00 02 01 00 C0 FA 08 0B 00 02 E0 01 03
Raw Descriptor (hex) 0010: 1B 09 04 00 00 01 E0 01 03 19 05 24 00 10 01 05
Raw Descriptor (hex) 0020: 24 01 00 01 04 24 02 00 05 24 06 00 01 07 05 82
Raw Descriptor (hex) 0030: 03 08 00 09 09 04 01 00 02 0A 00 00 1A 07 05 81
Raw Descriptor (hex) 0040: 02 00 02 00 07 05 01 02 00 02 00 Number of Interfaces: 2 Configuration Value: 1 Attributes: 0xC0 (self-powered) MaxPower: 500 ma Interface Association Wireless Controller/RF Controller First Interface 0 Interface Count 2 Function Class 224 (Wireless Controller) Function Subclass 1 (RF Controller) Interface Protocol 3 Function String 27 "RNDIS" Interface #0 - Wireless Controller/RF Controller .............................................. "RNDIS Communications Control" Alternate Setting 0 Number of Endpoints 1 Interface Class: 224 (Wireless Controller) Interface Subclass; 1 (RF Controller) Interface Protocol: 3 (Unknown) Raw Descriptor (hex) 0000: 05 24 00 10 01 Raw Descriptor (hex) 0000: 05 24 01 00 01 Raw Descriptor (hex) 0000: 04 24 02 00 Raw Descriptor (hex) 0000: 05 24 06 00 01 Endpoint 0x82 - Interrupt Input
Address: 0x82 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 8 (8 x 1 transactions opportunities per microframe) Polling Interval: 9 (256 microframes (32 msecs) ) Interface #1 - Communications-Data/Unknown Comm Class Model .............................................. "RNDIS Ethernet Data" Alternate Setting 0 Number of Endpoints 2 Interface Class: 10 (Communications-Data) Interface Subclass; 0 (Unknown Comm Class Model) Interface Protocol: 0 Endpoint 0x81 - Bulk Input
Address: 0x81 (IN) Attributes: 0x02 (Bulk no synchronization data endpoint) Max Packet Size: 512 Polling Interval: 0 ( Endpoint never NAKs) Endpoint 0x01 - Bulk Output
Address: 0x01 (OUT) Attributes: 0x02 (Bulk no synchronization data endpoint) Max Packet Size: 512 Polling Interval: 0 ( Endpoint never NAKs) Device Qualifier Descriptor
Descriptor Version Number: 0x0200 Device Class 0 (Composite) Device Subclass 0 Device Protocol 0 Device MaxPacketSize: 64 Number of Configurations: 1 bReserved: 0 Other Speed Configuration Descriptor
Length (and contents): 75 Raw Descriptor (hex) 0000: 09 07 4B 00 02 01 00 C0 FA 08 0B 00 02 E0 01 03
Raw Descriptor (hex) 0010: 1B 09 04 00 00 01 E0 01 03 19 05 24 00 10 01 05
Raw Descriptor (hex) 0020: 24 01 00 01 04 24 02 00 05 24 06 00 01 07 05 82
Raw Descriptor (hex) 0030: 03 08 00 20 09 04 01 00 02 0A 00 00 1A 07 05 81
Raw Descriptor (hex) 0040: 02 40 00 00 07 05 01 02 40 00 00 Number of Interfaces: 2 Configuration Value: 1 Attributes: 0xC0 (self-powered) MaxPower: 500 ma Interface Association Wireless Controller/RF Controller First Interface 0 Interface Count 2 Function Class 224 (Wireless Controller) Function Subclass 1 (RF Controller) Interface Protocol 3 Function String 27 "RNDIS" Interface #0 - Wireless Controller/RF Controller .............................................. "RNDIS Communications Control" Alternate Setting 0 Number of Endpoints 1 Interface Class: 224 (Wireless Controller) Interface Subclass; 1 (RF Controller) Interface Protocol: 3 (Unknown) Raw Descriptor (hex) 0000: 05 24 00 10 01 Raw Descriptor (hex) 0000: 05 24 01 00 01 Raw Descriptor (hex) 0000: 04 24 02 00 Raw Descriptor (hex) 0000: 05 24 06 00 01 Endpoint 0x82 - Interrupt Input
Address: 0x82 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 8 Polling Interval: 32 ms Interface #1 - Communications-Data/Unknown Comm Class Model .............................................. "RNDIS Ethernet Data" Alternate Setting 0 Number of Endpoints 2 Interface Class: 10 (Communications-Data) Interface Subclass; 0 (Unknown Comm Class Model) Interface Protocol: 0 Endpoint 0x81 - Bulk Input
Address: 0x81 (IN) Attributes: 0x02 (Bulk no synchronization data endpoint) Max Packet Size: 64 Polling Interval: 0 ms Endpoint 0x01 - Bulk Output
Address: 0x01 (OUT) Attributes: 0x02 (Bulk no synchronization data endpoint) Max Packet Size: 64 Polling Interval: 0 ms High Speed device @ 1 (0xFD000000): ............................................. Hub device: "EHCI Root Hub Simulation" Port Information: 0x061d Built-in Root Hub Captive Internal Device Connected Enabled Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 2 Device Descriptor
Descriptor Version Number: 0x0200 Device Class: 9 (Hub) Device Subclass: 0 Device Protocol: 1 (High Speed Single Transaction Translator) Device MaxPacketSize: 64 Device VendorID/ProductID: 0x05AC/0x8006 (Apple Inc.) Device Version Number: 0x0200 Number of Configurations: 1 Manufacturer String: 2 "Apple Inc." Product String: 1 "EHCI Root Hub Simulation" Serial Number String: 0 (none) Configuration Descriptor (current config)
Length (and contents): 27 Raw Descriptor (hex) 0000: 0A 02 1B 00 01 01 00 60 00 8C 09 04 00 00 01 09
Raw Descriptor (hex) 0010: 00 01 00 08 05 81 03 08 00 09 FF Number of Interfaces: 1 Configuration Value: 1 Attributes: 0x60 (self-powered, remote wakeup) MaxPower: 0 ma Interface #0 - Hub
Alternate Setting 0 Number of Endpoints 1 Interface Class: 9 (Hub) Interface Subclass; 0 Interface Protocol: 1 (Multi TT Hub configured as a Single TT Hub) Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN) Attributes: 0x03 (Interrupt no synchronization data endpoint) Max Packet Size: 8 (8 x 1 transactions opportunities per microframe) Polling Interval: 9 (256 microframes (32 msecs) ) High Speed device @ 2 (0xFD100000): ............................................. HubDevice (Device is suspended) Port Information: 0x003f Captive Attached to Root Hub Internal Device Connected Enabled Suspended Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 2 Low Speed device @ 3 (0xFD110000): ............................................. IR Receiver (did not respond to inquiry - kIOUSBHighSpeedSplitError (0xe000404b)) Port Information: kIOReturnNotResponding (0xe00002ed) Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (current): 2

jwise commented 11 years ago

Ok, I understand what's happening there. Yes, the descriptors are slightly different than that for the Galaxy Nexus. It will require a little more doing than I expected, but I think I see how to make that work. (The solution is, arguably, what I should have done in the first place.)

Bed time now, but I'll try to do that tomorrow.

tburch commented 11 years ago

I'm seeing the same thing with a Samsung Galaxy S3 (Android 4.0.4) on Tmobile on Mac 10.8.2. Here's the output from my bus probe:

Super Speed device @ 128 (0x14800000): .............................................   Hub device: "XHCI Root Hub SS Simulation"
    Port Information:   0x061d
           Built-in Root Hub
           Captive
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
    Device Descriptor   
        Descriptor Version Number:   0x0300
        Device Class:   9   (Hub)
        Device Subclass:   0
        Device Protocol:   3   (SuperSpeed)
        Device MaxPacketSize:   9
        Device VendorID/ProductID:   0x05AC/0x8007   (Apple Inc.)
        Device Version Number:   0x0300
        Number of Configurations:   1
        Manufacturer String:   2 "Apple Inc."
        Product String:   1 "XHCI Root Hub SS Simulation"
        Serial Number String:   0 (none)
    BOS Descriptor   
        Length (and contents):   42
            Raw Descriptor (hex)    0000: 05 0F 2A 00 03 07 10 02  02 00 00 00 0A 10 03 02  
            Raw Descriptor (hex)    0010: 0C 00 08 0A 64 00 14 10  04 00 DF FB 1E 9E 1B 1D  
            Raw Descriptor (hex)    0020: 10 46 AE 91 3B 66 F5 56  1D 0A 
        Number of Capability Descriptors:   3
            USB 2.0 Extension:   2
                bmAttributes:   0x00000002
                   Bit 1:  Link Power Management supported
            SuperSpeed USB Device:   3
                bmAttributes:   0x00000002
                   Bit 1:  Latency Tolerance Messages supported
                wSpeedsSupported:   0x000c
                   Bit 2:  High Speed supported
                   Bit 3:  Super Speed (5Gbps) supported
                bFunctionalitySupport:   0x0008:  Super Speed Only
                bU1ExitLat:   Less than 10 µs
                wU2ExitLat:   Less than 100 µs
            ContainerID:   9e1efbdf-1d1b-4610-ae91-3b66f5561d0a
    Configuration Descriptor (current config)   
        Length (and contents):   33
            Raw Descriptor (hex)    0000: 0A 02 21 00 01 01 00 60  00 00 09 04 00 00 01 09  
            Raw Descriptor (hex)    0010: 00 00 00 08 05 81 13 02  00 09 00 06 30 00 00 02  
            Raw Descriptor (hex)    0020: 00 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0x60 (self-powered, remote wakeup)
        MaxPower:   0 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   0
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x13  (Interrupt notification)
                Max Packet Size:   2
                Polling Interval:   9 (256 microframes (32 msecs) )
            SuperSpeed Endpoint Companion   
                bMaxBurst:   0
                bmAttributes:   0 (Mult: 0,  max number of packets: 0)
                wBytesPerInterval:   2
    Hub Descriptor   
        Length (and contents):   28
            Raw Descriptor (hex)    0000: 1C 2A 04 00 00 32 00 00  0A 00 00 FF 82 FF FF FF  
            Raw Descriptor (hex)    0010: 0A 2D A2 24 80 FF FF FF  F0 39 29 3F 
        Number of Ports:   0x04
        Hub Characteristics:   0x0 (Gang switched standalone hub with global overcurrent protection)
        PowerOnToGood time:   100 ms
        Controller current:   0 mA
        Header decode latency:   
        Hub delay time:   10 ns
        Device Removable (byte):   0x0
High Speed device @ 1 (0x1A000000): .............................................   Hub device: "EHCI Root Hub Simulation"
    Port Information:   0x061d
           Built-in Root Hub
           Captive
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   9   (Hub)
        Device Subclass:   0
        Device Protocol:   1   (High Speed Single Transaction Translator)
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x05AC/0x8006   (Apple Inc.)
        Device Version Number:   0x0200
        Number of Configurations:   1
        Manufacturer String:   2 "Apple Inc."
        Product String:   1 "EHCI Root Hub Simulation"
        Serial Number String:   0 (none)
    Configuration Descriptor (current config)   
        Length (and contents):   27
            Raw Descriptor (hex)    0000: 0A 02 1B 00 01 01 00 60  00 00 09 04 00 00 01 09  
            Raw Descriptor (hex)    0010: 00 01 00 08 05 81 03 08  00 09 00 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0x60 (self-powered, remote wakeup)
        MaxPower:   0 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   1   (Multi TT Hub configured as a Single TT Hub)
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8  (8 x 1  transactions opportunities per microframe)
                Polling Interval:   9 (256 microframes (32 msecs) )
    Hub Descriptor   
        Length (and contents):   9
            Raw Descriptor (hex)   0000: 09 29 02 00 00 32 00 02  FF 
        Number of Ports:   0x02
        Hub Characteristics:   0x0 (Gang switched standalone hub with global overcurrent protection requiring 8 FS bit times and  no port indicators)
        PowerOnToGood time:   100 ms
        Controller current:   0 mA
        Device Removable (byte):   0x2
        Port Power Control Mask (byte):   0xff
High Speed device @ 1 (0x1D000000): .............................................   Hub device: "EHCI Root Hub Simulation"
    Port Information:   0x061d
           Built-in Root Hub
           Captive
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   9   (Hub)
        Device Subclass:   0
        Device Protocol:   1   (High Speed Single Transaction Translator)
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x05AC/0x8006   (Apple Inc.)
        Device Version Number:   0x0200
        Number of Configurations:   1
        Manufacturer String:   2 "Apple Inc."
        Product String:   1 "EHCI Root Hub Simulation"
        Serial Number String:   0 (none)
    Configuration Descriptor (current config)   
        Length (and contents):   27
            Raw Descriptor (hex)    0000: 0A 02 1B 00 01 01 00 60  00 00 09 04 00 00 01 09  
            Raw Descriptor (hex)    0010: 00 01 00 08 05 81 03 08  00 09 00 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0x60 (self-powered, remote wakeup)
        MaxPower:   0 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   1   (Multi TT Hub configured as a Single TT Hub)
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8  (8 x 1  transactions opportunities per microframe)
                Polling Interval:   9 (256 microframes (32 msecs) )
    Hub Descriptor   
        Length (and contents):   9
            Raw Descriptor (hex)   0000: 09 29 02 00 00 32 00 02  FF 
        Number of Ports:   0x02
        Hub Characteristics:   0x0 (Gang switched standalone hub with global overcurrent protection requiring 8 FS bit times and  no port indicators)
        PowerOnToGood time:   100 ms
        Controller current:   0 mA
        Device Removable (byte):   0x2
        Port Power Control Mask (byte):   0xff
High Speed device @ 129 (0x14000000): .............................................   Hub device: "XHCI Root Hub USB 2.0 Simulation"
    Port Information:   0x061d
           Built-in Root Hub
           Captive
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   9   (Hub)
        Device Subclass:   0
        Device Protocol:   1   (High Speed Single Transaction Translator)
        Device MaxPacketSize:   9
        Device VendorID/ProductID:   0x05AC/0x8007   (Apple Inc.)
        Device Version Number:   0x0300
        Number of Configurations:   1
        Manufacturer String:   2 "Apple Inc."
        Product String:   1 "XHCI Root Hub USB 2.0 Simulation"
        Serial Number String:   0 (none)
    Configuration Descriptor (current config)   
        Length (and contents):   33
            Raw Descriptor (hex)    0000: 0A 02 21 00 01 01 00 60  00 00 09 04 00 00 01 09  
            Raw Descriptor (hex)    0010: 00 00 00 08 05 81 13 02  00 09 00 06 30 00 00 02  
            Raw Descriptor (hex)    0020: 00 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0x60 (self-powered, remote wakeup)
        MaxPower:   0 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   0
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x13  (Interrupt)
                Max Packet Size:   2  (2 x 1  transactions opportunities per microframe)
                Polling Interval:   9 (256 microframes (32 msecs) )
    Hub Descriptor   
        Length (and contents):   9
            Raw Descriptor (hex)   0000: 09 29 04 00 00 32 00 00  FF 
        Number of Ports:   0x04
        Hub Characteristics:   0x0 (Gang switched standalone hub with global overcurrent protection requiring 8 FS bit times and  no port indicators)
        PowerOnToGood time:   100 ms
        Controller current:   0 mA
        Device Removable (byte):   0x0
        Port Power Control Mask (byte):   0xff
High Speed device @ 2 (0x1D100000): .............................................   Hub device from Intel Corporation
    Port Information:   0x001f
           Captive
           Attached to Root Hub
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   9   (Hub)
        Device Subclass:   0
        Device Protocol:   1   (High Speed Single Transaction Translator)
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x8087/0x0024   (Intel Corporation)
        Device Version Number:   0x0000
        Number of Configurations:   1
        Manufacturer String:   0 (none)
        Product String:   0 (none)
        Serial Number String:   0 (none)
    Configuration Descriptor (current config)   
        Length (and contents):   25
            Raw Descriptor (hex)    0000: 09 02 19 00 01 01 00 E0  00 09 04 00 00 01 09 00  
            Raw Descriptor (hex)    0010: 00 00 07 05 81 03 02 00  0C 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0xE0 (self-powered, remote wakeup)
        MaxPower:   0 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   0
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   2  (2 x 1  transactions opportunities per microframe)
                Polling Interval:   12 (2048 microframes (256 msecs) )
    Hub Descriptor   
        Length (and contents):   11
            Raw Descriptor (hex)   0000: 0B 29 08 09 00 32 00 00  01 FF FF 
        Number of Ports:   0x08
        Hub Characteristics:   0x9 (Individually switched standalone hub with individual port overcurrent protection requiring 8 FS bit times and  no port indicators)
        PowerOnToGood time:   100 ms
        Controller current:   0 mA
        Device Removable (word):   0x100
        Port Power Control Mask (word):   0xffff
    Device Qualifier Descriptor   
        Descriptor Version Number:   0x0200
        Device Class   9   (Hub)
        Device Subclass   0
        Device Protocol   0   (Full/Low Speed)
        Device MaxPacketSize:   64
        Number of Configurations:   1
        bReserved:   0
    Other Speed Configuration Descriptor   
        Length (and contents):   25
            Raw Descriptor (hex)    0000: 09 07 19 00 01 01 00 E0  00 09 04 00 00 01 09 00  
            Raw Descriptor (hex)    0010: 00 00 07 05 81 03 02 00  FF 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0xE0 (self-powered, remote wakeup)
        MaxPower:   0 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   0
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   2
                Polling Interval:   255 ms
High Speed device @ 2 (0x1A100000): .............................................   HubDevice (Device is suspended)
    Port Information:   0x003f
           Captive
           Attached to Root Hub
           Internal Device
           Connected
           Enabled
           Suspended
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
High Speed device @ 3 (0x1D180000): .............................................   Hub device from SMSC
    Port Information:   0x001d
           Captive
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   9   (Hub)
        Device Subclass:   0
        Device Protocol:   2   (High Speed Multiple Transaction Translators)
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x0424/0x2512   (SMSC)
        Device Version Number:   0x0BB3
        Number of Configurations:   1
        Manufacturer String:   0 (none)
        Product String:   0 (none)
        Serial Number String:   0 (none)
    Configuration Descriptor (current config)   
        Length (and contents):   41
            Raw Descriptor (hex)    0000: 09 02 29 00 01 01 00 E0  01 09 04 00 00 01 09 00  
            Raw Descriptor (hex)    0010: 01 00 07 05 81 03 01 00  0C 09 04 00 01 01 09 00  
            Raw Descriptor (hex)    0020: 02 00 07 05 81 03 01 00  0C 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0xE0 (self-powered, remote wakeup)
        MaxPower:   2 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   1   (Multi TT Hub configured as a Single TT Hub)
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   1  (1 x 1  transactions opportunities per microframe)
                Polling Interval:   12 (2048 microframes (256 msecs) )
        Interface #0 - Hub (#1)   
            Alternate Setting   1
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   2   (Multi TT Hub)
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   1  (1 x 1  transactions opportunities per microframe)
                Polling Interval:   12 (2048 microframes (256 msecs) )
    Hub Descriptor   
        Length (and contents):   9
            Raw Descriptor (hex)   0000: 09 29 02 0D 00 32 01 06  FF 
        Number of Ports:   0x02
        Hub Characteristics:   0xd (Individually switched compound hub with individual port overcurrent protection requiring 8 FS bit times and  no port indicators)
        PowerOnToGood time:   100 ms
        Controller current:   1 mA
        Device Removable (byte):   0x6
        Port Power Control Mask (byte):   0xff
    Device Qualifier Descriptor   
        Descriptor Version Number:   0x0200
        Device Class   9   (Hub)
        Device Subclass   0
        Device Protocol   0   (Full/Low Speed)
        Device MaxPacketSize:   64
        Number of Configurations:   1
        bReserved:   0
    Other Speed Configuration Descriptor   
        Length (and contents):   25
            Raw Descriptor (hex)    0000: 09 07 19 00 01 01 00 E0  01 09 04 00 00 01 09 00  
            Raw Descriptor (hex)    0010: 00 00 07 05 81 03 01 00  FF 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0xE0 (self-powered, remote wakeup)
        MaxPower:   2 mA
        Interface #0 - Hub   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   9   (Hub)
            Interface Subclass;   0
            Interface Protocol:   0
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   1
                Polling Interval:   255 ms
Full Speed device @ 5 (0x1D181000): .............................................   BRCM20702 Hub (Device is suspended)
    Port Information:   0x003d
           Captive
           Internal Device
           Connected
           Enabled
           Suspended
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   2
High Speed device @ 3 (0x1A110000): .............................................   FaceTime HD Camera (Built-in) (Device is suspended)
    Port Information:   0x003d
           Captive
           Internal Device
           Connected
           Enabled
           Suspended
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   3
Full Speed device @ 4 (0x1D182000): .............................................   Composite device: "Apple Internal Keyboard / Trackpad"
    Port Information:   0x001d
           Captive
           Internal Device
           Connected
           Enabled
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   4
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   0   (Composite)
        Device Subclass:   0
        Device Protocol:   0
        Device MaxPacketSize:   8
        Device VendorID/ProductID:   0x05AC/0x0262   (Apple Inc.)
        Device Version Number:   0x0222
        Number of Configurations:   1
        Manufacturer String:   1 "Apple Inc."
        Product String:   2 "Apple Internal Keyboard / Trackpad"
        Serial Number String:   0 (none)
    Configuration Descriptor (current config)   
        Length (and contents):   84
            Raw Descriptor (hex)    0000: 09 02 54 00 03 01 00 A0  14 09 04 00 00 01 03 01  
            Raw Descriptor (hex)    0010: 01 03 09 21 11 01 21 01  22 9C 00 07 05 83 03 0A  
            Raw Descriptor (hex)    0020: 00 08 09 04 01 00 01 03  00 00 04 09 21 11 01 00  
            Raw Descriptor (hex)    0030: 01 22 1B 00 07 05 81 03  40 00 02 09 04 02 00 01  
            Raw Descriptor (hex)    0040: 03 01 02 04 09 21 11 01  00 01 22 34 00 07 05 84  
            Raw Descriptor (hex)    0050: 03 08 00 08 
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0xA0 (bus-powered, remote wakeup)
        MaxPower:   40 mA
        Interface #0 - HID/Boot Interface ..............................................   "Apple Internal Keyboard"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   1   (Boot Interface)
            Interface Protocol:   1
            HID Descriptor   
                Descriptor Version Number:   0x0111
                Country Code:   33
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   156
                        Raw Descriptor (hex)    0000: 05 01 09 06 A1 01 85 01  05 07 19 E0 29 E7 15 00  
                        Raw Descriptor (hex)    0010: 25 01 75 01 95 08 81 02  95 01 75 08 81 01 95 05  
                        Raw Descriptor (hex)    0020: 75 01 05 08 19 01 29 05  91 02 95 01 75 03 91 01  
                        Raw Descriptor (hex)    0030: 95 06 75 08 15 00 26 FF  00 05 07 19 00 29 FF 81  
                        Raw Descriptor (hex)    0040: 00 05 0C 75 01 95 01 09  B8 15 00 25 01 81 02 05  
                        Raw Descriptor (hex)    0050: FF 09 03 75 07 95 01 81  02 C0 05 0C 09 01 A1 01  
                        Raw Descriptor (hex)    0060: 85 52 15 00 25 01 75 01  95 01 09 CD 81 02 09 B3  
                        Raw Descriptor (hex)    0070: 81 02 09 B4 81 02 09 B5  81 02 09 B6 81 02 81 01  
                        Raw Descriptor (hex)    0080: 81 01 81 01 85 09 15 00  25 01 75 08 95 01 06 01  
                        Raw Descriptor (hex)    0090: FF 09 0B B1 02 75 08 95  02 B1 01 C0 
                    Parsed Report Descriptor:   
                          Usage Page    (Generic Desktop) 
                          Usage (Keyboard)    
                              Collection (Application)    
                                ReportID................    (1)  
                                Usage Page    (Keyboard/Keypad) 
                                Usage Minimum...........    (224)  
                                Usage Maximum...........    (231)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (1)  
                                Report Size.............    (1)  
                                Report Count............    (8)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Report Count............    (1)  
                                Report Size.............    (8)  
                                Input...................   (Constant, Array, Absolute) 
                                Report Count............    (5)  
                                Report Size.............    (1)  
                                Usage Page    (LED) 
                                Usage Minimum...........    (1)  
                                Usage Maximum...........    (5)  
                                Output..................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                                Report Count............    (1)  
                                Report Size.............    (3)  
                                Output..................   (Constant, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                                Report Count............    (6)  
                                Report Size.............    (8)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (255)  
                                Usage Page    (Keyboard/Keypad) 
                                Usage Minimum...........    (0)  
                                Usage Maximum...........    (255)  
                                Input...................   (Data, Array, Absolute) 
                                Usage Page    (Consumer) 
                                Report Size.............    (1)  
                                Report Count............    (1)  
                                Usage 184 (0xb8)    
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (1)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage Page    (255) 
                                Usage 3 (0x3)    
                                Report Size.............    (7)  
                                Report Count............    (1)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                              End Collection     
                          Usage Page    (Consumer) 
                          Usage 1 (0x1)    
                              Collection (Application)    
                                ReportID................    (82)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (1)  
                                Report Size.............    (1)  
                                Report Count............    (1)  
                                Usage 205 (0xcd)    
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 179 (0xb3)    
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 180 (0xb4)    
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 181 (0xb5)    
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 182 (0xb6)    
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Input...................   (Constant, Array, Absolute) 
                                Input...................   (Constant, Array, Absolute) 
                                Input...................   (Constant, Array, Absolute) 
                                ReportID................    (9)  
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (1)  
                                Report Size.............    (8)  
                                Report Count............    (1)  
                                Usage Page    (Vendor defined 1) 
                                Usage 11 (0xb)    
                                Feature.................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                                Report Size.............    (8)  
                                Report Count............    (2)  
                                Feature.................   (Constant, Array, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                              End Collection     
            Endpoint 0x83 - Interrupt Input   
                Address:   0x83  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   10
                Polling Interval:   8 ms
        Interface #1 - HID ..............................................   "Touchpad"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   0
            Interface Protocol:   0
            HID Descriptor   
                Descriptor Version Number:   0x0111
                Country Code:   0
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   27
                        Raw Descriptor (hex)    0000: 06 00 FF 09 01 A1 03 06  00 FF 09 01 15 00 26 FF  
                        Raw Descriptor (hex)    0010: 00 85 44 75 08 96 FF 01  81 00 C0 
                    Parsed Report Descriptor:   
                          Usage Page    (Vendor defined 0) 
                          Usage 1 (0x1)    
                              Collection (Collection )    
                                Usage Page    (Vendor defined 0) 
                                Usage 1 (0x1)    
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (255)  
                                ReportID................    (68)  
                                Report Size.............    (8)  
                                Report Count............    (511)  
                                Input...................   (Data, Array, Absolute) 
                              End Collection     
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   64
                Polling Interval:   2 ms
        Interface #2 - HID/Boot Interface ..............................................   "Touchpad"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   1   (Boot Interface)
            Interface Protocol:   2
            HID Descriptor   
                Descriptor Version Number:   0x0111
                Country Code:   0
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   52
                        Raw Descriptor (hex)    0000: 05 01 09 02 A1 01 09 01  A1 00 05 09 19 01 29 03  
                        Raw Descriptor (hex)    0010: 15 00 25 01 85 02 95 03  75 01 81 02 95 01 75 05  
                        Raw Descriptor (hex)    0020: 81 01 05 01 09 30 09 31  15 81 25 7F 75 08 95 02  
                        Raw Descriptor (hex)    0030: 81 06 C0 C0 
                    Parsed Report Descriptor:   
                          Usage Page    (Generic Desktop) 
                          Usage (Mouse)    
                              Collection (Application)    
                                Usage (Pointer)    
                                    Collection (Physical)    
                                      Usage Page    (Button) 
                                      Usage Minimum...........    (1)  
                                      Usage Maximum...........    (3)  
                                      Logical Minimum.........    (0)  
                                      Logical Maximum.........    (1)  
                                      ReportID................    (2)  
                                      Report Count............    (3)  
                                      Report Size.............    (1)  
                                      Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                      Report Count............    (1)  
                                      Report Size.............    (5)  
                                      Input...................   (Constant, Array, Absolute) 
                                      Usage Page    (Generic Desktop) 
                                      Usage (X)    
                                      Usage (Y)    
                                      Logical Minimum.........    (-127)  
                                      Logical Maximum.........    (127)  
                                      Report Size.............    (8)  
                                      Report Count............    (2)  
                                      Input...................   (Data, Variable, Relative, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                    End Collection     
                              End Collection     
            Endpoint 0x84 - Interrupt Input   
                Address:   0x84  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8
                Polling Interval:   8 ms
Full Speed device @ 7 (0x1D181300): .............................................   Bluetooth USB Host Controller (Device is suspended)
    Port Information:   0x003d
           Captive
           Internal Device
           Connected
           Enabled
           Suspended
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   8
High Speed device @ 6 (0x1D110000): .............................................   Composite device: "SAMSUNG_Android_SGH-T999"
    Port Information:   0x1018
           Not Captive
           External Device
           Connected
           Enabled
           Connected to External Port
    Number Of Endpoints (includes EP0):   
        Total Endpoints for Configuration 1 (current):   6
    Device Descriptor   
        Descriptor Version Number:   0x0200
        Device Class:   0   (Composite)
        Device Subclass:   0
        Device Protocol:   0
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x04E8/0x6864   (Samsung Electronics Co., Ltd.)
        Device Version Number:   0x0228
        Number of Configurations:   1
        Manufacturer String:   2 "SAMSUNG"
        Product String:   3 "SAMSUNG_Android_SGH-T999"
        Serial Number String:   4 "b6027f1d"
    Configuration Descriptor (current config)   
        Length (and contents):   98
            Raw Descriptor (hex)    0000: 09 02 62 00 03 01 00 C0  30 08 0B 00 02 E0 01 03  
            Raw Descriptor (hex)    0010: 07 09 04 00 00 01 E0 01  03 05 05 24 00 10 01 05  
            Raw Descriptor (hex)    0020: 24 01 00 01 04 24 02 00  05 24 06 00 01 07 05 82  
            Raw Descriptor (hex)    0030: 03 08 00 09 09 04 01 00  02 0A 00 00 06 07 05 81  
            Raw Descriptor (hex)    0040: 02 00 02 00 07 05 01 02  00 02 00 09 04 02 00 02  
            Raw Descriptor (hex)    0050: FF 42 01 00 07 05 83 02  00 02 00 07 05 02 02 00  
            Raw Descriptor (hex)    0060: 02 00 
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0xC0 (self-powered)
        MaxPower:   96 mA
        Interface Association   Wireless Controller/RF Controller
            First Interface   0
            Interface Count   2
            Function Class   224   (Wireless Controller)
            Function Subclass   1   (RF Controller)
            Interface Protocol   3
            Function String   7 "RNDIS"
        Interface #0 - Wireless Controller/RF Controller ..............................................   "RNDIS Communications Control"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   224   (Wireless Controller)
            Interface Subclass;   1   (RF Controller)
            Interface Protocol:   3   (Unknown)
        Raw Descriptor (hex)   0000: 05 24 00 10 01 
        Raw Descriptor (hex)   0000: 05 24 01 00 01 
        Raw Descriptor (hex)   0000: 04 24 02 00 
        Raw Descriptor (hex)   0000: 05 24 06 00 01 
            Endpoint 0x82 - Interrupt Input   
                Address:   0x82  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8  (8 x 1  transactions opportunities per microframe)
                Polling Interval:   9 (256 microframes (32 msecs) )
        Interface #1 - Communications-Data/Unknown Comm Class Model ..............................................   "RNDIS Ethernet Data"
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   10   (Communications-Data)
            Interface Subclass;   0   (Unknown Comm Class Model)
            Interface Protocol:   0
            Endpoint 0x81 - Bulk Input   
                Address:   0x81  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
            Endpoint 0x01 - Bulk Output   
                Address:   0x01  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
        Interface #2 - Vendor-specific   
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   255   (Vendor-specific)
            Interface Subclass;   66   (Vendor-specific)
            Interface Protocol:   1
            Endpoint 0x83 - Bulk Input   
                Address:   0x83  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
            Endpoint 0x02 - Bulk Output   
                Address:   0x02  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   512
                Polling Interval:   0 ( Endpoint never NAKs)
    Device Qualifier Descriptor   
        Descriptor Version Number:   0x0200
        Device Class   0   (Composite)
        Device Subclass   0
        Device Protocol   0
        Device MaxPacketSize:   64
        Number of Configurations:   1
        bReserved:   0
    Other Speed Configuration Descriptor   
        Length (and contents):   98
            Raw Descriptor (hex)    0000: 09 07 62 00 03 01 00 C0  30 08 0B 00 02 E0 01 03  
            Raw Descriptor (hex)    0010: 07 09 04 00 00 01 E0 01  03 05 05 24 00 10 01 05  
            Raw Descriptor (hex)    0020: 24 01 00 01 04 24 02 00  05 24 06 00 01 07 05 82  
            Raw Descriptor (hex)    0030: 03 08 00 20 09 04 01 00  02 0A 00 00 06 07 05 81  
            Raw Descriptor (hex)    0040: 02 40 00 00 07 05 01 02  40 00 00 09 04 02 00 02  
            Raw Descriptor (hex)    0050: FF 42 01 00 07 05 83 02  1C 00 00 07 05 02 02 40  
            Raw Descriptor (hex)    0060: 00 00 
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0xC0 (self-powered)
        MaxPower:   96 mA
        Interface Association   Wireless Controller/RF Controller
            First Interface   0
            Interface Count   2
            Function Class   224   (Wireless Controller)
            Function Subclass   1   (RF Controller)
            Interface Protocol   3
            Function String   7 "RNDIS"
        Interface #0 - Wireless Controller/RF Controller ..............................................   "RNDIS Communications Control"
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   224   (Wireless Controller)
            Interface Subclass;   1   (RF Controller)
            Interface Protocol:   3   (Unknown)
        Raw Descriptor (hex)   0000: 05 24 00 10 01 
        Raw Descriptor (hex)   0000: 05 24 01 00 01 
        Raw Descriptor (hex)   0000: 04 24 02 00 
        Raw Descriptor (hex)   0000: 05 24 06 00 01 
            Endpoint 0x82 - Interrupt Input   
                Address:   0x82  (IN)
                Attributes:   0x03  (Interrupt)
                Max Packet Size:   8
                Polling Interval:   32 ms
        Interface #1 - Communications-Data/Unknown Comm Class Model ..............................................   "RNDIS Ethernet Data"
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   10   (Communications-Data)
            Interface Subclass;   0   (Unknown Comm Class Model)
            Interface Protocol:   0
            Endpoint 0x81 - Bulk Input   
                Address:   0x81  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
            Endpoint 0x01 - Bulk Output   
                Address:   0x01  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
        Interface #2 - Vendor-specific   
            Alternate Setting   0
            Number of Endpoints   2
            Interface Class:   255   (Vendor-specific)
            Interface Subclass;   66   (Vendor-specific)
            Interface Protocol:   1
            Endpoint 0x83 - Bulk Input   
                Address:   0x83  (IN)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   28
                Polling Interval:   0 ms
            Endpoint 0x02 - Bulk Output   
                Address:   0x02  (OUT)
                Attributes:   0x02  (Bulk)
                Max Packet Size:   64
                Polling Interval:   0 ms
jwise commented 11 years ago

Tristan,

This looks like the same syndrome - the interface descriptor is okay, but the device is composite class. I'll have this fixed tonight. Thanks for the input.

joshua

tburch commented 11 years ago

Awesome! Thanks for your work on this

On Thu, Nov 15, 2012 at 11:50 AM, Joshua Wise notifications@github.comwrote:

Tristan,

This looks like the same syndrome - the interface descriptor is okay, but the device is composite class. I'll have this fixed tonight. Thanks for the input.

joshua

— Reply to this email directly or view it on GitHubhttps://github.com/jwise/HoRNDIS/issues/2#issuecomment-10420294.

jwise commented 11 years ago

Tristan and Rob, can you test with rel1?

tburch commented 11 years ago

It works for me - thanks Joshua!

robolmos commented 11 years ago

I'm still unable to get it to work although I'm seeing progress because I'm seeing HoRNDIS logs now.

Let me know if you'd like for me to create a new issue.

Thanks

Nov 16 16:57:51 Robs-MacBook-Pro kernel[0]: HoRNDIS: init: HoRNDIS tethering driver for Snow Leopard+, by Joshua Wise Nov 16 16:57:51 Robs-MacBook-Pro kernel[0]: HoRNDIS: rndisInit: their MTU 1486 Nov 16 16:57:51 Robs-MacBook-Pro kernel[0]: HoRNDIS: init: starting up with MTU 1486 Nov 16 16:57:51 Robs-MacBook-Pro kernel[0]: HoRNDISUSBInterface: Ethernet address e2:e9:d8:ab:92:29 Nov 16 16:57:51 Robs-MacBook-Pro kernel[0]: HoRNDIS: rndisCommand: unsupported: RNDIS_MSG_INDICATE Nov 16 16:57:52: --- last message repeated 1 time --- Nov 16 16:57:52 Robs-MacBook-Pro kernel[0]: 0 1 AppleUSBCDCACMData: start - Find CDC driver for ACM data interface failed Nov 16 16:57:52 Robs-MacBook-Pro kernel[0]: 0 1 AppleUSBCDCECMData: start - Find CDC driver for ECM data interface failed Nov 16 16:58:50 Robs-MacBook-Pro kernel[0]: HoRNDIS: outputPacket: waiting for buffer... Nov 16 16:58:50: --- last message repeated 9 times --- Nov 16 16:58:50 Robs-MacBook-Pro kernel[0]: HoRNDIS: outputPacket: timed out waiting for buffer

jwise commented 11 years ago

Okay, that's new and exciting ... sigh. Yeah, let's create a new issue for this one. I wonder why it's sending an INDICATE, when no other devices do that.