Commit Graph

20206 Commits

Author SHA1 Message Date
Lucas Dupin
965c170d50 Merge "Make WallpaperColors hints public" into sc-dev 2021-03-02 01:07:05 +00:00
Lucas Dupin
83b2f37853 Make WallpaperColors hints public
Per AOSP request, developers would like to access this API, which was
currently marked as @SystemAPI.

Test: atest WallpaperColorsTest
Fixes: 142843776
Change-Id: I3970ab3ce92de78c3f1a994b6bc560518edf626c
2021-03-01 22:51:22 +00:00
Yuncheol Heo
83ad0adb52 Merge "Introduce a flag removeWithTaskOrganizer." into sc-dev 2021-03-01 21:13:45 +00:00
Felipe Leme
f2a7576696 Merge "Fixed createAndManageUser() for headless system user mode." into sc-dev 2021-03-01 16:46:04 +00:00
Hui Yu
2533037dc5 Merge "Call new API setTemporaryAppAllowlist() and specify temp-allowlist reasonCode." into sc-dev 2021-03-01 16:30:58 +00:00
Ruslan Tkhakokhov
b56fc740bb Merge "Update D2D logic in line with new opt-out rules" into sc-dev 2021-03-01 14:53:36 +00:00
Kholoud Mohamed
6c80c464e0 Merge "Added some testAPIs in ContentSuggestionsManager" into sc-dev 2021-03-01 12:06:19 +00:00
Ruslan Tkhakokhov
75ee2bf7f1 Update D2D logic in line with new opt-out rules
* Ignore android:fullBackupContent for apps targeting Android S+ while
  in D2D
* Update LocalTransport::getTransportFlags() to support
  FLAG_DEVICE_TO_DEVICE_TRANSFER (required for CTS testing)

Bug: 180523564
Test: atest FullBackupRulesHostSideTest
Change-Id: I115c1c76f4b0d8b486cc9f146ef630fda3ff2a03
2021-03-01 10:26:07 +00:00
Jeff DeCew
1c05dbcd2b Merge "Fixes Copyright date & incorrect a11y announcement" into sc-dev 2021-02-27 16:37:30 +00:00
Jeff DeCew
6cd5cb738d Merge changes I57fb542a,If2a13daf into sc-dev
* changes:
  Fix the vertical positioning of the text in collapsed notifications.
  Increase the notification height to 88dp
2021-02-27 03:08:17 +00:00
Jeff DeCew
726294ff05 Fixes Copyright date & incorrect a11y announcement
Fixes: 180118819
Test: Manual
Change-Id: I8a89ece2db075ceb33861109d1634442a670233e
2021-02-26 15:49:16 -05:00
Jeff DeCew
072848e163 Increase the notification height to 88dp
Test: manual
Bug: 181048615
Change-Id: If2a13daf2b4b583102ec0a1d1f3df8b9f17b41dd
2021-02-26 14:18:59 -05:00
Jeff DeCew
8ceb0f52d1 Merge "Hide the snooze button from various notifications." into sc-dev 2021-02-26 19:17:38 +00:00
Yuncheol Heo
28e66c2a77 Introduce a flag removeWithTaskOrganizer.
- The flag allows us to remove the tasks which are managed by
  TaskOrganizer when TO dies.

Bug: 179676966
Test: Launch a Bubble, kill SysUi and check if the Bubble remains in
  ActivityStack.
Change-Id: Ie0ccafd2b4b0393b777b69b7fb70c0ea74f95963
2021-02-26 10:46:52 -08:00
Hui Yu
a31f4f26c4 Call new API setTemporaryAppAllowlist() and specify temp-allowlist reasonCode.
Deprecate/delete setTemporaryAppWhitelistDuration(int type, long duration) which is also a new API added very recently.

Bug: 171305836
Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java
Reboot device, observe "tempAllowListReason" in logcat.

Change-Id: I29181ce224c28277db1d45ec7fd0f79e032e5c90
BYPASS_INCLUSIVE_LANGUAGE_REASON=existing public API
2021-02-26 18:32:06 +00:00
Hui Yu
edc573f0ac Merge "Specify temp-allowlist reasonCode while calling setPendingIntentAllowlistDuration()." into sc-dev 2021-02-26 18:07:47 +00:00
Felipe Leme
161704e504 Fixed createAndManageUser() for headless system user mode.
It was refactored to split the "create" and "manage" parts so the
new user dialog is shown in the proper times, but such changed
broke the API when caller was passing initialExtras or a different
PO component.

To fix this issue, DPMS passes a token when the user is created,
and ignores the callback when the token matches.

This change also improved logging (which helped diagnose this issue).

Test: atest com.android.cts.devicepolicy.DeviceOwnerTest#testCreateAndManageUser_LowStorage,testCreateAndManageUser_MaxUsers,testCreateAndManageUser_GetSecondaryUsers,testCreateAndManageUser_SwitchUser,testCreateAndManageUser_CannotStopCurrentUser,testCreateAndManageUser_StartInBackground,testCreateAndManageUser_StartInBackground_MaxRunningUsers,testCreateAndManageUser_StopUser,testCreateAndManageUser_StopEphemeralUser_DisallowRemoveUser,testCreateAndManageUser_LogoutUser,testCreateAndManageUser_Affiliated,testCreateAndManageUser_Ephemeral,testCreateAndManageUser_LeaveAllSystemApps,testCreateAndManageUser_SkipSetupWizard,testCreateAndManageUser_AddRestrictionSet,testCreateAndManageUser_RemoveRestrictionSet,testUserAddedOrRemovedBroadcasts # on automotive and phone

Bug: 180515783

Change-Id: Ia6bddecd13fcdfc9604f40391ab7b2a5e98c146b
2021-02-26 08:46:09 -08:00
Jeff DeCew
e28685630d Hide the snooze button from various notifications.
* Foreground service notifications.
* Colorized notifications (where the snooze button's color would be wrong).
* FullScreenIntent notifications, which are timely.
* HUNs, since the expanded state could have the button.

Bug: 179178086
Test: manual
Change-Id: I3fa46d6493c14ddf7e9b9e28afb7de15b1ddd89a
2021-02-26 08:29:31 -05:00
Anna Zappone
635114d0e7 Merge "Migrate from Uid to UserHandle" into sc-dev 2021-02-26 10:19:39 +00:00
Hui Yu
f5e73ef979 Specify temp-allowlist reasonCode while calling setPendingIntentAllowlistDuration().
Delete the overloaded version of setPendingIntentAllowlistDuration() without reasonCode.

Bug: 171305836
Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java
Reboot device, observe "tempAllowListReason" in logcat.

Change-Id: Ib8bd22eefb5d5f308d2bcca17221499c2a6adc79
2021-02-25 22:33:44 -08:00
Riddle Hsu
ed46310238 Merge "Optimize the Parcel read/write of common window data" into sc-dev 2021-02-26 04:07:39 +00:00
Hui Yu
3d96c757a5 Merge "Log the temp allowlist reason/duration at FGS start." into sc-dev 2021-02-26 01:21:13 +00:00
Todd Kennedy
fd7bff7f70 Merge "Revert "Revert "Keep old package manager constructor""" into sc-dev 2021-02-26 00:55:18 +00:00
Soonil Nagarkar
8a3d8f79a5 Merge "Update some Nullable annotations on PendingIntent" into sc-dev 2021-02-25 22:05:13 +00:00
Todd Kennedy
534f4d3e9a Revert "Revert "Keep old package manager constructor""
This reverts commit e756211374.

Reason for revert: Apparently this is used; b/179601086

NoNonSdkCheck: The original change erroneously removed the method from the block-list; this reinstates the method
Fixes: 179601086
Test: builds
Change-Id: I383bc0a0e2a319b24e11aa7a07a69603efff706f
2021-02-25 21:17:44 +00:00
Neil Fuller
fcfe1f1c56 Merge "Improve server flags / add more server control" into sc-dev 2021-02-25 18:24:54 +00:00
Svetoslav Ganov
3f9a7c0f52 Merge "Location provider app ops remapping" into sc-dev 2021-02-25 18:18:42 +00:00
Neil Fuller
2856d9e52f Improve server flags / add more server control
Add more server flags that can be pushed to devices to influence geo
detection service behavior.

This renames DeviceConfig as ServerFlags and introduces an intermediary,
the ServiceConfigAccessor, to hide details and handle changes to config
values that need the location_time_zone_manager to restart.

Simulating server flag changes example:
adb shell cmd device_config put \
    system_time primary_location_time_zone_provider_enabled_override false

Inspecting manager / provider states:
adb shell dump location_time_zone_manager

The following manual tests were conducted to check the plumbing:

Modifying settings behavior:
adb shell cmd device_config put \
    system_time location_time_zone_detection_setting_enabled_override true
<Confirm the settings value cannot be changed by user>

adb shell cmd device_config put \
    system_time location_time_zone_detection_setting_enabled_override false
<Confirm the settings value can be changed by user>

adb shell cmd device_config delete \
    system_time location_time_zone_detection_setting_enabled_override
<Confirm it returns to normal>

Disabling the feature / location_time_zone_manager:
adb shell cmd device_config put \
    system_time location_time_zone_detection_feature_supported false
<Confirm SettingsUI (after restart) doesn't show the geo detection option>
<Confirm manager is not started>

Enabling the feature / location_time_zone_manager:
adb shell cmd device_config put \
    system_time location_time_zone_detection_feature_supported true
<Confirm manager is restarted>

Note: "cmd device_config" doesn't allow multiple config keys to be
changed at once, and any change to service config keys cause the
location_time_zone_manager to restart. When changing multiple, set
"location_time_zone_detection_feature_supported false" to stop the
manager, and "location_time_zone_detection_feature_supported true" when
all changes are done.

Test: Manual testing (see above)
Test: treehugger
Bug: 178107773
Change-Id: I07b57add1ed47197587907b9f0a85f38acc0a76a
2021-02-25 15:24:24 +00:00
Zimuzo Ezeozue
b9f76e103c Merge "Extend AnrController to improve ANR dialog controls" into sc-dev 2021-02-25 14:17:15 +00:00
Anna Zappone
aa4aef9968 Migrate from Uid to UserHandle
Fixes WorkProfile storage issues.

Bug: 179810781
Test: PeopleSpaceTileTest, PeopleSpaceUtilsTest
Change-Id: I9baadc1308fcd5725458bf9dd6e4917e79975dab
2021-02-25 10:43:38 +00:00
Kholoud Mohamed
3006355655 Merge "Exposed some testAPIs in DPM" into sc-dev 2021-02-25 10:23:37 +00:00
Sudheer Shanka
8632838c50 Merge "Allow EJs to obtain new network capability." into sc-dev 2021-02-25 09:19:15 +00:00
Louis Chang
09f52aa440 Merge "Rename Stack to Task related terms (7/n)" into sc-dev 2021-02-25 04:58:24 +00:00
Louis Chang
7efc57797c Rename Stack to Task related terms (7/n)
- Renaming PinnedStack to PinnedTask
- Renaming DockedStack to DockedTask

Bug: 157876447
Test: presubmit
Change-Id: I51c10564647ed0d46eddc0c51a1ee06eef897e43
2021-02-25 04:57:26 +00:00
Sudheer Shanka
6831749cb4 Allow EJs to obtain new network capability.
- Introduce new oom_adj score to be used for EJs so that they won't
  be killed before normal jobs but before any FGS. Also, add a new
  bind flag to instruct the OomAdjuster about when to use this
  new oom_adj score.
- Unlike other capabilities, any app (regardless of it's proc_state)
  with network capability will be able to transfer it's capability
  to other app by binding to it.

Bug: 177641226
Test: atest ./tests/app/src/android/app/cts/ActivityManagerProcessStateTest.java
Test: atest ./tests/cts/hostside/src/com/android/cts/net/HostsideRestrictBackgroundNetworkTests.java
Test: atest ./services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java
Test: atest CtsJobSchedulerTestCases

Change-Id: I888764ff22fba92fe2cccf3d8442ed318a19ad2a
2021-02-24 17:17:55 -08:00
Rajeev Kumar
b21d30888b Merge "Add API to set device owner type for a managed device" into sc-dev 2021-02-25 00:21:51 +00:00
Soonil Nagarkar
e4bd95241a Update some Nullable annotations on PendingIntent
It's possible to statically verify that mTarget can never be null, and
that in every instance where an @NonNull annotation has been added here
it was previously impossible for null to be returned at that location.
The only exception is for getCreatorPackage(), where it is more
difficult to verify that it is impossible for this to be null.
Logically, it doesn't make any sense for a PI to not have a creator
package, and I have gone through every call flow for setting the creator
package I could fine to verify it can never be set to null.

Bug: 175221460
Test: manual sanity checks
Change-Id: Ia9e2c3c4ff8c9082190cd50129cedcbcfd219574
2021-02-24 15:42:23 -08:00
Ruslan Tkhakokhov
a2fdf3f5fb Get OperationType from transport
This CL was merged earlier (ag/13484966) and then reverted due to the
new behaviour breaking D2D transfers.

Merge it again with all changes being controlled by a flag (default
off), see UserBackupManagerService:getOperationTypeFromTransport in this
CL. View the diff between patchsets 1 and 2 to only see what's changed
between the earlier reverted code and the fixed version of it (i.e. with
the flag).

The flag can be changed via adb for now, we will set it to true by
default once other components are ready.

Bug: 174216309
Test: atest UserBackupManagerServiceTest
Change-Id: I7473c9b4f8d0c4d20155be76930279184ffb17c4
2021-02-24 23:21:21 +00:00
Ruslan Tkhakokhov
c3bf79a2cd Merge "Parse include / exclude config specified by dataExtractionRules" into sc-dev 2021-02-24 23:20:54 +00:00
Svet Ganov
4700428b6f Location provider app ops remapping
The platform has the concept of a location provider which could
be a plugin implemented by another package. The implementation
of a location provider plugin can make calls to APIs that require
a location permission, e.g. fusing data from different sources.
However, such accesses are counted in app ops as a location access
but the accessor is in this case the data source. It is also
possible that the package that provides the implementation of a
location provider also hosts other funcionality which may need to
call APIs that require a location permission.

This change allows a location provider to specify app op attribution
tags which which could be used when calling location to singal to the
OS that the access is for the location providing functionality of the
location provider. For location accesses of the provider package that
are not related to providing location to the OS the provider can use
any other non delcared as location attribution tags. Accesses with
the location attribution tags would be counted in app ops but instead
of towards the OP_COARSE_LOCATION/OP_FINE_LOCATION the would be
counted towards dedicated OP_COARSE_LOCATION_PROVIDER/
OP_FINE_LOCATION_PROVIDER ops. This would allow proper classification
while enabling auditability and tracking via the standard app op APIs.

<meta-data
    android:name="android:location_allow_listed_tags"
    android:value="foo;bar;baz"/>

Test: atest android.location.cts.fine.LocationManagerFineTest#testLocationAttributionTagBlaming

Bug:179062648

Change-Id: I36739ab42cedc94e1aa7a3bfd3b9aa213f5b3e97
2021-02-24 23:11:35 +00:00
Hui Yu
bd7619635d Log the temp allowlist reason/duration at FGS start.
There are four ways a package can be temp allowlisted:
1. Calling BroadcastOptions#setTemporaryAppWhitelistDuration() to
allowlist a BroadcastReceiver, this is a SystemApi.
2. Calling ActivityManagerService#setPendingIntentWhitelistDuration()
to allowlist a PendingIntent, this is not an API, it is an internal method.
3. Calling PowerWhitelistManager#whitelistAppTemporarily() to allowlist
a package, this is a SystemApi.
4. DeviceIdleController.addPowerSaveTempWhitelistApp(), this is an
internal method.

Also the package can be permanently allowlsited in
 ActivityManagerService#mDeviceIdleExceptIdleAllowlist.

Move the BG-FGS-launch reasonCode from ActiveService.java to
PowerWhitelistManager.java. Define a list of temp allowlist reasonCode
in addition to the BG-FGS-launch reasonCode. The reasonCode is passed
around in DeviceIdleController and ActivityManagerService, it will be
used in statsd FGS metric.

At FGS start, check all above allowlists and record the reasonCode/reason/duration in
ServiceRecord#mInfoTempAllowListReason field.

If mInfoTempAllowListReason is not null, log the reasonCode/reason/duration in "Background started FGS" log
message, with key "tempAllowListReason".

Bug: 171305836
Test: atest cts/tests/app/src/android/app/cts/ActivityManagerFgsBgStartTest.java
Reboot device, observe all "tempAllowListReason" listed above in logcat.
BYPASS_INCLUSIVE_LANGUAGE_REASON=existing APIs

Change-Id: Ieb52d95aae3258817a67734c093cb12fc78a81fd
CTS-Coverage-Bug: 181160445
2021-02-24 22:02:09 +00:00
James O'Leary
7edf52d602 Merge "Revert^2 "[framework] Integrate new quantizers"" into sc-dev 2021-02-24 21:59:47 +00:00
Ruslan Tkhakokhov
6751d29041 Parse include / exclude config specified by dataExtractionRules
1. Parse the new config and prefer it over the old config specified by
android:fullBackupContent.

2. Add a new parameter to LocalTransportParameters to allow testing this
functionality in CTS.

Bug: 180522596
Test: atest FullBackupRulesHostSideTest
Change-Id: If18edfcdb2b9637d380251f48fdbc56cca6af3ec
2021-02-24 21:49:24 +00:00
Soonil Nagarkar
2409543ce8 Merge "Proposal: Reduce the number of IPCs in PendingIntent" into sc-dev 2021-02-24 21:48:46 +00:00
James O'Leary
9d3ad10eb9 Revert^2 "[framework] Integrate new quantizers"
96169052c4

Change-Id: Idefcf279b9fedeeaa29f75e705adfb60f0ad5c8a
2021-02-24 17:09:06 +00:00
Riddle Hsu
b293d933e0 Optimize the Parcel read/write of common window data
The Parcel read/write speed of MergedConfiguration/InsetsSource
becomes 4x+ faster.

Because writeParcelable sends additional type info which is
unnecessary if the type is known on the reading side, replace
the usages to writeTypedObject and well-written readFromParcel.
That saves the time of class lookup and object creation.

Bug: 181025587
Test: vogar --mode app_process --benchmark \
frameworks/base/core/tests/benchmarks/src/android/os/ParcelableBenchmark.java

Change-Id: I29548ce6c2e5886f0e90a5dc70d8e9ecc0fb25a8
2021-02-24 23:33:16 +08:00
Jeff DeCew
a785a58034 Add API to let apps color CallStyle notifications themselves.
Fixes: 180925557
Test: visual inspection
Test: atest NotificationTemplateTest
Change-Id: I5f580083f1de192985b4764b894730789c2c2583
2021-02-24 09:07:44 -05:00
kholoud mohamed
557355e457 Exposed some testAPIs in DPM
- Exposed the following as testAPIs:
* markProfileOwnerOnOrganizationOwnedDevice with
MANAGE_PROFILE_AND_DEVICE_OWNERS permission
* forceSecurityLogs with FORCE_DEVICE_POLICY_MANAGER_LOGS permission
* forceNetworkLogs with FORCE_DEVICE_POLICY_MANAGER_LOGS permission
* setDeviceOwner
* setActiveAdmin
* forceRemoveActiveAdmin with MANAGE_PROFILE_AND_DEVICE_OWNERS permission
* clearSystemUpdatePolicyFreezePeriodRecord with CLEAR_FREEZE_PERIOD
permission

- Changed getDeviceOwnerComponentOnAnyUser to accept
MANAGE_PROFILE_AND_DEVICE_OWNERS permission

Bug: 180500227
Test: verified that cts tests can call the APIs
Change-Id: I824980d1f408f1e0bf536c9526f1666dead31d82
2021-02-24 12:31:07 +00:00
Zim
465e3b7115 Extend AnrController to improve ANR dialog controls
I5431d22bd8faa75e3deab1960a2f721784f98d42 introduced a basic ANR
controller interface to allow services within the system_server
register to delay the ANR dialog during an ANR.

Some limitations of that interface were:
1. No way to cancel the ANR dialog if the normal function of the app
resumed during the delay
2. The AnrController#getAnrDelay method was serving a dual purpose of
returning the delay and showing an interim UI
3. The interim UI might live within an updatable mainline
module, hence forcing the system_server to block (asynchronously) on
the 'getter' for the binder call.

This cl addresses the problems above with the following new
methods on AnrController: onAnrDelayStarted and onAnrDelayCompleted.

These methods provide a clearer interface for the following reasons:
1. onAnrDelayCompleted will return a boolean value to indicate whether
the ANR dialog should still be shown after the delay
2. onAnrDelayStarted is a more explicit API that can be called
asynchronously without blocking to notify external components to show
an interim UI
3. The existing getAnrDelay can be handled completely within the
system_server without blocking on an external binder call

See design (2a) in go/transcoding-anrs for more details

Test: Manual
Bug: 170486601
Change-Id: Idb9190a0e6014ce64bf1412c26f6ae03f97e922d
2021-02-24 09:34:03 +00:00
Junyu Lai
1d57fc25ae Merge "Revert "Add API to let apps color CallStyle notifications themse..."" into sc-dev 2021-02-24 08:04:34 +00:00