• Home
  • History
  • Annotate
  • only in /frameworks/base/services/usb/java/com/android/
History log of /frameworks/base/services/usb/java/com/android/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
236b9e8eb4ad14068ef42ee2f4f89460f36ed37d 31-May-2016 Philip P. Moltmann <moltmann@google.com> Handle the uncommon case that a name is null

Bug: 29037588
Change-Id: I697184bd1ae4d519f8f29bf612ba13843e6662cb
erver/usb/MtpNotificationManager.java
a0116bf81f9c2b89421050d23c91799b6e128640 03-May-2016 Vincent Palatin <vpalatin@chromium.org> Fix notifications for USB PD enabled devices

The devices with USB PD support can have the data role and the power role of
their USB-C port reversed. Ensure the title of the notification and the content
of the USB selection dialog is correct in this case.

Testing done on Ryu with the following accessories:
- legacy A-C cable
- USB-C charger (5X)
- USB-PD charger (Zinger)
- Pixel 2 (in both roles)
- Type-C Macbook (in both roles)
- Nexus 5X (in both roles)
- Apple AV HDMI accessory
- LG USB-C screen/dock
- Honeybuns dock

Bug: 28310685
Bug: 24137353
Change-Id: Id7f358c40d8714fae68ca98a7eb067f62f18b0af
(cherry picked from commit 0be6800b0feba50fa2c1be7852ee2eb02c38afc0)
erver/usb/UsbDeviceManager.java
de2922468be26ab649ee44e7af291d97aebf0701 05-Apr-2016 Phil Burk <philburk@google.com> UsbMidiDevice: fix MIDI flush()

The proxy MidiReceiver in the USB device was not forwarding the flush
command to the event scheduler.

Bug: 25511696
Change-Id: I6a4759b71bc8f9ae3e20aed1238f62a2ed405e24
Signed-off-by: Phil Burk <philburk@google.com>
erver/usb/UsbMidiDevice.java
c72239409b69b9f938d6c3dc6561c4f7732de273 25-Mar-2016 Paul McLean <pmclean@google.com> Added logging to USB Audio connect and disconnect.

This will let us see in bug reports if the USB device in question
is ACTUALLY recognized and added/removed from the audio system.

Bug: 27812441

Change-Id: Id3eb4d4f3f0b1e66a24999706ba589c0962eba58
erver/usb/UsbAlsaManager.java
b6abccc8f3d8a870a97cb5f07f7561097670e134 28-Mar-2016 Daichi Hirono <hirono@google.com> Add new text for USB type C host.

If you use USB type C, you can charge Android from USB power or you can
supply power from Android to the other connected device.

Previously Android showed the notification saying "USB for charging".
The CL updates the text so that it shows the current power direction
explicitly.

Change-Id: Ic15ba70eaf8ade028283d8f490ac36e8d5e4db21
FIXED: 27706939
erver/usb/UsbDeviceManager.java
618fa6ffc154fd131697b6107b431b4557ec118c 17-Mar-2016 Daichi Hirono <hirono@google.com> Add USB_HOST_CONNECTED extra to ACTION_USB_STATE sticky intent.

Previously UsbModeChooser activity is automatically closed when Android
is connected to another Android and works as host. This is because
ACTION_USB_STATE intent does not include the information whether Android
is connected as host and UsbModeChooser regards Android is not connected
USB devices.

The CL introduce the HOST_CONNECTED extra to ACTION_USB_STATE so that
UsbModeChooser can refer it.

BUG=27535640

Change-Id: Ie29583b78319078430f6d9a8390787780410ac8c
erver/usb/UsbDeviceManager.java
f8a0c8536e36578152f25635738dd6313aa09285 08-Mar-2016 Daichi Hirono <hirono@google.com> Skip MTP launch notification for devices having FEATURE_AUTOMOTIVE.

BUG=27410621

Change-Id: I1fd2ad663d8e5c5507a8e5e93aafea9d4188ed02
erver/usb/MtpNotificationManager.java
erver/usb/UsbSettingsManager.java
fda7474c5faae1e36a9274d8a5fe83e42ec6503b 01-Feb-2016 Daichi Hirono <hirono@google.com> Open MTP device on demand.

Previously MtpDocumentsProvider opens a device just after device is
connected to Android. But MtpDocumentsProvider should open MTP device on
demand so that other applications can open device if user starts to use
the application before using MtpDocumentsProvider.

BUG=26625708

Change-Id: I6083b8c7cef49ee6e9fb0d15ca4adc129734f3eb
erver/usb/MtpNotificationManager.java
163e4b6ae8a51421c8a9cccfdc2fe872afd09971 18-Jan-2016 Daichi Hirono <hirono@google.com> Add launch notification for MTP devices.

The CL adds launch notification that are shown after MTP/PTP device is
connected to Android device. By tapping the notification, Users can
launch an applicaiton that can handle USB_DEVICE_ATTACHED intent of MTP
device.

BUG=26611224

Change-Id: I6fd179ccd436531dfff6ff9a50dc2b754c20f190
erver/usb/MtpNotificationManager.java
erver/usb/UsbSettingsManager.java
d1d533610aad279f7ae9037f0e4b3dd865bb0a24 08-Jan-2016 Julia Reynolds <juliacr@google.com> Increase notification priority for adb connections.

Change-Id: I04ec4dac40737d59a32775e579f734a5460db25c
erver/usb/UsbDeviceManager.java
4751880a4d770e8916320b5908b58f389d6552de 08-Dec-2015 Daichi Hirono <hirono@google.com> Grant USB device permission by using system permission.

Previously it skips the device permission check by referring package
name. The CL removes the special case and use general MANAGE_USB
system-only permission to skip USB device permission dialog.

BUG=26048722

Change-Id: I3702393a50696209499d1e5f6549dab9fb2cefe4
erver/usb/UsbSettingsManager.java
bc0a94055c77b6739ffa908aae9189fdeadb83f4 03-Dec-2015 Daichi Hirono <hirono@google.com> Grant USB device permission for android.media UID always.

The UID is used by MtpDocumentsProvider that is a system component and
needs to access MTP devices.

BUG=25983848

Change-Id: Iaa20a849cb9e7a86bde6c5bf8abbb15e65ced6c3
erver/usb/UsbSettingsManager.java
c35d7759d8ee8b4a55f4b5b58151f46db47537f4 19-Nov-2015 Chris Wren <cwren@android.com> allow devs to turn off charging notifications

in the same was as we allow then to turn of debuging notificaitons
this is useful for screenshots and demos

Change-Id: I6e95addec2917abdd619086ed68910097fb5b8aa
erver/usb/UsbDeviceManager.java
853fde6915c1c336350c2bc85ec6f74cc1609d6d 29-Oct-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: set mUsbDataUnlocked=false on user switch am: 5701321701 am: aa330c0dc2 am: d33d66e26c
am: 581c1809c1

* commit '581c1809c1c617a39eae05aac481a114c70f09d2':
UsbDeviceManager: set mUsbDataUnlocked=false on user switch
aa330c0dc2331f099ce05ecd76d56b8c9e9c483d 29-Oct-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: set mUsbDataUnlocked=false on user switch
am: 5701321701

* commit '5701321701a319d3f2d98365a82266eeddaed895':
UsbDeviceManager: set mUsbDataUnlocked=false on user switch
5701321701a319d3f2d98365a82266eeddaed895 29-Oct-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: set mUsbDataUnlocked=false on user switch

Make sure access to MTP data is relocked when a user switch occurs.

Bug: 25288494
Change-Id: I69dafc7f51b847f4dba1993a85fb1a51df1a5e37
erver/usb/UsbDeviceManager.java
438c220d78482c85b16a108d9ffde6d7ada27d19 29-Oct-2015 Paul Mclean <pmclean@google.com> Merge "Fixing problems with 1st connect of USB audio device to Fugu."
c15f75644385df59663cf2e9e6c6bf27fe228924 22-Oct-2015 Paul McLean <pmclean@google.com> Fixing problems with 1st connect of USB audio device to Fugu.

Also added some additional logging functions as we are not done
looking at connect/disconnect issues.

Leaving in tact the multi-device connect/disconnect logic (neeeds to
be revisited)

Bug: 24906368
Change-Id: Iff91c51a9c7013dde56182059f3747e1d6cd727b
erver/usb/UsbAlsaManager.java
e3b077b1c67a2ca3d46c47244de2d856d6b370f0 28-Oct-2015 Paul McLean <pmclean@google.com> Fixed capture-only devices not removed when disconnected.

I have brought shame upon my family.

Bug: 24932354
Change-Id: I0fce40a976f40e74f4fd87eb6f4aa93e847032cc
erver/usb/UsbAlsaManager.java
dabd6b8f45e464a83fee96c69076abb78dbc862f 03-Oct-2015 Fyodor Kupolov <fkupolov@google.com> Restart USB stack only if data is unlocked

When switching users, USB stack shouldn't be restarted if mUsbDataUnlocked =
false, e.g. device is in charge only mode.

Bug: 24611765
Change-Id: I3b12f8c8926235546fe916a200aa57ed618193de
erver/usb/UsbDeviceManager.java
e4de5a0d3b6e0c897c1cea0912b58e11db962365 23-Sep-2015 Xiaohui Chen <xiaohuic@google.com> Cleanup OWNER references.

Bug: 19913735
Change-Id: I2150c6baaab80fe11312e4401394a2a8da52e595
erver/usb/UsbSettingsManager.java
bcb80b03f196ea5709a102c2ed7769de5d263945 19-Sep-2015 Tim Kilbourn <tkilbourn@google.com> am 880c6010: am 0c4050b0: am bdfbd821: am 0eb10ede: Merge "Always set the usb config when modifying it." into mnc-dr-dev

* commit '880c601013e3b58f004f65c6cacfb8e19e2ca863':
Always set the usb config when modifying it.
bdfbd82154b58592597a70064c0806d774446746 19-Sep-2015 Tim Kilbourn <tkilbourn@google.com> am 0eb10ede: Merge "Always set the usb config when modifying it." into mnc-dr-dev

* commit '0eb10ede2364bf975721d95f7af7a1e4f4b617f8':
Always set the usb config when modifying it.
823e805c1c72b34bed8439e269f96b2f3a5cbe4e 18-Sep-2015 Tim Kilbourn <tkilbourn@google.com> Always set the usb config when modifying it.

On some devices, setting system properties takes too long and we end up
with races where adbd gets killed and never comes back. With this
change we avoid a small optimization that checks the previous value of
the config, instead opting to set it every time.

Bug: 23631400
Change-Id: I7567cc2efb3d5d15c45334bd66b28877a2af0ac3
erver/usb/UsbDeviceManager.java
e4b3e61456e029d0afda8a9d2c7e439fc474ccbc 11-Sep-2015 Daniel Koulomzin <dkoulomzin@google.com> am 1a73ab76: am 4bf3dfea: am ffa2d691: Merge "Adds config flag for USB notification." into cw-e-dev

* commit '1a73ab760bedd371dbfb8850ac24555c33004ff6':
Adds config flag for USB notification.
e753361508a51ecea4bc2c84ffba68fd5a8cdd4b 09-Sep-2015 Gus Prevas <kprevas@google.com> Adds config flag for USB notification.

This change modifies UsbDeviceManager such that the ongoing
system notification for USB charging state is controlled by a
config flag.

Bug: 23409719
Change-Id: I2ef24fe74923170a6e8dd02375b973b4025281e4
erver/usb/UsbDeviceManager.java
92386c42a83c6cba546aed8522de62b9d1ddd46e 26-Aug-2015 Yasuhiro Matsuda <mazda@google.com> Merge "Broadcast ACTION_USB_STATE only if necessary."
4080a4197c8c900e0f597bf436f2f79cc76f2c93 19-Aug-2015 Tim Kilbourn <tkilbourn@google.com> am 6041a68b: am 458d4d6d: am 9b1fd822: am 2ad94499: Merge "Use init to write usb typec props." into mnc-dr-dev

* commit '6041a68babcc0ec9cc2009fcfe75848882661785':
Use init to write usb typec props.
2ad94499697d79dc41489ab873527411f88b3f15 18-Aug-2015 Tim Kilbourn <tkilbourn@google.com> Merge "Use init to write usb typec props." into mnc-dr-dev
94ce8985b5a03217ca0a1f40b6bbdcb8a405ff44 17-Aug-2015 Jason Monk <jmonk@google.com> am b99fdbe8: am 6f07eaad: am cda0ab68: am 8cfbae04: Merge "Show usb charging notification when in host mode" into mnc-dr-dev

* commit 'b99fdbe84568dea0cc019dc1e4a63bb40b4067d6':
Show usb charging notification when in host mode
6ea47a3542ad5fd79530cfd5d1e3b30c3d52f722 12-Aug-2015 Tim Kilbourn <tkilbourn@google.com> Use init to write usb typec props.

The sysfs nodes are owned by root, so we must use init to write to
them.

Bug: 21615151
Change-Id: Ia8c838827ff45794aa359443117ac85764cf3772
erver/usb/UsbPortManager.java
8338ed00ae44635d099b530b3360e6d1f7041827 12-Aug-2015 Jason Monk <jmonk@google.com> Show usb charging notification when in host mode

Bug: 21615151
Change-Id: Ifc8c288a94f52ecac19990ab3d9095b1aef8efc3
erver/usb/UsbDeviceManager.java
48b9a7c70acff8f1469e487d08bbcb7e6a47ad8a 16-Jul-2015 Yasuhiro Matsuda <mazda@google.com> Broadcast ACTION_USB_STATE only if necessary.

Modify UsbDeviceManager.updateUsbStateBroadcast to broadcast
ACTION_USB_STATE intent only when any of the USB states have
changed.
By doing this, the processes that receive ACTION_USB_STATE intent
(e.g. android.process.media) are not launched during boot
unnecessarily.
This change reduces boot time by about 200 ms.

BUG: 22163689
Change-Id: I1853a23b0263d9ff608b02d6bc98fe58f584cc19
erver/usb/UsbDeviceManager.java
1913ae958c7ee20466fffe3d9c6e5b820760ca41 04-Aug-2015 Nick Kralevich <nnk@google.com> am 8ad7c8f9: am 94933e43: am 2eafb06f: am b2c71814: am 97b68bbe: Merge "UsbDeviceManager: fix b/21429947 regression (try #2)" into mnc-dev

* commit '8ad7c8f9553611798fa39ff20cea3313c5b64922':
UsbDeviceManager: fix b/21429947 regression (try #2)
1a008c1ca04871386830f511ee4b47299b92b01f 31-Jul-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: fix b/21429947 regression (try #2)

As discussed in b/21429947 (commit
674019065bceb4150190bfb1aa63cda9de0a8560), MTP must always be
enabled, even if access to the underlying MTP data is disabled.
Otherwise, Android will not enumerate on the USB bus, and won't
receive notifications from the kernel about USB state changes. This
effectively prevents using MTP functionality on user builds, or
on userdebug/eng builds with adb turned off.

Always ensure that MTP is the default driver mode.

Move the DISALLOW_USB_FILE_TRANSFER filtering of mUsbDataUnlocked from
setting time to the time we post the sticky broadcast.

Remove isUsbDataUnlocked(). It essentially duplicates data in the sticky
broadcast.

Bug: 22447614
Bug: 21429947
Change-Id: I9d0d94cadbf6db6281ebd77bfb7162f9d06520c2
erver/usb/UsbDeviceManager.java
erver/usb/UsbService.java
233d94c0df13a7e54f738f442457cebc62294384 31-Jul-2015 Xiaohui Chen <xiaohuic@google.com> clean up UserHandle.USER_OWNER reference

cleaning up a few in framework/base/services.

Bug: 19913735
Change-Id: I1af5f24d9b39d6712ad3a665effa6166e32ce3d3
erver/usb/UsbService.java
bea6528ae30909609d1f963db774b497b91e3cc4 31-Jul-2015 Phil Burk <philburk@google.com> am c8dc65d1: am 3882997e: am ed839f59: am e2823cb3: am 8f5228af: Merge "UsbMidiDevice: add timestamps for input events" into mnc-dev

* commit 'c8dc65d1942a4d0e7a7a2c56a6c1b991c8927a70':
UsbMidiDevice: add timestamps for input events
6456a65afed66819b73df7eb605037402b91fc3f 30-Jul-2015 Phil Burk <philburk@google.com> UsbMidiDevice: add timestamps for input events

This will improve the accuracy of recorded MIDI performances.

Bug: 22801515
Change-Id: Ib78bc929224f2f27938c83a815eaa62f6b5f9560
Signed-off-by: Phil Burk <philburk@google.com>
erver/usb/UsbMidiDevice.java
c0121df2e0011733f382e403fc8778dd2db4441b 24-Jul-2015 Nick Kralevich <nnk@google.com> am d9b08e61: am d517de5a: am a8937f13: am a2adb4c5: am 06b93a48: Merge "Revert "UsbDeviceManager: fix b/21429947 regression"" into mnc-dev

* commit 'd9b08e6131c26a0ea6646a8dd3b206f53472028d':
Revert "UsbDeviceManager: fix b/21429947 regression"
7bdcbd8bfc7716a323a09a6439b6636fa124a61a 24-Jul-2015 Nick Kralevich <nnk@google.com> am a508d399: am 01e00c8c: am e4f10de7: am dd856a3f: am 3b0bbd7b: Merge "UsbDeviceManager: fix b/21429947 regression" into mnc-dev

* commit 'a508d399e720b3a535832ce0b2554680197944af':
UsbDeviceManager: fix b/21429947 regression
06b93a48ad0d2274ff41683e08b8a1429045b0a9 23-Jul-2015 Nick Kralevich <nnk@google.com> Merge "Revert "UsbDeviceManager: fix b/21429947 regression"" into mnc-dev
0d767e6f098cf4348a7ca8694b673eec0336a3e8 23-Jul-2015 Nick Kralevich <nnk@google.com> Revert "UsbDeviceManager: fix b/21429947 regression"

This causes various problems with our testing infrastructure.

This reverts commit b210026e3d5c955628ca8b8b9191ade08891e9ef.

Bug: 22447614
Bug: 21429947
Change-Id: I57623e3d993e65b6ad89e7a7d28e9575cf638994
erver/usb/UsbDeviceManager.java
3b0bbd7b96568f0d0121136fcac9d4e1a5ffd237 22-Jul-2015 Nick Kralevich <nnk@google.com> Merge "UsbDeviceManager: fix b/21429947 regression" into mnc-dev
b210026e3d5c955628ca8b8b9191ade08891e9ef 22-Jul-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: fix b/21429947 regression

As discussed in b/21429947 (commit
674019065bceb4150190bfb1aa63cda9de0a8560), MTP must always be
enabled, even if access to the underlying MTP data is disabled.
Otherwise, Android will not enumerate on the USB bus, and won't
receive notifications from the kernel about USB state changes. This
effectively prevents using MTP functionality on user builds, or
on userdebug/eng builds with adb turned off.

Always ensure that MTP is the default driver mode.

Get rid of one use of the persistent property. The persistent property
was already pulled from a number of devices, and as explained in
commit fcf10f7c12cb3107bdfedce6f76a8c866d154f3c, the intent was that
the persistent property would only hold the persistent adb state.

Bug: 22447614
Bug: 21429947
Change-Id: I8b3690a1bafb7cea0d5a69d73c1065c7fc64c653
erver/usb/UsbDeviceManager.java
ed987a52a2aa028814ecc73dd6d60244ac1df7f5 04-Jul-2015 wang.zhenyu <wang.zhenyu2@zte.com.cn> Miss USB device Interface from UsbManager.getDeviceList().

In the scenario that you connect more than one device to android phone
with an usb hub, when you attach the second device,mNewConfigurationis
is still corresponded to the first device unless another
mNewConfiguration is created by a new operation. However,before another
mNewConfiguration is created,setInterfaces() in addUsbConfiguration()
has already been executed. Problem is that mNewInterfaces has already
been cleared when it finished endUsbDeviceAdded for the first device. As
a result,the UsbInterface descriptor in the first device's Configuration
descriptor is set to null.

Bug: 22657587

Change-Id: I0ba4f07c809d07ebebed633e43c3ee8e2e4c5060
erver/usb/UsbHostManager.java
df2600d4dc0d5bf6c830d908f9490141781bea45 21-Jul-2015 Nick Kralevich <nnk@google.com> am b430c4f0: am 8326ebbe: am 6b04e5b8: am 894ffd10: am 673ccfd4: Merge "UsbDeviceManager: add back support for USB overlays" into mnc-dev

* commit 'b430c4f06c763e0c0fffb6d12b606064ccc84ce3':
UsbDeviceManager: add back support for USB overlays
b430c4f06c763e0c0fffb6d12b606064ccc84ce3 21-Jul-2015 Nick Kralevich <nnk@google.com> am 8326ebbe: am 6b04e5b8: am 894ffd10: am 673ccfd4: Merge "UsbDeviceManager: add back support for USB overlays" into mnc-dev

* commit '8326ebbe9ea324cc7608e8dc754a63d905bfdb63':
UsbDeviceManager: add back support for USB overlays
2fedc4df5127d1a2eaf178e835d9f5398ce8f879 21-Jul-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: add back support for USB overlays

Commit fcf10f7c12cb3107bdfedce6f76a8c866d154f3c removed support for USB
overlays. Add it back in, as some devices depend on it.

Bug: 22062484
Bug: 21195124
Change-Id: I74d12699201355b07475744c641e31fdc4bb5a4a
erver/usb/UsbDeviceManager.java
4085a74b4c6b46c9a08a20b5d63d728713767db4 16-Jul-2015 Jeff Brown <jeffbrown@google.com> am 209c8ced: am 6e4997db: am 8bdd92d4: am 0cb1cfdc: am 76c4c666: Add USB port manager.

* commit '209c8cedab87359564c032a3e56b3acd452e1ac9':
Add USB port manager.
a50dfe9c6f76b9ce091d81ab3babf8ae516effa0 16-Jul-2015 Jeff Brown <jeffbrown@google.com> am 852e51e2: am 3bc33423: am b35b8e81: am b3c11805: am 2dbccc19: Clean up USB Manager dump.

* commit '852e51e23de4dd390f81f5c5a45687595323599a':
Clean up USB Manager dump.
209c8cedab87359564c032a3e56b3acd452e1ac9 16-Jul-2015 Jeff Brown <jeffbrown@google.com> am 6e4997db: am 8bdd92d4: am 0cb1cfdc: am 76c4c666: Add USB port manager.

* commit '6e4997dbfb5f0a2abac99522a52b557172757ee2':
Add USB port manager.
852e51e23de4dd390f81f5c5a45687595323599a 16-Jul-2015 Jeff Brown <jeffbrown@google.com> am 3bc33423: am b35b8e81: am b3c11805: am 2dbccc19: Clean up USB Manager dump.

* commit '3bc33423477945a0f97ebe7948af642cc56cea7b':
Clean up USB Manager dump.
76c4c6668a1486bc003ab0c585bb1f41d16e27a7 07-Jul-2015 Jeff Brown <jeffbrown@google.com> Add USB port manager.

Add some new internal APIs to enumerate USB Type C ports, query their
status, determine whether they support changing power or data roles,
and doing so. The API also adds a new ACTION_USB_PORT_CHANGED broadcast
for port state changes.

The implementation includes a mechanism for simulating the behavior
of the USB stack. See 'adb shell dumpsys usb -h' for details.

Note that the underlying kernel driver interface is still subject
to change but its behavior has been encapsulated as much as possible.

Bug: 21615151
Change-Id: I0c853ae179248a4550b3e60d02a7a7e65e4546b2
erver/usb/UsbPortManager.java
erver/usb/UsbService.java
2dbccc1926ea2d3e27c5cfd2d61d2b3d5ed787c0 07-Jul-2015 Jeff Brown <jeffbrown@google.com> Clean up USB Manager dump.

Tidy up the dump() implementation in preparation for further work.

Bug: 21615151
Change-Id: If6d94c8dc9457b8e93103541ec1798981eeb5b54
erver/usb/UsbAlsaManager.java
erver/usb/UsbDebuggingManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbHostManager.java
erver/usb/UsbService.java
erver/usb/UsbSettingsManager.java
05d58afddb1bbfa893354c1cb331bd69c9d2cb6f 13-Jul-2015 Xiaohui Chen <xiaohuic@google.com> sys user split: fix usb debugging notice

BUG:19913735
Change-Id: Iefdf8a12f1622650bb0d61e7ffb73040e4b8d498
erver/usb/UsbDebuggingManager.java
0bff26c1e9f96857fced59e42a6dac67c14a5597 10-Jul-2015 Jeff Brown <jeffbrown@google.com> am 9c22afe8: Fix a bad merge.

* commit '9c22afe8538cd8c849d0393751bf5bc4997bc632':
Fix a bad merge.
9c22afe8538cd8c849d0393751bf5bc4997bc632 09-Jul-2015 Jeff Brown <jeffbrown@google.com> Fix a bad merge.

Change-Id: Ib722459a25c189bb800eb85d48b80bdc91a2b7db
(cherry picked from commit 2a67840c3c35a6267663e5d3ae921ee9ac614db9)
erver/usb/UsbService.java
5c43bb82e44f0ab9650f15a0392284a2e91feed4 09-Jul-2015 Jeff Brown <jeffbrown@google.com> am f19abb67: am 8e4dde2c: am 2ad03d0c: am c1aebfa0: Merge "Clean up USB Manager and fix ADB." into mnc-dev

* commit 'f19abb67c2604c06b140979cb527c599c37d02f4':
Clean up USB Manager and fix ADB.
2a67840c3c35a6267663e5d3ae921ee9ac614db9 09-Jul-2015 Jeff Brown <jeffbrown@google.com> Fix a bad merge.

Change-Id: Ib722459a25c189bb800eb85d48b80bdc91a2b7db
erver/usb/UsbService.java
c1aebfa02c393471fb344c3a94ee2ae62bb78f93 09-Jul-2015 Jeff Brown <jeffbrown@google.com> Merge "Clean up USB Manager and fix ADB." into mnc-dev
460a146eb8f827e4e70f2dd93d1ba852d0feb06b 01-Jul-2015 Jeff Brown <jeffbrown@google.com> Clean up USB Manager and fix ADB.

Moved functions which parse the USB functions list into one common
place on UsbManager.

Deleted the no longer supported USB_FUNCTION_MASS_STORAGE.

Ensured that the UserManager.DISALLOW_USB_FILE_TRANSFER rule is
consistently applied during user switch and when changing the
current USB functions and make sure it only affects MTP and PTP.

Collapsed the boot completed and user switched receivers to
ensure consistent ordering of side-effects.

Validate the list of functions passed to setCurrentFunction() so
that the separation of concerns is clearer. It was somewhat
ambiguous as to whether functions such as ADB could / should be
enabled through that interface. Improved the docs for clarity.

Fixed a bunch of broken stuff related to the USB config
persistent property (list of default functions) that could cause
ADB and other functions to not work at all. Added new failsafes
to ensure that we reliably get back into a happy state.

Bug: 22206076
Change-Id: I02915ddfce7193a8f67a14f0d76bab22fc575dfa
erver/usb/UsbDeviceManager.java
erver/usb/UsbService.java
032ba9f3d1a9edc85ac2e3595f5cedb6d5b27103 08-Jul-2015 Zoltan Szatmary-Ban <szatmz@google.com> am 2fbfe429: am 92c1d283: am 706ad39b: am a2de7fc9: Merge "Prevent accidental unlocking of USB data transfer." into mnc-dev

* commit '2fbfe42955520c6831fd5df94d87ada875f9299b':
Prevent accidental unlocking of USB data transfer.
a2de7fc9fc0b96ba4db65ccf6c9684c8c27c2993 08-Jul-2015 Zoltan Szatmary-Ban <szatmz@google.com> Merge "Prevent accidental unlocking of USB data transfer." into mnc-dev
c0bc04697e6c2bcd5e268af910bc716d16356934 08-Jul-2015 Vineeta Srivastava <vsrivastava@google.com> am 0baee4f1: am 002c7d74: am a572506e: am 9d918db3: Merge "UsbDeviceManager: Add back support for persistent property" into mnc-dev

* commit '0baee4f1ccf7d1c100dcfde45739cede657f86bf':
UsbDeviceManager: Add back support for persistent property
84dce3c9a8f217e8dbc038ebb85fd96d2d66c5f6 23-Jun-2015 Ajay Dudani <adudani@codeaurora.org> UsbDeviceManager: Add back support for persistent property

Take into account the value of persist.sys.usb.config when updating
sys.usb.config. The persistent prop can hold information regarding
additional enumerations required for the device.

Bug: 21929369
Change-Id: Ic11ebf62ce114f2d0a097ad4405de71173b23139
erver/usb/UsbDeviceManager.java
b2eb6b9049567c134d7654f6cd79b4a47de643af 07-Jul-2015 Zoltan Szatmary-Ban <szatmz@google.com> Prevent accidental unlocking of USB data transfer.

When DISALLOW_USB_FILE_TRANSFER is in effect, there must be no chance to
unlock data transfer over USB.

Bug: 22291579
Change-Id: I990fedbfeecd90e7dd26981034d0352b83dc694e
erver/usb/UsbService.java
f788e297b21b63204cb773e0af6b11567f2f3bd3 06-Jul-2015 Mike Lockwood <lockwood@google.com> am ce1cb218: am 593dfbb2: Merge "Miss USB device Interface from UsbManager.getDeviceList()."

* commit 'ce1cb218f4d25f76342d6c66c75889429080e883':
Miss USB device Interface from UsbManager.getDeviceList().
19b26f875416e412de7792f6829498a748cf9602 04-Jul-2015 wang.zhenyu <wang.zhenyu2@zte.com.cn> Miss USB device Interface from UsbManager.getDeviceList().

In the scenario that you connect more than one device to android phone with an usb hub,
when you attach the second device,mNewConfigurationis is still corresponded to the first
device unless another mNewConfiguration is created by a new operation.
However,before another mNewConfiguration is created,setInterfaces() in addUsbConfiguration()
has already been executed. Problem is that mNewInterfaces has already been cleared when
it finished endUsbDeviceAdded for the first device. As a result,the UsbInterface descriptor
in the first device's Configuration descriptor is set to null.

Change-Id: I0ba4f07c809d07ebebed633e43c3ee8e2e4c5060
erver/usb/UsbHostManager.java
b3c8564314a4ce05b722e33409f2c15bcdac6666 15-Jun-2015 Chris Wren <cwren@android.com> Merge "remove setLatestEventInfo from USB" into mnc-dev
43965fe5cecd2bc8e139f4cbd012e5d6407ac7f6 13-Jun-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: Modify default function handling

When adb is enabled, there's no need to also enable MTP mode.
ADB mode enabled is sufficient to get connect messages from
the kernel driver.

This change modifies getDefaultFunctions() to return adb mode
if adb is enabled, but mtp when it's not enabled. Also stop
using "none" mode as the default. "none" should only be used
when toggling the driver.

Bug: 21429947
Change-Id: I767491417c6c69a120fcf4f3d6ec0c73311a1a60
erver/usb/UsbDeviceManager.java
6d8e413a63c6ab054557f81d53bb8b35f0816679 12-Jun-2015 Chris Wren <cwren@android.com> remove setLatestEventInfo from USB

Bug: 18510449
Change-Id: I6b9ccaa0537c8044c5fa900ae4ea68b2676e1365
erver/usb/UsbDeviceManager.java
674019065bceb4150190bfb1aa63cda9de0a8560 10-Jun-2015 Nick Kralevich <nnk@google.com> Fix USB access control when adb is disabled.

When adb is disabled, the default usb mode would be "none", which
would turn off the driver and prevent UsbDeviceManager from receiving
any new USB connect / disconnect messages. This prevents the user
from ever enabling MTP and sharing data when adb is turned off.

As discussed in bug 21429947, we work around this problem by keeping
the USB driver in MTP mode most of the time, so that we continue to
receive USB connect / disconnect messages.

To avoid leaking confidential user photos, this change introduces an
unlocked state. Setting the mtp enabled function is now decoupled from
exposing data on the USB connection. Only if MTP is enabled and
USB data has been unlocked is confidential user data allowed to be
shared.

Bug: 21429947
Change-Id: Iefb5c7e22dc4962bf5226f2ed3d0155b5c7b413c
erver/usb/UsbDeviceManager.java
erver/usb/UsbService.java
6d5a0f916499a69f28b860fd66d09b5025c30450 08-Jun-2015 Mike Lockwood <lockwood@google.com> UsbMidiDevice: Only keep ALSA devices open when device is in use

This should fix contention problems for apps using USB APIs to implement MIDI support

Bug: 20949468
Bug: 21630625
Change-Id: I32b44330ca0310a4693fd56a4b01ad399f82c1c9
erver/usb/UsbMidiDevice.java
2d63f0a14a450fb23304bfaa639e90fa9fb09e18 03-Jun-2015 Nick Kralevich <nnk@google.com> Merge "UsbDeviceManager: Don't unnecessarily touch properties" into mnc-dev
ffcfe3411ff6ccaa35c2873151e31c879506dadd 13-May-2015 Xiaohui Chen <xiaohuic@google.com> usb debugging: show alert to secondary user

Bug: 12785423
Change-Id: If7f60899cfdaca7bdad560bd59a78f5be74c24be
erver/usb/UsbDebuggingManager.java
2f7fa3ed77373fd49117b53fff402de0fe535385 03-Jun-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: Don't unnecessarily touch properties

Before setting the properties persist.sys.usb.config or sys.usb.config,
check the existing values. If the values are the same as what we'd set it
to, don't perform the set.

Any USB property set, even if setting the property to the value it already
has, triggers one of the "on property" triggers in system/core/rootdir/init.usb.rc .
The script then reconfigures the driver unnecessarily, which causes instability
and dropped connections when trying to use ADB.

Avoid this instability by not performing property sets which would have
no effect.

Bug: 21404762
Bug: 18905620
Change-Id: Id3c2543308df994a0114a0661e20ca799c2dc0e8
erver/usb/UsbDeviceManager.java
4f11754f72ac4c60448b36a1a933cdc2d7bc1870 08-May-2015 Wojciech Staszkiewicz <staszkiewicz@google.com> Pass charset to XmlPullParser.setInput instead of null

Passing null to XmlPullParser.setInput forces it to do additional
work, which can be easily avoided if we know the charset beforehand.

bug: b/20849543

(cherry picked from commit 9e9e2e73c6ec7bece20268196dc89ad0c8bafad4)

Change-Id: Iaff97be9df2d0f99d7af8f19f65934439c9658e2
erver/usb/UsbSettingsManager.java
afe55a5ce96d7fe5e9e37dcd499336423bf87a06 19-May-2015 Paul McLean <pmclean@google.com> Turning off logging in ALSA device connection routines.

bug: 21298614
Change-Id: Ia88393698072af8f7c101382f180192646bf713e
erver/usb/UsbAlsaManager.java
9e9e2e73c6ec7bece20268196dc89ad0c8bafad4 08-May-2015 Wojciech Staszkiewicz <staszkiewicz@google.com> Pass charset to XmlPullParser.setInput instead of null

Passing null to XmlPullParser.setInput forces it to do additional
work, which can be easily avoided if we know the charset beforehand.

bug: b/20849543

Change-Id: Iaff97be9df2d0f99d7af8f19f65934439c9658e2
erver/usb/UsbSettingsManager.java
fcf10f7c12cb3107bdfedce6f76a8c866d154f3c 13-May-2015 Nick Kralevich <nnk@google.com> Modify how USB connections are handled.

* Introduce a new "charger only" mode. In this mode, MTP is disabled,
and no file transfers can occur.
* Make charger only mode the default.
* Modify "persist.sys.usb.config" so it now only holds the adb status.
* Make the USB settings non-persistent. Unplugging the USB connection will
reset the device back to "charger only" mode.
* Fixup wording per UI guidelines.

TODO: Re-implement MDM restrictions for USB / MTP access controls.

Bug: 18905620
Change-Id: I99a50d9132a81e98187f431166fd9fef4d437e4f
erver/usb/UsbDeviceManager.java
erver/usb/UsbService.java
d9c7f2456957a5610cbbca1b2e31aa7b3574c50d 10-May-2015 Nick Kralevich <nnk@google.com> UsbManager / UsbService / UsbDeviceManager: delete unused code

These functions are never called.

Change-Id: Ic436e1036bed717d2c64701fddd9a810abb9443e
erver/usb/UsbDeviceManager.java
erver/usb/UsbService.java
02868b1625f0b1fa6ce1fb2529186f155904dd03 29-Apr-2015 Mike Lockwood <lockwood@google.com> MidiDeviceInfo: Add version string property

For USB devices, this is populated with the USB device version string.

Change-Id: Ia9286d5f41783e4e960a9c724bf6b85b6599fe12
erver/usb/UsbAlsaManager.java
c9bb40ea95101f8a46fab29beac02cc7204be320 29-Apr-2015 Mike Lockwood <lockwood@google.com> UsbDevice: Add support for retrieving version string for a USB device

Change-Id: Ia8630f5ffd05f90347b971110a81f4927060cc4b
erver/usb/UsbHostManager.java
1f13872a01a02ffff93c24ece730a0136ee8757a 24-Apr-2015 Mike Lockwood <lockwood@google.com> UsbAlsaManager: Fix NPE when running in emulator

Bug: 20537358
Change-Id: I46693e45eb6127118cbd54fc3490dc58840b5797
erver/usb/UsbAlsaManager.java
dee5f1bb6e42875a1134d0e8efeef528b92cc548 10-Apr-2015 Mike Lockwood <lockwood@google.com> Add user visible name for USB peripheral MIDI device

Change-Id: I075a54dc3890bc5cf3927cecba3750e1d342d290
erver/usb/UsbAlsaManager.java
b6f50d357bd3d4d296be6bb047f5ce93a79cbca1 08-Apr-2015 Mike Lockwood <lockwood@google.com> Add support for flushing MIDI all scheduled MIDI events on a port

Change-Id: I39d7862540d4d4b9e2df1265f9dd253541adb4c2
erver/usb/UsbMidiDevice.java
2776133be7ac60dc8d6aea5b12e35449ca331836 31-Mar-2015 Mike Lockwood <lockwood@google.com> Add event scheduling support to USB MIDI Manager code

Change-Id: I9fdaaac35c296acc67ee0cf346b0c7b56bf58393
erver/usb/UsbMidiDevice.java
d1b16fe2fb7527eee214898263ec4d6dabbfb0b4 30-Mar-2015 Mike Lockwood <lockwood@google.com> Move MIDI utilities for internal use to com.android.internal.midi package

Change-Id: I7393ae1d4bca61667fb6ee809a7aa22c5c48de56
erver/usb/UsbMidiDevice.java
5781cd5b218dc3e5a19d8f69e6fb9f310bed4df6 27-Mar-2015 Mike Lockwood <lockwood@google.com> Make the MIDI Manager optional, enabled by "android.software.midi" feature

Change-Id: I76d442ea28beea4b9e2876bfef501d8f61403702
erver/usb/UsbAlsaManager.java
005e9b81953a355abcff628cf21e251dcc0e3121 26-Mar-2015 Nick Kralevich <nnk@google.com> Merge "UsbDeviceManager: delete obsolete code"
ad8fc70c6a85e163c16f6531e4872d95a95ddb2f 26-Mar-2015 Nick Kralevich <nnk@google.com> UsbDeviceManager: delete obsolete code

We stopped using persist.service.adb.enable almost 4 years ago
(commit 02e4569b5f126ca916a7473117ddd17d4f2ccbbb). Delete backwards
compatibility code.

Change-Id: Ic656e834e79361b27ca2afcd3705d0523c23717d
erver/usb/UsbDeviceManager.java
b7ce094c9e546c4a802bd8ce3a43592979a5e3df 25-Mar-2015 Mike Lockwood <lockwood@google.com> MIDI Manager: remove USB peripheral MIDI device when USB is disconnected

Otherwise, the MIDI device would appear available always, rather than
only when USB is connected.

Also fixed file descriptor leak in UsbMidiDevice

Change-Id: I0d38e81c488de4748eef36ca359635fa59e0e636
erver/usb/UsbAlsaManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbMidiDevice.java
4a357cd2e55293402d7172766f7f9419815fc1e8 19-Mar-2015 Alan Viverette <alanv@google.com> Replace usages of deprecated Resources.getColor() and getColorStateList()

Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
erver/usb/UsbDeviceManager.java
3ae6acda814cc129b03abf5e418a115813321b06 14-Mar-2015 Mike Lockwood <lockwood@google.com> Merge "Add MidiManager to public API"
81b9f7d325a552c54e793b51f571ae3d65b26e94 11-Mar-2015 Mike Lockwood <lockwood@google.com> Add MidiManager to public API

Also made some small API changes based on feedback from the lint tool.

Change-Id: Ibcf1e9107d86d3a364f811ce47a13aa0da653366
erver/usb/UsbMidiDevice.java
4011e209215d19a1633ed5d1643f3b7643001667 13-Mar-2015 Mike Lockwood <lockwood@google.com> Merge "MidiDeviceInfo meta-data improvements:"
f2cd8024028f602a5e4c27f3d9222e872e4e84f2 11-Mar-2015 Mike Lockwood <lockwood@google.com> MidiDeviceInfo meta-data improvements:

Add property for user visible device name
Add names for input and output ports
Rename "model" to "product" to match USB specification.

Change-Id: I8dc50da935f26825ffc73de456d34e7933aa987c
erver/usb/UsbAlsaManager.java
erver/usb/UsbMidiDevice.java
9087433753a5068819dcd3e86bdc2cce82bb8040 10-Mar-2015 John Spurlock <jspurlock@google.com> AudioService: Write base stream volume changes to the event log.

- Add a new volume_changed event, reported at the stream level.
- Only include changes to base streams (no aliases).
- Include the caller for each change. A caller is either:
- a pkg name (for external calls or known media sessions)
- a system server class's log tag (for internal calls,
disambiguates "android")

Bug: 19599935
Change-Id: Ia61b68ff1e7e2907a24972790ec052bfe099e665
erver/usb/UsbAlsaManager.java
57baee2e12d1102372153cb4a66ff151c5cc855c 11-Mar-2015 Mike Lockwood <lockwood@google.com> Merge "MidiManager: Add MIDI device status notifications"
5ff9e2a1719f78cddc7a23d6572ab15ab595dafd 09-Mar-2015 Mike Lockwood <lockwood@google.com> MidiManager: Add MIDI device status notifications

MidiManager clients can be notified of device status changes via a new MidiDeviceStatus object.
MidiDeviceStatus contains the busy status of the device's input ports and number of
connections to the output ports.
MidiDeviceService now has an optional callback for receiving notifications when its ports change as well.

Change-Id: I1600df4464d82724bc026c27b9633ae9c412d3f0
erver/usb/UsbMidiDevice.java
22e78c65beb9370d4c14a09eb56a94810e7c7375 11-Mar-2015 Mike Lockwood <lockwood@google.com> Merge "Add MidiReceiver.send() and MidiReceiver.getMaxMessageSize()"
0c7342f0153076c88ba8e6a1647999c248787906 09-Mar-2015 Mike Lockwood <lockwood@google.com> Add MidiReceiver.send() and MidiReceiver.getMaxMessageSize()

Change-Id: I10d4f5e2400fcaf41f455e56ca25bbc0c781a042
erver/usb/UsbMidiDevice.java
394a8e1fa7d2aeeec3d750378c1cb5861a583eeb 03-Mar-2015 Paul McLean <pmclean@google.com> Handle simultaneous connect of devices with the same "type" (as in USB)

Change-Id: I163bf8e33ccf5aacc7ba21775916727430327f18
Bug: 19563570
erver/usb/UsbAlsaManager.java
3b7664589be22ddad34b72e11ced937d48660ebb 04-Mar-2015 Mike Lockwood <lockwood@google.com> Make MidiSender and MidiReceiver abstract classes, rename MidiReceiver.post() to receive()

Change-Id: I1cef3bd48ca0acf2968c9de223f78445f3434404
erver/usb/UsbMidiDevice.java
20821ecbe81ba52b260ae232096bc2bfb3e92ad0 24-Feb-2015 Mike Lockwood <lockwood@google.com> Eliminate MidiPort base class for MidiInputPort and MidiOutputPort

Change-Id: I628c0468ac980eee909add53a4d6e55e9b358603
erver/usb/UsbMidiDevice.java
c623ec973b5e8d1fd2ff4162d5de8701a6490121 05-Mar-2015 Mike Lockwood <lockwood@google.com> Merge "MidiManager: Virtual MIDI devices are now implemented as Services"
11fd96d6ff25bc1d710448eab545fe09da55a5f5 02-Mar-2015 Mike Lockwood <lockwood@google.com> MidiManager: Virtual MIDI devices are now implemented as Services

To implement a virtual MIDI device, include a subclass of MidiDeviceService in
your application. This service is identified by an intent filter and meta-data
in the application's manifest to allow the MIDI manager to register the virtual device
without actually running the application. Instead, the application's MidiDeviceService
subclass is started on demand when MIDI manager clients want to open the device.

Here is an example of how the MidiDeviceService might be described in the application manifest:

<service android:name="VirtualDeviceService">
<intent-filter>
<action android:name="android.media.midi.MidiDeviceService" />
</intent-filter>
<meta-data android:name="android.media.midi.MidiDeviceService"
android:resource="@xml/device_info" />
</service>

and the device_info.xml meta-data:

<devices>
<device manufacturer="Sample Manufacturer" model="Sample Model" private="false">
<input-port name="my input port" />
<output-port name="my output port" />
</device>
</devices>

(note that the <input-port> and <output-port> names are not currently used, but support for these
will be added in a subsequent change)

Client's of the virtual device will bind directly to the hosting application's MidiDeviceService subclass.
To support this, MidiManager.openDevice() now returns the MidiDevice asynchronously via a callback.

This change also adds a utility class called MidiDispatcher, which is a MidiReceiver
that dispatches all data it receives to a list of other MidiReceivers.
We now use this internally in MidiInputPort and MidiDeviceServer, but developers
may use it for other purposes as well.

Change-Id: Ic3009f06d56f3d5edbd87de3f0c330b51a1c217d
erver/usb/UsbMidiDevice.java
f4a8df4c7ee8d6a402e26339514cd73aba613105 04-Mar-2015 Amith Yamasani <yamasani@google.com> Fix a regression in UsbDebuggingManager

Catch NPE as well if socket object is null.

Bug: 19602060
Change-Id: I7cf9cb16abc3fde626170c1aefeba5fc91c5734f
erver/usb/UsbDebuggingManager.java
7b91c55b3ff4857e904a11a0a67fcc86a32868b4 02-Mar-2015 John Spurlock <jspurlock@google.com> Merge "Remove unused imports in frameworks/base."
d65ed881443717c2786fae641d5de5af725d10f8 02-Mar-2015 Amith Yamasani <yamasani@google.com> Merge "Avoid NPE when quickly toggling USB debugging state"
f6197e8fa25d7a411a08ca01f9af8f6278ef97d6 26-Feb-2015 Amith Yamasani <yamasani@google.com> Avoid NPE when quickly toggling USB debugging state

If you try to disable USB debugging before the socket
to listen is opened in the thread, it will end up
with an NPE.

Do some locking around socket creation and closing
to avoid this.

Bug: 18708503
Change-Id: Iac43e4806fff1e411772b1ba1a070d8a7c776fcb
erver/usb/UsbDebuggingManager.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
erver/usb/UsbAlsaManager.java
erver/usb/UsbDebuggingManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbHostManager.java
erver/usb/UsbSettingsManager.java
464c655871f4c1dd280474723e4b33f55044baa5 26-Feb-2015 Mike Lockwood <lockwood@google.com> Move ALSA utilities to com.android.internal.alsa package

Change-Id: Icbd45ec97a942e44e60f8d4ba0bb58c97f85b55f
erver/usb/UsbAlsaManager.java
b673770f7172d4fca9bc05de1f36bc53e93eb247 20-Feb-2015 Mike Lockwood <lockwood@google.com> Add MIDI Manager API tweaks:

- Change the package name from android.midi to android.media.midi

- Add option for specifying a Handler for DeviceCallback notifications

Change-Id: Ia9e9817a651c06299f4e02ee1da3c9666ff64cb9
erver/usb/UsbAlsaManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbMidiDevice.java
c3c2ff70a23ff31bec72e7794ea33552ca106438 20-Feb-2015 Mike Lockwood <lockwood@google.com> Add support for USB notification when connected as a MIDI peripheral

Change-Id: Ib3efcda6af976c878e63b0d35a8e47a3ea9435a3
erver/usb/UsbDeviceManager.java
0e4242f9cb332e5aa7d271f67ded75aa59f3023f 05-Feb-2015 Paul McLean <pmclean@google.com> Audio Device Enumeration API.

Change-Id: Ic78fda8b2a6f6ac0f37a1f665b29f3359cfc5ecc
erver/usb/UsbAlsaManager.java
5b14d9893aced2b3ba46f1d90a0752c1a9a43f2f 13-Feb-2015 Mike Lockwood <lockwood@google.com> Merge "MidiManager API tweaks:"
90b9a6a4ab30fc162aee71b4dc484b3839534369 12-Feb-2015 Mike Lockwood <lockwood@google.com> MidiManager API tweaks:

Rename MidiReceiver.onPost() to post()

Change MidiManager.DeviceCallback from an interface to a class

Change-Id: I939ba7a7d82e721b90a3d80252a88e7a650c9396
erver/usb/UsbMidiDevice.java
6156017c2217d0fbbbb03434986250ec6bbd69d8 07-Feb-2015 John Spurlock <jspurlock@google.com> Move AudioService to services.

...and a few dependencies. Move remaining shared items to AudioSystem.

Change-Id: Ib9623ff867678d34977337856bb0156e8cdaeeb5
erver/usb/UsbAlsaManager.java
83f367475b71ea1abd78b88e70c219c00f2af110 06-Feb-2015 Craig Mautner <cmautner@google.com> Merge "Revert "Revert "Do not display ADB confirm dialog during boot"""
b43d3cff67b831db3b7e9fb834de66e4f9d2bc16 06-Feb-2015 Craig Mautner <cmautner@google.com> Revert "Revert "Do not display ADB confirm dialog during boot""

This reverts commit e37099ffdfc966d52b4323a3705359ea42fa283e.

Fixes bug 18652251

Change-Id: Ib00e8269558aae294ff6453d1f6ceef1771c4572
erver/usb/UsbDebuggingManager.java
968aca1d7e142b2d3d8bbd036506e058717bda66 06-Feb-2015 Craig Mautner <cmautner@google.com> Merge "Revert "Do not display ADB confirm dialog during boot""
e37099ffdfc966d52b4323a3705359ea42fa283e 06-Feb-2015 Craig Mautner <cmautner@google.com> Revert "Do not display ADB confirm dialog during boot"

This reverts commit 34e90b2214b39db31bccaf24644d0db55bcde965.

Change-Id: Ib385793aa2b7472933bdb0c707b10e2bac1a4cb3
erver/usb/UsbDebuggingManager.java
b8415ecfe920a596fd6360de98424d3e9951c58c 06-Feb-2015 Craig Mautner <cmautner@google.com> Merge "Do not display ADB confirm dialog during boot"
10804eb2818ab59b763a37b4f6151693c2ebba7b 28-Jan-2015 Paul McLean <pmclean@google.com> Add additional info to AudioPort for enum/selection API.

Add "device name" member to AudioPort.
Moved unique device ID from DevicePort to AudioPort.
Straighten out confusion between "name" and "address"
Created string constants for Intent "extra" data keys.
Combine card/address data into "address" at sender.Add additional info to AudioPort for enum/selection API.
Parse out USB Device name in UsbCardsParser.

Change-Id: Ifd76b0298312090a8f39e638339f993b86d47080
erver/usb/UsbAlsaManager.java
erver/usb/UsbAudioDevice.java
34e90b2214b39db31bccaf24644d0db55bcde965 04-Feb-2015 Craig Mautner <cmautner@google.com> Do not display ADB confirm dialog during boot

Wait until after encrypted volume has been mounted.
Also eliminate warning by starting UsbDebuggingActivity as owner.

Fixes bug 19217173.

Change-Id: I6da530259bb02eb1892509ec5085a471f9893714
erver/usb/UsbDebuggingManager.java
51936d426086d58a6fe6780253d3038cf12bae25 29-Jan-2015 Mike Lockwood <lockwood@google.com> Merge "UsbAlsaManager: Don't reselect current USB audio device on all USB disconnects"
2a57bc7fd602853dc1a22dcee1ff50f92cc29060 19-Sep-2014 Mike Lockwood <lockwood@google.com> MidiManager: Add USB peripheral MIDI support

This allows the android device to appear as a USB MIDI device to
a USB host (like a Mac or a PC) using the f_midi USB gadget driver.

Change-Id: I14f1ba73bcce2c894e77efb8810beac4ffe246d8
erver/usb/UsbAlsaManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbMidiDevice.java
9c2d34c764f14ed7a5076bd38417afde0b246bd6 29-Jan-2015 Mike Lockwood <lockwood@google.com> UsbAlsaManager: Don't reselect current USB audio device on all USB disconnects

Change-Id: I4d3a0d803a6d1eb02ff48a7e8587a1ff6c66a500
erver/usb/UsbAlsaManager.java
cb096273734d96f4676014fa9030b57ea48b58d8 27-Jan-2015 Mike Lockwood <lockwood@google.com> MIDI Manager: Remove message packetization from MIDI transport

Instead of attempting to package exactly one MIDI message in each call to
MidiReceiver.onPost(), we now pass messages as a raw stream of bytes.
This means we may now receive multiple MIDI messages in MidiReceiver.onPost().

We make this change to avoid the complexity of taking the single message approach
with SysEx and realtime messages. This shifts some of the burden of parsing
MIDI messages to the client application. But the parsing is best handled in the
application anyway, rather than having the framework impose its own policy
on how the messages are parsed.

Change-Id: Idb6c200037f827cc618bc7d9455a7aa864b494a7
erver/usb/UsbMidiDevice.java
2e3434149e00f921ca3555ae55cba04d3c64eeb1 08-Jan-2015 Mike Lockwood <lockwood@google.com> Replace broadcasts with calls to IAudioService.setWiredDeviceConnectionState() to report USB device status

Change-Id: Ic96cffaa63b6c6350b76e7cb29398c5f5dc86962
erver/usb/UsbAlsaManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbHostManager.java
erver/usb/UsbService.java
98cc8e5a6473b3a5802d97cc81020ec4e3cd23f3 15-Jan-2015 Mike Lockwood <lockwood@google.com> MidiManager bug fixing:

- fix off by one error that caused failure handling one byte messages

- poll thread now terminates properly in UsbMidiDevice

- fix cleanup logic in MidiDeviceServer

Change-Id: I0c13a98b6542cfb271b51678e81d1822c8da2985
erver/usb/UsbMidiDevice.java
10024b3dc12a8552c1547b67810c77b865045cc8 11-Dec-2014 Mike Lockwood <lockwood@google.com> MidiManager updates:

MIDI ports are now implemented as file descriptors directly between the sender
and receiver, so the MidiService is no longer in the message path.

To facilitate the above, each port has its own file descriptor, rather than multiplexing
all ports on a device through a single socket.

Added a new class MidiDeviceServer, which is used by implementors of MIDI devices.
This replaces the MidiVirtualDevice class (which only was included in changes that were reviewed but never submitted).

The USB MIDI implementation has moved from the MIDI service to the USB service.
The USB MIDI implementation uses MidiDeviceServer as its interface, so we now have a common
interface for all MIDI device implementations.

Change-Id: I8effd1583f344beb6c940c3a24dbf20b477a6436
erver/usb/UsbAlsaManager.java
erver/usb/UsbAudioDevice.java
erver/usb/UsbMidiDevice.java
0a8f06922f288bfa4a22a7cd45dd5b89a9563e54 22-Dec-2014 Paul McLean <pmclean@google.com> Support for simultaneous USB Audio Devices connect/disconnect

Attach/Detach logic
Decoupling card# and list index
Modern loop constructs
Consistent logging flags
Add class/type flags to device "address" string.
Factored UsbAudioDevice out of UsbAudioManager.

Bug: 18399845
Bug: 18717784

Change-Id: I6f185e1c24091d4c0d21eb7e922a1496748d32c3
erver/usb/UsbAlsaManager.java
erver/usb/UsbAudioDevice.java
d2de5a421a7d547bd431335583748fd82ddc1ebc 19-Dec-2014 Mike Lockwood <lockwood@google.com> Rename UsbAudioManager to UsbAlsaManager

Change-Id: I53b084400ef3e0692415cc5af91c8b500ffd8346
erver/usb/UsbAlsaManager.java
erver/usb/UsbAudioManager.java
erver/usb/UsbHostManager.java
d00c3752e634d719f309bc4db7c414b9d130d72b 09-Dec-2014 Zoltan Szatmary-Ban <szatmz@google.com> am 32ed193b: am f5e44c29: am c5c93edd: Merge "When switching to default USB function set, check restriction" into lmp-mr1-dev

* commit '32ed193bb5396451401e62493f83664da9228729':
When switching to default USB function set, check restriction
67f8e8bd8927f24147d7a1edd6ec3db1a54233b2 01-Dec-2014 Mike Lockwood <lockwood@google.com> MIDI Manager work in progress

Still to do:

Add MidiInputPort and MidiOutputPort classes
Schedule sending MIDI events in the future
Security/permissions
Reconsider interface for virtual devices
Look into performance optimizations

Change-Id: I9b7d63b196996a04be0a830efa913043da1328a8
erver/usb/UsbAudioManager.java
469c15d6afc295af513f3136de4bfce63e165978 02-Dec-2014 Zoltan Szatmary-Ban <szatmz@google.com> When switching to default USB function set, check restriction

The user restriction DISALLOW_USB_FILE_TRANSFER has to be respected
when switching USB function set.

Bug: 18532487
Change-Id: I16fda6358027a659e3bfa0c5f3bf6b3918d0bced
erver/usb/UsbDeviceManager.java
fb0a22eb62567f39447495622c2198173ca6e287 01-Dec-2014 Mike Lockwood <lockwood@google.com> Remove polling for ALSA device files in USB audio device detection.

Change-Id: I993fe41707fc02c9449800c7325aaf7270fb892e
erver/usb/UsbAudioManager.java
erver/usb/UsbHostManager.java
b66252fb4288ae7e3fa6f1214455e46b9a2e56b2 19-Nov-2014 Geoffrey Borggaard <geoffreyb@google.com> Setting ADB_ENABLED may result in a SecurityException.

If the restriction UserManager.DISALLOW_DEBUGGING_FEATURES is enforced,
then any attempt to set ADB_ENABLED will result in a SecurityException.
This can result in the device not being able to boot.
Bug: 18433477

Change-Id: I21e4b406ad0fa89b7d4b678eac1baf212a3c7acd
(cherry picked from commit ba45b96a378623e3392da65e81e67dabdf4f0678)
erver/usb/UsbDeviceManager.java
451a6f8f9a5e629a94b3cb75eb2d8576caea5471 12-Nov-2014 Nick Kralevich <nnk@google.com> fix crash on invalid base64 key

An invalid adb public key can cause a system server crash.

AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: android.fg
AndroidRuntime: java.lang.IllegalArgumentException: bad base-64
AndroidRuntime: at android.util.Base64.decode(Base64.java:161)
AndroidRuntime: at android.util.Base64.decode(Base64.java:136)
AndroidRuntime: at com.android.server.usb.UsbDebuggingManager.getFingerprints(UsbDebuggingManager.java:235)
AndroidRuntime: at com.android.server.usb.UsbDebuggingManager.access$500(UsbDebuggingManager.java:49)
AndroidRuntime: at com.android.server.usb.UsbDebuggingManager$UsbDebuggingHandler.handleMessage(UsbDebuggingManager.java:210)
AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:61)
AndroidRuntime: at com.android.server.ServiceThread.run(ServiceThread.java:46)
Process : Sending signal. PID: 824 SIG: 9

Bug: 17389885
Change-Id: Id20d7c0ee35229b14c800fd9e07716239179989c
erver/usb/UsbDebuggingManager.java
3d50308c7fd2a40dfdeeecdacd44b6ae6d28aafb 31-Oct-2014 Mike Lockwood <lockwood@google.com> Fix USB audio disconnect logic

Previously, disconnecting any USB device would terminate USB audio playback.

Also moved USB audio support to a separate class and did some prep work for
multiple USB audio device support.

Bug: 18203024
Change-Id: I49822c2c47428e658c853b2ec83c7313e626a1cb
erver/usb/UsbAudioManager.java
erver/usb/UsbHostManager.java
c5258433dd353769ccfa2e5e769a7379378a3a0b 28-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> Move *_AUDIO_PLUG actions from Intent to android.media.AudioManager

For ACTION_HEADSET_PLUG (already in SDK):
- duplicated definition in AudioManager and moved
javadoc there. Javadoc in Intent points to AudioManager.
- the String value is not changed

For ACTION_HDMI_AUDIO_PLUG (being added in SDK):
- moved defintion from Intent to AudioManager
- updated String value to reflect package name "android.media"
instead of using "android.intent"
- added definition of the extras, but removed "name".

For ACTION_ANALOG_AUDIO_DOCK_PLUG,
ACTION_DIGITAL_AUDIO_DOCK_PLUG,
ACTION_USB_AUDIO_ACCESSORY_PLUG,
ACTION_USB_AUDIO_DEVICE_PLUG, all hidden:
- moved definition from Intent to AudioManager,
- changed the value from "android.intent.*" to "android.media.*"

Updated AudioService, UsbDeviceManager and UsbHostManager
to refer to the actions in AudioManager, not Intent.

Bug 17289385

Change-Id: I61dd73140022d2bb9a676a57f595092c8fa89dcc
erver/usb/UsbDeviceManager.java
erver/usb/UsbHostManager.java
255dd04271088590fedc46c8e22b2fd4ab142d39 19-Aug-2014 Selim Cinek <cinek@google.com> Added notification color to all system notifications

Bug: 17128331
Change-Id: I81a94510ef51b99916f314c0dd65852426a1fbeb
erver/usb/UsbDeviceManager.java
c7f084f61c3ad24acb35cde1854808285216d3de 14-Aug-2014 Paul McLean <pmclean@google.com> Fix ALSA initialized wait for input-only USB Audio devices

Bug 17012266

Change-Id: I09427bb924f895bf66af9ef7ad4f0882746d03c4
erver/usb/UsbHostManager.java
9769ef9f8ac86ef69d08afbadb7a00aceeadc5a6 14-Jul-2014 Emily Bernier <ember@google.com> Restore user switching logic.

Change-Id: I859145efc8e7f426ca7f7ad915b082b7e8a2c516
erver/usb/UsbDeviceManager.java
1848d31c2cbb5404be383ad44049e58e36b258ba 26-Jun-2014 Emily Bernier <ember@google.com> Prevent users from mounting USB, if restricted.

Bug: 13585295

Change-Id: I6b7905fad06bf2e1d4dd629a266280ddff9b3121
erver/usb/UsbDeviceManager.java
erver/usb/UsbService.java
2471e02c1980ea84c19fd343d2d95b816bedfcc6 05-Jun-2014 Mike Lockwood <lockwood@google.com> UsbDebuggingManager: remove log spam when disconnecting USB

Bug: 15112047
Change-Id: Ia07895ee166fa87c88d0443f0745bc9384dac10c
erver/usb/UsbDebuggingManager.java
65a30ab519580deed21d206e66f456fc2c706fbe 15-May-2014 Paul McLean <pmclean@google.com> Changed namespace of AlsaParser (and components) to correctly reflect their place
in the directory hierarchy.

Change-Id: I33a5a34a31d5811cfb5167843dc185ba94d236fd
erver/usb/UsbHostManager.java
d83a096f299abd9c7fe5e441ef1bb169c314b575 03-May-2014 Dianne Hackborn <hackbod@google.com> Bump up priority of system receiving BOOT_COMPLETED.

Change-Id: I5166f88f11f781914312e867cb653c8ecbefa705
erver/usb/UsbDeviceManager.java
8aa68921a577e1b665fe61cb40d3c929054a0a94 17-Apr-2014 Aaron Whyte <awhyte@google.com> am ee5d512d: am 4980996b: Merge "Allowed custom secure-adb confirmation via Activity or Service. It used to only be available via an Activity." into klp-modular-dev

* commit 'ee5d512d624c15fa0c7e179ace24c7055a9f539d':
Allowed custom secure-adb confirmation via Activity or Service. It used to only be available via an Activity.
ee5d512d624c15fa0c7e179ace24c7055a9f539d 17-Apr-2014 Aaron Whyte <awhyte@google.com> am 4980996b: Merge "Allowed custom secure-adb confirmation via Activity or Service. It used to only be available via an Activity." into klp-modular-dev

* commit '4980996bcc4e8065cf5dff1cf989d73face38281':
Allowed custom secure-adb confirmation via Activity or Service. It used to only be available via an Activity.
d1931ffc075f73d043616b7446f14a653609782e 11-Apr-2014 Aaron Whyte <awhyte@google.com> Allowed custom secure-adb confirmation via Activity or Service.
It used to only be available via an Activity.

Change-Id: Id79a99a70e721f3b567e75d45ffeba779264ec1e
erver/usb/UsbDebuggingManager.java
fd7d31087bcd40b825b0eee3058e2298d8648e9f 11-Apr-2014 Paul McLean <pmclean@google.com> Merge "Implement USB Audio across Nexus Devices Fix issues with connecting non-audio USB devices."
d1d7c491601a3fd1547c31606e1b8386db068b9c 11-Apr-2014 Paul McLean <pmclean@google.com> Merge "Revert "Revert "Initial implementation of USB Audio output."""
df3614693dd4fe52a116dcd28bd74eae80818a4f 11-Apr-2014 Paul McLean <pmclean@google.com> Implement USB Audio across Nexus Devices
Fix issues with connecting non-audio USB devices.

https://b.corp.google.com/issue?id=13745966
https://b.corp.google.com/issue?id=8281454
https://b.corp.google.com/issue?id=13751080
https://b.corp.google.com/issue?id=4643412

Change-Id: I1186f69a6c5f50279a1225a77fb5d4f7a8eda3cb
erver/usb/UsbHostManager.java
988b38bc812b12871ac7452a40d9d73273d126bc 11-Apr-2014 Elliott Hughes <enh@google.com> am 5b7dccc4: am 90e2301e: am d2a11d97: Merge "Add explicit close of Scanner input"

* commit '5b7dccc4f9cc1d07650cd7d1f499c3c11ba3ede2':
Add explicit close of Scanner input
5b7dccc4f9cc1d07650cd7d1f499c3c11ba3ede2 11-Apr-2014 Elliott Hughes <enh@google.com> am 90e2301e: am d2a11d97: Merge "Add explicit close of Scanner input"

* commit '90e2301e23532c92dd4c24394b7407e243389e9f':
Add explicit close of Scanner input
c837a451946b64d70ed7c642fbde03c182c28b6f 09-Apr-2014 Paul McLean <pmclean@google.com> Revert "Revert "Initial implementation of USB Audio output.""

This reverts commit f2f80c09b668176b3b1e619457ae628432636507.
erver/usb/UsbHostManager.java
f2f80c09b668176b3b1e619457ae628432636507 08-Apr-2014 Eric Laurent <elaurent@google.com> Revert "Initial implementation of USB Audio output."

This reverts commit 3af0fe0c9df2fc1e0a4d6bcd827a4d7aa28dbdeb
while investigating issues 13751080 and 13883978.

Bug: 13751080.
erver/usb/UsbHostManager.java
6f127c9b6c249ca1cd17c07a8476edd0fcc1f04d 01-Apr-2014 Paul McLean <pmclean@google.com> Merge "Initial implementation of USB Audio output."
3af0fe0c9df2fc1e0a4d6bcd827a4d7aa28dbdeb 02-Dec-2013 Paul McLean <pmclean@google.com> Initial implementation of USB Audio output.

Change-Id: I7fbbe421285d628fa49591c6469ac50efec77ccf
erver/usb/UsbHostManager.java
868f373b65200ace63b143da60a270bb18903d82 29-Mar-2014 Aaron Whyte <awhyte@google.com> am 23fd13de: am f10d0399: Made secure-adb\'s new-public-key activity configurable. Some devices do not have lockscreens themselves, so the plan is to have them do RPCs to companion devices that can have lockscreens, for allowing or rejecting unwhitelisted adb public k

* commit '23fd13de62762e98c32f2b7525f01f0bcdf416fd':
Made secure-adb's new-public-key activity configurable. Some devices do not have lockscreens themselves, so the plan is to have them do RPCs to companion devices that can have lockscreens, for allowing or rejecting unwhitelisted adb public keys.
f10d0399bf5f519dff414a9d195a0eaacb37f9b7 28-Mar-2014 Aaron Whyte <awhyte@google.com> Made secure-adb's new-public-key activity configurable.
Some devices do not have lockscreens themselves, so the plan is to have them
do RPCs to companion devices that can have lockscreens, for allowing or
rejecting unwhitelisted adb public keys.

Change-Id: I6f7504313074e6748c0bd467a29ac3a311036f4d
erver/usb/UsbDebuggingManager.java
0416faa2b2b14df2f9392937a61f2d182feaa9d5 21-Mar-2014 Mike Lockwood <lockwood@google.com> am 7a07f4d4: am a5853b17: am 1fe28b20: am 71060db6: am dffdf107: Merge "UsbDeviceManager: A better fix for race condition when starting USB accessory mode" into klp-dev

* commit '7a07f4d4ad1f2f4893223693aece62f095ce004e':
UsbDeviceManager: A better fix for race condition when starting USB accessory mode
c84b4d7ff20c21aa3658c81c18546a74921be441 21-Mar-2014 Mike Lockwood <lockwood@google.com> am e920322f: am 86119603: am aa7e396f: am 935d417b: am afc3a5d3: Merge "Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"" into klp-dev

* commit 'e920322ff0c67cdd9e9682fd7c7df5221a6fb13e':
Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"
1fe28b20f1cfc6d2542f8b0bfe48355f3a58067b 21-Mar-2014 Mike Lockwood <lockwood@google.com> am 71060db6: am dffdf107: Merge "UsbDeviceManager: A better fix for race condition when starting USB accessory mode" into klp-dev

* commit '71060db65e0e1c903b429c932cd6e27beec10a3e':
UsbDeviceManager: A better fix for race condition when starting USB accessory mode
aa7e396f44f9b3b12a6abc9d8d62cf3a6f17527b 21-Mar-2014 Mike Lockwood <lockwood@google.com> am 935d417b: am afc3a5d3: Merge "Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"" into klp-dev

* commit '935d417b5615a62bc521a8eb58c35de1b4fdf841':
Revert "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents"
9428eb82c0cadf897e47475e616d3927cb2524e7 14-Mar-2014 Mike Lockwood <lockwood@google.com> am c5353ce3: am 685831bf: am f9b90434: am ff64f5ed: am 381374b3: Merge "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents" into klp-dev

* commit 'c5353ce373f02b549ed9e63aa23f94ca1a726f7e':
UsbDeviceManager: Fix race condition between accessory start and USB configured uevents
f9b90434ef04b509c7dcb868d50aa53a66b97809 14-Mar-2014 Mike Lockwood <lockwood@google.com> am ff64f5ed: am 381374b3: Merge "UsbDeviceManager: Fix race condition between accessory start and USB configured uevents" into klp-dev

* commit 'ff64f5ed7c2b55878d149d546092e029cba15465':
UsbDeviceManager: Fix race condition between accessory start and USB configured uevents
e97b62ed0d4050acacbf54781435686ea28edd73 13-Mar-2014 Mike Lockwood <lockwood@google.com> USB: Add support for disabling USB permission dialogs.

Setting scom.android.internal.R.bool.config_disableUsbPermissionDialogs to true
will disable all USB permission dialogs, allowing apps access to USB devices
and accessories by default.

For prototyping purposes only. This should not be used in real devices.

Bug: 13437578
Change-Id: Ie7bf83882943930b15e5f1edb3044a4a52034273
erver/usb/UsbSettingsManager.java
7531aa22355cf03f51def61ba67f1636bf85f408 13-Jan-2014 Mike Lockwood <lockwood@google.com> Add support for USB devices with multiple configurations and alternate interfaces

Added UsbConfiguration class, as well as accessors to UsbDevice to get configuration list
Added methods to UsbDeviceConnection to select configurations and alternate interfaces.

Also added accessors for USB descriptor name strings and fixed some memory leaks in the JNI code.

Bug: 12425052
Change-Id: Idb990f4d5c054a8cb997eb3f440f6da9f83bce05
erver/usb/UsbHostManager.java
4495c86dbf2b625fe717c98fec389ac8134d63ef 25-Feb-2014 Mike Lockwood <lockwood@google.com> am f2d07694: am 6eff9949: am 0fc59cd9: am da2bbaf2: am 2c7b913e: am 5daec5b5: Merge "UsbDeviceManager: Fix race condition entering USB accessory mode" into klp-dev

* commit 'f2d07694d05240b039bd02cf3982941c0435c33d':
UsbDeviceManager: Fix race condition entering USB accessory mode
0fc59cd958b87d015deac63797fcbfbcec518389 25-Feb-2014 Mike Lockwood <lockwood@google.com> am da2bbaf2: am 2c7b913e: am 5daec5b5: Merge "UsbDeviceManager: Fix race condition entering USB accessory mode" into klp-dev

* commit 'da2bbaf219117f7507c5c0015c41347a9cc27507':
UsbDeviceManager: Fix race condition entering USB accessory mode
a78068e7a3af53cc2b590902f74074d1781513da 19-Feb-2014 Adam Lesinski <adamlesinski@google.com> am 13c83996: am 1c532c2e: am 4b07b26e: Merge "Make UsbService optional" into klp-modular-dev

* commit '13c839962e246517a7a95326610ea30c529d79dc':
Make UsbService optional
2cb6c60c0d2de3bc743c043aca963db6fe52662f 15-Feb-2014 Adam Lesinski <adamlesinski@google.com> Make UsbService optional

Tweaked the services Android.mk to build dependencies
when building with mm[m].

Change-Id: I6dad511c652bcacc085f27ede5f8f22a6982c6bd
erver/usb/UsbDebuggingManager.java
erver/usb/UsbDeviceManager.java
erver/usb/UsbHostManager.java
erver/usb/UsbService.java
erver/usb/UsbSettingsManager.java