Android SmartPhone as Composite USB Device

  • Thread starter Thread starter Nadav Rub
  • Start date Start date
N

Nadav Rub

Guest
Introduction
  1. Android devices support multiple interfaces
  2. All the interfaces but the 2nd have no alternate interfaces
  3. The 2nd interface is an Audio streaming interface, It has an 'Isochronous' alternate interface
  4. The first interface is used by a 3rd party application

Use-case

Use the 'Isochronous' alternate interface to capture audio w/o disturbing the 3rd party app ( that use the 1st interface )

Implementation

Setup the Android as a composite Device exposing each interface as a separate USB device.

Problem

Using the Composite device setup works well with the 3rd party application, however, Interface #2 is not exposed, it seems as if usbccgp cannot deal with Interfaces that have alternates...

To verify the above assumption I have uninstalled the drivers used with the Android device expecting the OS to default to usbccgp, indeed 'usbccgp' was defaulted to having only 3 out of the 4 interfaces exposed.. the 2nd interface ( w/ the alternate ) was ommited...

How can I have 'usbccgp' expose the 2nd interface ?

Attached please find a dump of the USB Descriptors and a snap of the INF files used

[Standard.NTamd64]
%AOA_Device% = USB_Install, USB\VID_18D1&PID_2D05&MI_00 ; Developer mode AOA Interface
%AudControl_Device% = USB_Install, USB\VID_18D1&PID_2D05&MI_01 ; Developer mode Audio Control Interface
%AudStreaming_Device% = USB_Install, USB\VID_18D1&PID_2D05&MI_02 ; Audio Streaming Interface NOT RECOGNIZED
%ADB_Device% = USB_Install, USB\VID_18D1&PID_2D05&MI_03 ; Developer mode ADB Interface


Click here to zoom in the Image

573458.png





Nadav Rubinstein, See my Blog @ http://www.sophin.com

Continue reading...
 
Back
Top