95 Commits

Author SHA1 Message Date
Mike Lockwood
98cc8e5a64 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
2015-01-15 16:07:28 -08:00
Mike Lockwood
10024b3dc1 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
2015-01-14 16:51:54 -08:00
Paul McLean
0a8f06922f 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
2015-01-09 14:56:43 -08:00
Mike Lockwood
d2de5a421a Rename UsbAudioManager to UsbAlsaManager
Change-Id: I53b084400ef3e0692415cc5af91c8b500ffd8346
2014-12-19 10:08:36 -08:00
Zoltan Szatmary-Ban
d00c3752e6 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
2014-12-09 22:22:17 +00:00
Mike Lockwood
67f8e8bd89 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
2014-12-08 10:45:37 -08:00
Zoltan Szatmary-Ban
469c15d6af 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
2014-12-05 17:14:43 +00:00
Mike Lockwood
fb0a22eb62 Remove polling for ALSA device files in USB audio device detection.
Change-Id: I993fe41707fc02c9449800c7325aaf7270fb892e
2014-12-01 12:21:41 -08:00
Geoffrey Borggaard
b66252fb42 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)
2014-11-20 15:39:23 +00:00
Nick Kralevich
451a6f8f9a 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
2014-11-12 13:40:30 -08:00
Mike Lockwood
3d50308c7f 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
2014-10-31 15:28:52 -07:00
Jean-Michel Trivi
c5258433dd 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
2014-08-29 17:29:27 -07:00
Selim Cinek
255dd04271 Added notification color to all system notifications
Bug: 17128331
Change-Id: I81a94510ef51b99916f314c0dd65852426a1fbeb
2014-08-20 14:25:18 +02:00
Paul McLean
c7f084f61c Fix ALSA initialized wait for input-only USB Audio devices
Bug 17012266

Change-Id: I09427bb924f895bf66af9ef7ad4f0882746d03c4
2014-08-14 07:42:49 -07:00
Emily Bernier
9769ef9f8a Restore user switching logic.
Change-Id: I859145efc8e7f426ca7f7ad915b082b7e8a2c516
2014-07-14 10:40:54 -04:00
Emily Bernier
1848d31c2c Prevent users from mounting USB, if restricted.
Bug: 13585295

Change-Id: I6b7905fad06bf2e1d4dd629a266280ddff9b3121
2014-07-09 13:23:15 -04:00
Mike Lockwood
2471e02c19 UsbDebuggingManager: remove log spam when disconnecting USB
Bug: 15112047
Change-Id: Ia07895ee166fa87c88d0443f0745bc9384dac10c
2014-06-05 08:24:16 -07:00
Paul McLean
65a30ab519 Changed namespace of AlsaParser (and components) to correctly reflect their place
in the directory hierarchy.

Change-Id: I33a5a34a31d5811cfb5167843dc185ba94d236fd
2014-05-15 13:22:37 -07:00
Dianne Hackborn
d83a096f29 Bump up priority of system receiving BOOT_COMPLETED.
Change-Id: I5166f88f11f781914312e867cb653c8ecbefa705
2014-05-02 16:29:10 -07:00
Aaron Whyte
8aa68921a5 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.
2014-04-16 23:56:07 +00:00
Aaron Whyte
ee5d512d62 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.
2014-04-16 23:49:20 +00:00
Aaron Whyte
d1931ffc07 Allowed custom secure-adb confirmation via Activity or Service.
It used to only be available via an Activity.

Change-Id: Id79a99a70e721f3b567e75d45ffeba779264ec1e
2014-04-16 14:50:14 -07:00
Paul McLean
fd7d31087b Merge "Implement USB Audio across Nexus Devices Fix issues with connecting non-audio USB devices." 2014-04-11 21:18:51 +00:00
Paul McLean
d1d7c49160 Merge "Revert "Revert "Initial implementation of USB Audio output.""" 2014-04-11 21:18:35 +00:00
Paul McLean
df3614693d 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
2014-04-11 12:18:44 -07:00
Elliott Hughes
988b38bc81 am 5b7dccc4: am 90e2301e: am d2a11d97: Merge "Add explicit close of Scanner input"
* commit '5b7dccc4f9cc1d07650cd7d1f499c3c11ba3ede2':
  Add explicit close of Scanner input
2014-04-11 17:25:08 +00:00
Elliott Hughes
5b7dccc4f9 am 90e2301e: am d2a11d97: Merge "Add explicit close of Scanner input"
* commit '90e2301e23532c92dd4c24394b7407e243389e9f':
  Add explicit close of Scanner input
2014-04-11 17:21:20 +00:00
Paul McLean
c837a45194 Revert "Revert "Initial implementation of USB Audio output.""
This reverts commit f2f80c09b668176b3b1e619457ae628432636507.
2014-04-09 09:04:43 -07:00
Eric Laurent
f2f80c09b6 Revert "Initial implementation of USB Audio output."
This reverts commit 3af0fe0c9df2fc1e0a4d6bcd827a4d7aa28dbdeb
while investigating issues 13751080 and 13883978.

Bug: 13751080.
2014-04-07 18:01:29 -07:00
Paul McLean
6f127c9b6c Merge "Initial implementation of USB Audio output." 2014-04-01 16:15:47 +00:00
Paul McLean
3af0fe0c9d Initial implementation of USB Audio output.
Change-Id: I7fbbe421285d628fa49591c6469ac50efec77ccf
2014-03-31 16:41:33 -07:00
Aaron Whyte
868f373b65 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.
2014-03-28 23:40:13 +00:00
Aaron Whyte
f10d0399bf 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
2014-03-28 22:21:55 +00:00
Mike Lockwood
0416faa2b2 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
2014-03-21 03:10:34 +00:00
Mike Lockwood
c84b4d7ff2 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"
2014-03-21 03:10:30 +00:00
Mike Lockwood
1fe28b20f1 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
2014-03-21 01:14:15 +00:00
Mike Lockwood
aa7e396f44 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"
2014-03-21 01:14:12 +00:00
Mike Lockwood
9428eb82c0 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
2014-03-14 21:54:13 +00:00
Mike Lockwood
f9b90434ef 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
2014-03-14 21:42:58 +00:00
Mike Lockwood
e97b62ed0d 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
2014-03-13 10:26:53 -07:00
Mike Lockwood
7531aa2235 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
2014-02-27 09:59:02 -08:00
Mike Lockwood
4495c86dbf 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
2014-02-25 15:54:25 +00:00
Mike Lockwood
0fc59cd958 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
2014-02-25 15:44:24 +00:00
Adam Lesinski
a78068e7a3 am 13c83996: am 1c532c2e: am 4b07b26e: Merge "Make UsbService optional" into klp-modular-dev
* commit '13c839962e246517a7a95326610ea30c529d79dc':
  Make UsbService optional
2014-02-19 19:48:05 +00:00
Adam Lesinski
2cb6c60c0d Make UsbService optional
Tweaked the services Android.mk to build dependencies
when building with mm[m].

Change-Id: I6dad511c652bcacc085f27ede5f8f22a6982c6bd
2014-02-18 14:57:09 -08:00