297 Commits

Author SHA1 Message Date
Glenn Kasten
3fcf85cd91 Comment out unused methods
Test: compiles OK
Change-Id: I6f5513e7c5655e91e4cc3dd8de8ec407b9f7b94e
2017-03-06 17:42:21 -08:00
Glenn Kasten
ff6615f653 USB audio: Use 'final' where possible
Test: compiles OK
Change-Id: I14677ef55b14ae0cc60b6145350e70c475cc987e
2017-03-06 17:41:47 -08:00
Glenn Kasten
7f8cf37da3 Fix typo in log
Change-Id: I5e805f4e4f296e7a9e8d12bf8372515f59099f17
2017-03-06 16:52:20 -08:00
Daichi Hirono
a455dd9f09 Skip the MTP notification when the system has the default app.
Before N, when MTP device is connected to Android, it opened the
activity selector for applications that could handle the MTP device.
For N, we updated the behavior to make it consistent with other storage
devices like USB mass storage. In N, the system showed the notification
first, then showed the activity selector after a user taps the
notification.

The N behavior causes a problem that the user always needs to tap the
MTP notification even after the user select a default application for
the MTP device.

The CLs tweaks the behavior for O so that the system can skip the MTP
notification if the system has the default app for the connected MTP
device.

The default app is one of them:

 * App selected by a user by clicking "Always use" in the activity
   selector
 * System app that is an only application which can handle the MTP
   device in the system
 * App that is an only application which can handle the MTP device in
   the system where config_disableUsbPermissionDialogs=true.

Bug: 32119378
Test: Connecting MTP device to Android, which automatically opens system
      app. Connecting PTP device to Android, which shows a notification.
      Tapping the notifiction opens the acitivity selector.
Change-Id: I51f1d55e8c7d1db87d91ddf966631d275a171546
2017-03-03 09:24:34 +09:00
TreeHugger Robot
7bf141233b Merge "IServiceManager/ITokenManager uses "default" service name" 2017-03-01 23:06:02 +00:00
Geoffrey Pitsch
af759c52ce Channels for Frameworks notifications
Adapts all notifications used by system services to use channels.
Channels are initialized by SystemServer after the NotificationService
has started.

Test: runtest systemui-notification
Change-Id: I25c45293b786adb57787aeab4c2613c9d7c89dab
2017-03-01 10:17:15 -05:00
Tomasz Wasilczyk
4d3453637c Fix few typos.
Test: manual (watching logs)
Bug: b/35805636
Change-Id: I066e8f94e73232eb59bef86fff4a4eef5d84fbb4
2017-02-28 08:27:52 -08:00
Yifan Hong
9ecbc04c23 IServiceManager/ITokenManager uses "default" service name
The getService() and registerAsService() methods of interface objects
now have default parameters of "default" for the service name. HALs
will not have to use any service name unless they want to register
more than one service.

Test: boots
Test: hidl_test

Bug: 33844934
Change-Id: I5774469712d70de4b2629258fe54d7f8c280d9d0
2017-02-24 17:12:53 -08:00
TreeHugger Robot
1693d77456 Merge "Consider priority when launching a USB app" 2017-02-16 21:41:00 +00:00
Badhri Jagan Sridharan
c584d77b93 Introduce debounce to filter rapidly toggling type-c ports
Type-c ports can quickly toggle between connected/disconnected
states. Introduce debounce to prevent sending spurious notifications.

Bug: 34972898
Test: notification should not be queued for a pixel-c charger not connected
to the power outlet.
Change-Id: I4aa19f9f864fe5b77e65f6a07a3184d8aba1f5fc
2017-02-15 10:21:19 -08:00
Badhri Jagan Sridharan
1b8e847a87 Fix handling usb dialog for wall chargers.
UsbPort.POWER_ROLE_SINK is orthogonal to the type of the charger
attached. POWER_ROLE_SINK would be the case for AC charging and
USB charging. Therefore query BatteryManager for the charger
type.

Bug: 34972898
Test: Charging notification should not show for pixel-c chargers.
Change-Id: I8dddcd7727b6af973bd173d2c6e325aa4be2ca3a
2017-02-15 10:21:02 -08:00
Hidenari Koshimae
87d66fd3f1 Minor formatting cleanup to remove overlong line
Change-Id: If0afb279552bc664ba579badaf35662effbd2a80
2017-02-15 11:41:34 +09:00
Badhri Jagan Sridharan
fa207eb889 Merge changes from topic 'pixel-c' into nyc-mr2-dev
am: dee514fae3

Change-Id: I4038d1fbd429fcedc4a379d764b5ef5c59dcce1d
2017-02-14 03:40:33 +00:00
Badhri Jagan Sridharan
e8b0e11371 Introduce debounce to filter rapidly toggling type-c ports [DO NOT MERGE]
Type-c ports can quickly toggle between connected/disconnected
states. Introduce debounce to prevent sending spurious notifications.

Bug: 34972898
Test: notification should not be queued for a pixel-c charger not connected
to the power outlet.
Change-Id: I4aa19f9f864fe5b77e65f6a07a3184d8aba1f5fc
2017-02-13 17:44:11 -08:00
Badhri Jagan Sridharan
8b0807c789 Fix handling usb dialog for wall chargers. [DO NOT MERGE]
UsbPort.POWER_ROLE_SINK is orthogonal to the type of the charger
attached. POWER_ROLE_SINK would be the case for AC charging and
USB charging. Therefore query BatteryManager for the charger
type.

Bug: 34972898
Test: Charging notification should not show for pixel-c chargers.
Change-Id: I8dddcd7727b6af973bd173d2c6e325aa4be2ca3a
2017-02-13 17:44:05 -08:00
TreeHugger Robot
45c87d943d Merge "Enabling USB Debugging Connected notification on Android TV" 2017-02-02 21:57:28 +00:00
Dmitri Plotnikov
d7ee7d4b34 Enabling USB Debugging Connected notification on Android TV
Bug: 34859109
Test: verified that the notification showed up in LeanbackLauncher
Change-Id: I2d5798e994df74b7d3211ccf7f22a6aff44bd681
2017-02-02 10:24:27 -08:00
Badhri Jagan Sridharan
26b6130282 Check and send usb state broadcast when devices boots am: af6d473ab0 am: 061bceafee am: df1df40f91
am: 307a387f38

Change-Id: Icf4b4e4f48fea450b71bd7ccd88db7d089ea286e
2017-01-31 01:14:33 +00:00
Jerry Zhang
ed642e81b4 Only send usb disconnect intents after boot. am: c1bc0a844d am: dc9c094deb am: 9877c70d9d
am: 1064ee66d5

Change-Id: If501641b5a7cbb4264f40f3bcf2add35e0851f78
2017-01-31 01:13:20 +00:00
Badhri Jagan Sridharan
af6d473ab0 Check and send usb state broadcast when devices boots
Broadcasts are not sent until BOOT_COMPLETED is received.
When the device boots with usb plugged, the UPDATE_STATE
for connted and configured would be received way before
BOOT_COMPLETED is received. Since, devices can continue
to stay in same usb configuration(set through persistent
property trigger), check and send a usb state broadcast
if needed.

BUG: 34451258
Test: Manually checked to verify the broadcasts sent.
Change-Id: I8eca5f241ad758f5c4f1afa6c9807868dfd6195a
2017-01-31 00:41:49 +00:00
Jerry Zhang
c1bc0a844d Only send usb disconnect intents after boot.
This prevents cases where the device starts up and attempts
to change the config, but intents cannot yet be sent.

A patch to resend this skipped intent is necessary to
finish fixing the bug.

Bug: 34451258
Test: Check that usb state is properly handled on boot
Change-Id: I9d79c67ce8982fd5b43fa40781b66bb9ae820694
2017-01-30 14:34:57 -08:00
Badhri Jagan Sridharan
d979398983 Merge "Refactor UsbPortManager to use the binderised USB HAL" 2017-01-24 23:46:25 +00:00
Jerry Zhang
4882496232 Refactored setCurrentFunction and setUsbDataUnlocked into single method.
This gets rid of an extraneous configuration change when going from
adb to adb + file transfer as previously the config would have been
reset once for functions and once for data unlocked.

It also simplifies some of the code.

Bug: 31814300
Test: manually changing usb configurations
Change-Id: Ica10a195338b2189db13113f44657393db110bee
(cherry picked from commit 7a396be6d5ba8914933a54b5bfac25e118db0e9f)
2017-01-24 13:26:51 -08:00
Badhri Jagan Sridharan
823287d28e Refactor UsbPortManager to use the binderised USB HAL
Move to a USB HAL to handle type-c ports as upstream is
considering in merging a generic type-c interface to mainline
kernel. However, the new sysfs interface can see minor changes
in the future as the sysfs interface is sitll going to land
in testing and it is still under review.

Bug: 31015010
Test: Manually tested on Angler and sailfish for type-c role switches.
Change-Id: I26771074c4b4f79a133e519bc6d35a4864a696d8
2017-01-23 17:13:15 -08:00
Christopher Tate
4ca071da28 Send USB_STATE broadcast to manifest receivers
Bug 34594920

Change-Id: I5d026f469710960b792dcf1bfebc1c07f90c6182
2017-01-23 14:35:28 -08:00
Christopher Tate
42a386b771 Enable background restrictions
Apps that target O+ are always subject to background restrictions.
Legacy apps' background restriction is subject to the OP_RUN_IN_BACKGROUND
app op.

Apps with these properties are exempted from background restrictions:
  - persistent process
  - currently on the idle battery whitelist
  - global whitelist for things like bluetooth services

Bug 30953212

Change-Id: Icc19b2fbc05f40dcf8c3fc4abf718c373dc8d4f6
2017-01-19 16:23:02 -08:00
Chris Tate
9e83cbbc10 Revert "Enable background restrictions"
This reverts commit 21f778060badb1e78bffde05e8de7662d275003d.

Change-Id: I65586f9739da84fb32b51b0ea166b8288c41d1b3
2017-01-19 01:12:19 +00:00
Christopher Tate
21f778060b Enable background restrictions
Apps that target O+ are always subject to background restrictions.
Legacy apps' background restriction is subject to the OP_RUN_IN_BACKGROUND
app op.

Apps with these properties are exempted from background restrictions:
  - persistent process
  - currently on the idle battery whitelist
  - global whitelist for things like bluetooth services

Bug 30953212

Change-Id: Ib444829a2d222125f64ff19e8218823fa78373f9
2017-01-18 11:30:41 -08:00
Jerry Zhang
bfc5d563aa Clean up persistent usb state on boot.
b/31814300 was fixed, but mtp can still stick around in the
persistent config even after flashing. This block of code
will only run once, but will ensure that mtp is not in
the config after the update.

Bug: 31814300
Test: Manual
Change-Id: Icf02be38c9e1f769412ac963ed6afc14e6092bfb
(cherry-picked from commit a45dac0e83f4f907b6b42f453181a7d5c01f65f3)
2017-01-12 15:32:20 -08:00
Jerry Zhang
541295a9a5 Fixed handling of usb state during adb changes.
When changing state to adb from mtp (charging), we want to disable
the old mtp function. Similarly when change to away from adb to
charging, enable the mtp function.

Also the mtp function should never be persisted.

Bug: 31818377
Bug: 31814300
Test: Manually verify that the correct usb configuration is displayed.
Test: Manually verify that logcat is not kicked during boot.
Change-Id: Idcb7f53be39ea38712d5de45b323d8daeb552129
(cherry-picked from commit 58018d01a3c384b954275d15bee7f9c52a1c7c0a)
2017-01-12 15:32:20 -08:00
David Stevens
1e87ae5c8e Merge "Exit accessory mode more aggressively" 2016-12-14 22:29:39 +00:00
David Stevens
4f9e88a4af Exit accessory mode more aggressively
The debouncing of USB disconnects means that the disconnect caused
by resetting the connection without unplugging the device does not make
it to the handler, and thus doesn't exit accessory mode. Therefore we
must exit accessory mode even for connect events after we have left the
entering accessory mode state.

Test: Manual testing with desktop head unit
Change-Id: Ia028ff28783fa777a9f8bcd86b523d01f633a140
2016-12-13 20:44:32 -08:00
Jerry Zhang
d9291d55f6 Merge "Modify UsbDeviceManager stack to allow MtpServer to use FunctionFS drivers." am: 1975240f17 am: 830874dbe7 am: 88672d7d29
am: 11dc0eccfb

Change-Id: Ibafebe4877052595cb34626bde9ac6fba1983fb0
2016-12-13 01:02:55 +00:00
Jerry Zhang
bb598ee16f Modify UsbDeviceManager stack to allow MtpServer to use FunctionFS drivers.
Functionfs requires MtpServer to write descriptors before the device can be
configured. This adds a new configure call that will occur only when
functions are changed (new argument added to updateUsbStateBroadcast for this)
and be called after sys.usb.config is changed but before the waitForState
call to ensure compatibility with configfs devices.

Bug: 30976142
Change-Id: I7e94a5847d3b19c0fd75139e1b15a3f2a1cea01d
Test: Manual
2016-12-12 11:05:32 -08:00
David Stevens
049c718684 Exit accessory mode after debounce timeout when necessary
Change-Id: I1e7c1f4f31a310ff0369690a25859b33aaed14fc
Fixes: 29377436
Test: manual testing with 2011 ADK and multiple Android Auto headunits
2016-11-29 12:10:30 -08:00
Philip P. Moltmann
733d322cf5 Consider priority when launching a USB app
If there are differnet priorities only consider the acitities with the
highest priorities. Esp, if there is only one app with the highest
priority launch it directly.

This enables an interesting use case:
If a priviledged app wants to always be launched for a device it can
just set the priority to >0. As it is also on system/ the user
_will_not_ get a confirmation dialog and the app will always be directly
launched.

Test: Added app with higher priority to device and saw it to get
auto-selected.
Fixes: 28595282

Change-Id: Ia2c9afa00b5a6e8a00b30a01442da62dd0e33961
2016-11-29 10:33:33 -08:00
Jerry Zhang
bb2965d239 Merge commit '6bb98d85a0a0790ed2b600f4a165ab79ad536f04' into manual_merge_6bb98d8
Change-Id: I43ad588644c03a2174146525ad62b3d512d66074
2016-11-16 17:37:54 -08:00
Jerry Zhang
5cbd151d40 Refactored setCurrentFunction and setUsbDataUnlocked into single method.
am: 935372bfd6

Change-Id: I5436278e092f691c9179f7cc3709c4578b544e74
2016-11-17 00:12:50 +00:00
Jerry Zhang
b15490ac4d Clean up persistent usb state on boot.
am: dfacad026d

Change-Id: I762306bc76e304c6491c8af18e82bf2e0c4b433e
2016-11-17 00:11:15 +00:00
Jerry Zhang
4389cb6c9a Fixed handling of usb state during adb changes.
am: 0269ebe0fe

Change-Id: I2fc3674c4d5cc63febe2ebf47576f3cf1bcd1da2
2016-11-17 00:10:25 +00:00
Jerry Zhang
935372bfd6 Refactored setCurrentFunction and setUsbDataUnlocked into single method.
This gets rid of an extraneous configuration change when going from
adb to adb + file transfer as previously the config would have been
reset once for functions and once for data unlocked.

It also simplifies some of the code.

Test: manually changing usb configurations
Change-Id: Ica10a195338b2189db13113f44657393db110bee
(cherry picked from commit 7a396be6d5ba8914933a54b5bfac25e118db0e9f)
2016-11-15 15:29:45 -08:00
Jerry Zhang
dfacad026d Clean up persistent usb state on boot.
b/31814300 was fixed, but mtp can still stick around in the
persistent config even after flashing. This block of code
will only run once, but will ensure that mtp is not in
the config after the update.

Bug: 31814300
Test: Manual
Change-Id: Icf02be38c9e1f769412ac963ed6afc14e6092bfb
(cherry-picked from commit a45dac0e83f4f907b6b42f453181a7d5c01f65f3)
2016-11-15 15:29:36 -08:00
Jerry Zhang
0269ebe0fe Fixed handling of usb state during adb changes.
When changing state to adb from mtp (charging), we want to disable
the old mtp function. Similarly when change to away from adb to
charging, enable the mtp function.

Also the mtp function should never be persisted.

Bug: 31818377
Bug: 31814300
Test: Manually verify that the correct usb configuration is displayed.
Test: Manually verify that logcat is not kicked during boot.
Change-Id: Idcb7f53be39ea38712d5de45b323d8daeb552129
(cherry-picked from commit 58018d01a3c384b954275d15bee7f9c52a1c7c0a)
2016-11-15 15:29:22 -08:00
TreeHugger Robot
9717839a1f Merge "Revert "Exit enteringAccessoryMode when entered."" 2016-11-02 00:29:27 +00:00
Philip P. Moltmann
7d6e325b6c Revert "Exit enteringAccessoryMode when entered."
This reverts commit a025c8985887e3a6dd87ffcd74a7097b4cef327d.

Change-Id: I550583606444a2d79ec911adf5b14b8783b03286
2016-11-01 22:36:12 +00:00
Jerry Zhang
2d2346e094 Revert: Remove the kick from config switches in UsbDeviceManager
Test: Manual
Bug: 32197840
Change-Id: Id2e939a57e170fbb4c06e55dc79c5d35ce95486f
2016-10-17 17:41:36 -07:00
Jerry Zhang
a45dac0e83 Clean up persistent usb state on boot.
b/31814300 was fixed, but mtp can still stick around in the
persistent config even after flashing. This block of code
will only run once, but will ensure that mtp is not in
the config after the update.

Bug: 31814300
Test: Manual
Change-Id: Icf02be38c9e1f769412ac963ed6afc14e6092bfb
2016-10-17 17:41:36 -07:00
Philip P. Moltmann
f2d83edc26 Clarify which props of USB devices are optional
Test: Compiles, manually inspected object creation code, ran USB CTS
verifier tests
Fixes: 32209658
Change-Id: I738c0cea5a0f37484e986f0a01c8ed9c46b639ed
2016-10-17 12:14:45 -07:00
Jerry Zhang
069c348945 Automatically turn on adb for userdebug and eng builds.
Test: flash on a userdebug build, verify adb is on.
Change-Id: If9a46ca2291c034839ec1d297d20e4e6e3fefd77
2016-10-13 17:32:21 -07:00
Jerry Zhang
58018d01a3 Fixed handling of usb state during adb changes.
When changing state to adb from mtp (charging), we want to disable
the old mtp function. Similarly when change to away from adb to
charging, enable the mtp function.

Also the mtp function should never be persisted.

Bug: 31818377
Bug: 31814300
Test: Manually verify that the correct usb configuration is displayed.
Test: Manually verify that logcat is not kicked during boot.
Change-Id: Idcb7f53be39ea38712d5de45b323d8daeb552129
2016-10-13 17:32:21 -07:00