Currently, the number of MIDI devices is determined using an ALSA ioctl.
This method is flaky on devices that don't simply have one input port
and one output port. This change allows us to query the number of MIDI
devices through USB instead of through an ALSA ioctl. USB MIDI should
now function correctly even with varying number of ports.
Bug: 28269065
Test: MIDI apps work for Alesis Recital and on M-Audio KeyStudio.
Android device also works as a peripheral to another Android device.
Change-Id: Id19748fbe1c8aa4913cf4925e0fec9316617409e
Change notification in accordance with additional tethering support on NCM
Bug: 196240561
Test: Manual test: Switch USB tethering to and from MTP / Charge Only
Change-Id: I7a5e1d7066774d60c3ba7f453554dc3a25b0af69
Note that this will not prevent currently running apps from accessing
usb devies to which a connection has already been established.
Removed isCameraDevicePresent() as this has been implemented as well in
UsbDevice#getHasVideoCapture().
Bug: 189915399
Test: Install nExt Camera - USB app, verify that camera is not accessible when camera privacy toggle is disabled.
Change-Id: Ie60adfe9fc667d883ad4a6b8d7582a4bc17d1549
Merged-In: Ie60adfe9fc667d883ad4a6b8d7582a4bc17d1549
(cherry picked from commit f063780d43)
(cherry picked from commit 79023f08d3)
Note that this will not prevent currently running apps from accessing
usb devies to which a connection has already been established.
Removed isCameraDevicePresent() as this has been implemented as well in
UsbDevice#getHasVideoCapture().
Bug: 189915399
Test: Install nExt Camera - USB app, verify that camera is not accessible when camera privacy toggle is disabled.
Change-Id: Ie60adfe9fc667d883ad4a6b8d7582a4bc17d1549
Merged-In: Ie60adfe9fc667d883ad4a6b8d7582a4bc17d1549
(cherry picked from commit f063780d43)
Record all USB Uevent and broadcast intent history in dumpsys.
This will not be covered by other system log and kernel log.
Test: Android Auto team checked
Bug: 186495455
Signed-off-by: Ricky Niu <rickyniu@google.com>
Change-Id: I914969bd67c40f5f56218154521dd48681b6b1dd
Note that this will not prevent currently running apps from accessing
usb devies to which a connection has already been established.
Removed isCameraDevicePresent() as this has been implemented as well in
UsbDevice#getHasVideoCapture().
Bug: 189915399
Test: Install nExt Camera - USB app, verify that camera is not accessible when camera privacy toggle is disabled.
Change-Id: Ie60adfe9fc667d883ad4a6b8d7582a4bc17d1549
USB API could be used before USB HAL version is updated.
Update USB HAL version early and log it.
Bug: 180711938
Test: USB HAL version updated normally
Signed-off-by: Jimmy Hu <hhhuuu@google.com>
Change-Id: If63c848e9643e9144662f031c981fad16d0a0fd6
Background
* On an org-owned device with a managed profile,
the admin can apply some user restrictions on the
personal profile (incl DISALLOW_USB_FILE_TRANSFER)
* When the admin applied DISALLOW_USB_FILE_TRANSFER,
the device should stop the existing 'File transfer'
mode USB connnection.
Change
* The broadcast recevier in UsbService should pick
up receive broadcast intents for all users.
Manual testing
* Set up device in COPE mode
* Turn on USB 'File transfer' via Settings
* Open internal storage on computer connected via USB
and browse some files on the device
* Apply DISALLOW_USB_FILE_TRANSFER
* Verify device no longer shows up in internal storage
Bug: 175757373
Test: manual testing
atest UsbBackendTest
Change-Id: I8d47e728a26ba99dc3b5223d0d7d29085484f8f0
Currently, UsbDeviceManager will send usb functions in
GadgetFunction to Hal implementation without any check.
It is possible to send the functions defined in newer Hal
to older Hal implementation.
This patch will add a check to avoid this symptom before
sending the usb function.
Bug: 182507868
Test: verified pass
Change-Id: I621809b8c7236937ab4c76e3fa943d00f761922f
The variable only used once
Bug: 183184249
Test: Build pass and boot to home
Signed-off-by: Ricky Niu <rickyniu@google.com>
Change-Id: Icfc73a7f248ace6398d27966a7b2b6b279b92bb0
- Add the missing annotation for the permission in UsbService
- Enforce the permission in UsbManager
Test: atest CtsUsbManagerTestCases
Bug: 179389205
Change-Id: I9cb3a0f24367f0b28417588e03db882db159f7a7
Add usb contaminent status to service/enums.proto. It was previously in
usb.proto, but is an enum. Enums.proto is a better fit because other
enums in usb.proto are located in enums.proto, and the enum is also used
by atoms.proto.
Additionally, move the enums.proto file to proto_logging, since all
atoms.proto dependencies should be in proto_logging.
Test: m
Bug: 182392879
Change-Id: I9ea0a1482336694c446e950ea5cb46b95372b76d
Merged-In: I9ea0a1482336694c446e950ea5cb46b95372b76d
Add usb contaminent status to service/enums.proto. It was previously in
usb.proto, but is an enum. Enums.proto is a better fit because other
enums in usb.proto are located in enums.proto, and the enum is also used
by atoms.proto.
Additionally, move the enums.proto file to proto_logging, since all
atoms.proto dependencies should be in proto_logging.
Test: m
Bug: 182392879
Change-Id: I9ea0a1482336694c446e950ea5cb46b95372b76d
USB V1.3 HAL include:
1. Add api to enable/disable USB data signaling
2. Add api to inquiry HAL version
Bug: 161414036
Test: build pass and functions are working normally
Signed-off-by: Albert Wang <albertccwang@google.com>
Change-Id: Idb946de553b63f1d9da565133306117a6a4a7dd8
Merged-In: Idb946de553b63f1d9da565133306117a6a4a7dd8
(cherry picked from commit bd9dfea480)
During composition switch, some host PCs are taking more
time in processing the disconnect of previous functions and
enumerating the new functions. This causes the delay in
receiving the CONNECTED uevent which triggers the fallback
to default composition. Prevent this by increasing the
debounce time from 1s to 3s (which is the average time
taken by these PCs to enumerate the new functions) for
device mode state update, while keeping the debounce time
for host mode as is at 1s.
Bug: 176779207
Test: Verified enumeration of device with the delay
Change-Id: I7ff58a1a9755939ccb26dad61969902ec91f2225
Related changes are introducing new TypedXmlSerializer and
TypedXmlPullParser interfaces which offer efficient access to
primitive attributes.
This change is a purely mechanical refactoring to prepare for
upcoming data format shifts, and has no behavior changes.
Bug: 171832118
Test: manual
Exempt-From-Owner-Approval: trivial no-op refactoring
Change-Id: Ib8045ddba489c254641d6331b64355709c3f6dd7
USB Gadget V1.2 HAL include:
1. support NCM function
2. add api to inquiry USB speed
3. add api to inquiry HAL version
Bug: 168282708
Test: build pass and functions are working normally
Change-Id: Idd07c55f4610740c0cf9023391125a86ba39ddee
Some careful spot-checking has revealed common cases where it's
reasonable to blanket apply the new FLAG_IMMUTABLE option to newly
created PendingIntents. Specifically these situations:
-- Simple notification content clicks are immutable; there's no need
to communicate customized data back to the creator
-- Simple notification action clicks are immutable; there's no need
to communicate customized data back to the creator
-- Broadcast intents sent by AlarmManager are immutable; the system
dispatches them without customization.
Bug: 170165227, 170424283, 170425388, 170425877
Bug: 169791183, 170771965, 170226088, 170224928, 170767530
Test: none
Change-Id: I5ed68710d2ccad4635a30fd91136a9e6ad76a01d
This is a third CL in a chain that adjusts existing malformed code
to follow AndroidFrameworkBinderIdentity best-practices.
Specifically, if a thread clears an identity they need to restore it
to avoid obscure security vulnerabilities. In addition, the relevant
"try" block must start immediately after the identity is cleared to
ensure that its restored if/when any exceptions are thrown.
Bug: 155703208
Test: make
Exempt-From-Owner-Approval: trivial refactoring
Change-Id: I74cb958b68d55a647547aae21baff6ddc364859b
The recently added AndroidFrameworkBinderIdentity Error Prone checker
examines code to ensure that any cleared identities are restored to
avoid obscure security vulnerabilities.
This change is a purely mechanical refactoring that adds the "final"
keyword to the cleared identity to ensure that it's not accidentally
modified before eventually being cleared. Here's the exact command
used to generate this CL:
$ find . -name "*.java" -exec sed -Ei \
's/ (long \w+ = .+?clearCallingIdentity)/ final \1/' \
{} \;
Bug: 155703208
Test: make
Exempt-From-Owner-Approval: trivial refactoring
Change-Id: I832c9d70c3dfcd8d669cf71939d97837becc973a