Commit Graph

18019 Commits

Author SHA1 Message Date
Jonathan Scott
62de92b4ea [rvc] RESTRICT AUTOMERGE Add finalizeWorkProfileProvisioning. am: bde28d286e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17591530

Change-Id: If074f02ab9e82a4b3d97725f70f3799037e581a9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-06 20:34:54 +00:00
Jonathan Scott
bde28d286e [rvc] RESTRICT AUTOMERGE Add finalizeWorkProfileProvisioning.
Test: atest android.devicepolicy.cts.DevicePolicyManagerTest
Bug: 210469972
Change-Id: I2de99f9ccd8b27ffdc2562fa451f132e73d54317
2022-04-05 18:47:56 +00:00
Wu Ahan
64479d2daf Revert "DO NOT MERGE: Decode the input of both setStream and setResource calls first" am: cc4fe8984a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16631185

Change-Id: I16089ff8866b99e105fdb86cd8557854cb428888
2022-01-19 22:14:23 +00:00
Wu Ahan
cc4fe8984a Revert "DO NOT MERGE: Decode the input of both setStream and setResource calls first"
This reverts commit fa9c73975e.

Reason for revert: will deliver a better fix for that, ag/16580245.

Change-Id: I567f20b4f545bed906938731c27eac6eb7aeddff
2022-01-13 14:43:00 +00:00
Wu Ahan
3b44a185d6 DO NOT MERGE: Decode the input of both setStream and setResource calls first am: fa9c73975e
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16379914

Change-Id: Ie69bb33c922f79bf535608a8d0f28086d1043438
2021-12-09 01:42:51 +00:00
Wu Ahan
fa9c73975e DO NOT MERGE: Decode the input of both setStream and setResource calls first
The size of the input of both setStream and setResource may very big
that system server got oom while handling it, so we try to decode it
first before copying it to the wallpaper path, if the decoding fails, we
treat the input as an invalid input.

Bug: 204087139
Test: Manually set wallpaper, no PDoS observed.
Change-Id: I014cf461954992782b3dfa0dde67c98a572cc770
2021-12-06 03:13:06 +00:00
Varun Shah
a7174fa6db Merge "Update deletion conditions for a package's UsageStats." into rvc-dev am: 06c5973697
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16222704

Bug: 206039322
Change-Id: I8f02f4bce0661eaea6ae1e72c05f6fcafdc49884
Merged-In: I94a8e3dfca8ef4c7616f77944d61726e06043b85
2021-11-13 00:03:58 +00:00
Varun Shah
d95ce6779d Update deletion conditions for a package's UsageStats.
If a profile owner is defined for a specific user, do not delete usage
stats for a package on package deletion.

Bug: 197399948
Test: atest  UsageStatsTest [all]
Change-Id: I94a8e3dfca8ef4c7616f77944d61726e06043b85
Merged-In: I94a8e3dfca8ef4c7616f77944d61726e06043b85
2021-11-11 10:13:47 -08:00
Bernardo Rufino
ccdf929a26 Merge "Fix background bypass via notifications" into qt-dev am: 22500563c1 am: 57af3050d2 am: f7c195b4e9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14937196

Change-Id: I0811d754d2b7a796e22baeb62d047c732f8d9826
2021-06-30 16:06:07 +00:00
Bernardo Rufino
f7c195b4e9 Merge "Fix background bypass via notifications" into qt-dev am: 22500563c1 am: 57af3050d2
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14937196

Change-Id: I0bf46422d4f7d2621a33776a4c98375d566af117
2021-06-30 15:41:55 +00:00
Bernardo Rufino
57af3050d2 Merge "Fix background bypass via notifications" into qt-dev am: 22500563c1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14937196

Change-Id: I193bfe3aa08c2f397d037c2d5c71cfe854cd343d
2021-06-30 15:30:23 +00:00
Bernardo Rufino
14c1c7b4a7 Fix background bypass via notifications
This is a CP of ag/14736230 to qt-dev.

Apps were able to bypass BAL and BG-FGS restrictions by retrieving their
own notifications and firing their PI since those were allowlisted for
those operations.

Now we strip the token that granted them that ability
from notifications returned via NM.getActiveNotifications(), which
returns the notifications of the caller.

Notifications returned via notification listener APIs still contain such
token, as they should.

Bug: 185388103
Bug: 169821287
Test: Manually tested
Change-Id: I2ede0d639a560f6acacec3864a0a7d23af152ba5
Merged-In: I2ede0d639a560f6acacec3864a0a7d23af152ba5
(cherry picked from commit 5fbeff59df)
2021-06-24 18:15:04 +00:00
Aemon Cannon
d2317d0fac Merge "Add instrumented app to JAR path (isolated splits)" into qt-qpr1-dev 2021-04-28 22:38:41 +00:00
Christopher Tate
3c507386ca DO NOT MERGE - Disallow deletion of channels with FGS notifications am: 88380a00d5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13728411

Change-Id: I5c649a005fb5ad7bd904b64d03488a6be6ff30f7
2021-04-27 21:22:35 +00:00
Jason O'Brien
472e9444ac Add instrumented app to JAR path (isolated splits)
The base APK is loaded during normal execution even when isolated splits
are requested. This preserves that behavior during instrumented tests,
which previously skipped the base APK (causing class loading errors).

Test: tested on device with a trivial automated instrumented test
Bug: 146183755
Change-Id: Ia54072ee91b7c06cb4a787a8954ad2e69b322cac
(cherry picked from commit 6f2978c9fc)
2021-04-19 22:04:25 +00:00
Chris Tate
ced44641d9 Merge "DO NOT MERGE - Disallow deletion of channels with FGS notifications" into rvc-qpr-dev 2021-04-06 16:22:21 +00:00
Louis Chang
b6d433cdbd Merge "Dump warning logs to prevent app crash while no top-resumed changes" into rvc-qpr-dev 2021-03-31 06:15:30 +00:00
Hui Yu
4221ca489c Merge "Allow FGS started from MediaButtonReceiver to have while-in-use permissions." into rvc-qpr-dev 2021-03-24 17:41:39 +00:00
Hui Yu
ebfad50cc1 Allow FGS started from MediaButtonReceiver to have while-in-use
permissions.

1. Create FgsWhileInUseTempAllowList, the uid on this list is allowed to
have while-in-use permission when the FGS is started from background for
a duration of time.
2. When media button is pressed, the targetUid is added to
FgsWhileInUseTempAllowList for the duration of 10 seconds, this way the
targetUid can start FGS from background and have while-in-use permission.
3. When checking for ProcessRecord.
mAllowBackgroundActivityStartsTokens, it is the caller app's
ProcessRecord should be checked instead of the service's ProcessRecord.

Bug: 182481312
Test: use b/167998084 reproduce steps, use Line app to make a voip call, the
 receiver side screen is unlocked, the receiver side uses bluetooth
headset button to pick up the call, "dumpsys activity -a" shows the FGS
"com.linecorp.voip.core.common.notification.VoipNotificationCommand" has
"allowWhileInUsePermissionInFgs=true" and "isForeground=true".

Change-Id: Ic80aefe4202fe2210881bb8eea24b6e34cb1e7d0
Merged-In: I32a14d675550cd262976bb8e16a48a070387d318
2021-03-23 23:19:19 -07:00
Christopher Tate
88380a00d5 DO NOT MERGE - Disallow deletion of channels with FGS notifications
Bug: 156090809
Test: atest CtsAppTestCases:NotificationManagerTest
Test: atest CtsAppTestCases:android.app.cts.ServiceTest
Change-Id: I1c2bb78d86f194585d273661cecf3419f51965df
Merged-In: I1c2bb78d86f194585d273661cecf3419f51965df
2021-03-19 04:24:45 +00:00
Louis Chang
ed9f50dd58 Dump warning logs to prevent app crash while no top-resumed changes
Applications crashed due to duplicated top resumed activity change
events. Currently, the only possible scenario we know if that the
application invokes Looper#loop() and reverse the messages order.

Write warning logs vs. throwing exceptions to prevent application
crashes.

Bug: 140571893
Test: build and boot pass
Change-Id: If6f6c502b96ccc11b230ba075c61118f03e13d5c
2021-03-19 02:37:37 +00:00
Christopher Tate
8cb7e0a881 DO NOT MERGE - Disallow deletion of channels with FGS notifications
Bug: 156090809
Test: atest CtsAppTestCases:NotificationManagerTest
Test: atest CtsAppTestCases:android.app.cts.ServiceTest
Change-Id: I1c2bb78d86f194585d273661cecf3419f51965df
(cherry picked from commit 39b3890268913bc2dc8b90671d042c0e9b4090d2)
2021-03-18 08:11:45 -07:00
Christopher Tate
2a33098b6c DO NOT MERGE - Disallow deletion of channels with FGS notifications
Bug: 156090809
Test: atest CtsAppTestCases:NotificationManagerTest
Test: atest CtsAppTestCases:android.app.cts.ServiceTest
Change-Id: I1c2bb78d86f194585d273661cecf3419f51965df
Merged-In: I1c2bb78d86f194585d273661cecf3419f51965df
(cherry picked from commit 39b3890268913bc2dc8b90671d042c0e9b4090d2)
2021-03-17 17:29:36 -07:00
Tobias Thierer
3a9dd32f61 Merge changes from topic "bug158482162_rvc-qpr-dev" into rvc-qpr-dev
* changes:
  Fix DevicePolicyManager.isBackupServiceEnabled() breakage.
  BackupManagerService: Make new behavior conditional on ChangeId.
  Enforce BACKUP permission on Service end.
2021-03-17 12:09:13 +00:00
Abhijeet Kaur
5630668181 Disable resetting WRITE_MEDIA_IMAGES and WRITE_MEDIA_VIDEO appops
App holding System Gallery role is allowed WRITE_MEDIA_* appops by
virtue of the role. This allows the System Gallery app write-access for
images and videos.

When app preferences are reset AppOpsService toggles the appops for
all apps. Only the appops mentioned in sOpDisableReset are not toggled.

Disable WRITE_MEDIA_* appops to reset, as the system gallery app loses
write access on images/videos.

Bug: 179133883
Test: Manual
Change-Id: I168221c641566a9f691ed7956c038206b114d802
Merged-In: I168221c641566a9f691ed7956c038206b114d802
(cherry picked from commit de862be6a8)
2021-02-23 19:09:10 +00:00
TreeHugger Robot
d11f218b8e Merge "[RESTRICT AUTOMERGE] Revert "[RESTRICT AUTOMERGE] Remove DPMS#getProfileOwner in favor of getProfileOwnerAsUser"" into rvc-qpr-dev 2021-02-05 20:53:55 +00:00
Antoan Angelov
c6bda518da [RESTRICT AUTOMERGE] Revert "[RESTRICT AUTOMERGE] Remove DPMS#getProfileOwner in favor of getProfileOwnerAsUser"
This reverts commit 10f79644fc.

Reason for revert: Explained in b/153995973#comment40

Bug: 153995973

Change-Id: I437400528cb98e9ce665ebc308bfe05f4f24ca13
2021-02-05 11:59:48 +00:00
Joanne Chung
19e9f00346 Merge "Get ApplicationInfo using usr id" into rvc-qpr-dev 2021-01-15 07:56:55 +00:00
Joanne Chung
d96bcfcdf2 Get ApplicationInfo using usr id
Use ApplicationInfoAsUser() to get the application information by
user id to make sure we have correct permission, othewise we will
get the SecurityException due to lack of INTERACT_ACROSS_USERS.

Bug: 176313819
Test: atest CtsVoiceRecognitionTestCases
Test: manual.
      1.create profile user
      2.Install sample recognizer app
      3.Function works fine and no security exception occurred after
      apply the change

Change-Id: I6958dbf661373606fb9dba55e386aaea4399a146
Merged-In: Iaf485537b8082d2109d2134ff987dc7244e31218
2021-01-15 12:25:06 +08:00
Kevin Hufnagle
5290b8d590 Merge "docs: Remove error in requestPermissions doc" into rvc-dev am: 05efe90a8d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13122154

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1f2497b843db9d953e225da17e16f92f93f2ad99
2021-01-11 19:53:53 +00:00
Kevin Hufnagle
05efe90a8d Merge "docs: Remove error in requestPermissions doc" into rvc-dev 2021-01-11 18:56:59 +00:00
TreeHugger Robot
a428448b1e Merge "[RESTRICT AUTOMERGE] Remove DPMS#getProfileOwner in favor of getProfileOwnerAsUser" into rvc-qpr-dev 2021-01-06 17:21:50 +00:00
Alex Kershaw
72704403aa [RESTRICT AUTOMERGE] Make WPMS look for DOs and POs in the correct calling user
Currently, it will always look in user 0 since it uses the DPM from
mContext, which will always be from user 0 as WPMS is in the system
server process.

Extend DPMI to provide the necessary external helper API. This is
preferable to just using createContextAsUser before getting the DPM
instance since it avoids a second binding.

Fixes: 144048540
Fixes: 172682826
Bug: 153995973
Bug: 174642338
Test: atest com.android.cts.devicepolicy.MixedManagedProfileOwnerTest#testSetWallpaper_disallowed
Change-Id: I52b71000fac31ff6725ddded58206f69b263ae33
(cherry picked from commit 5b36ee3f1d)
2021-01-06 13:08:42 +00:00
Alex Kershaw
f764d9e98f DO NOT MERGE Correctly reset cross-profile app-op
Delegate the resetting of the INTERACT_ACROSS_PROFILES app-op to
DevicePolicyManager, which knows whether it should be pre-granted and
knows to apply it equally across all users in the profile group.

Further unit tests for DevicePolicyManagerInternal will be added in
b/175440570 when we have the better infra for that.

The CrossProfileAppsServiceImpl changes look more complex than they are.
They consist of the following:
- Inclusive language changes to 'allowlist'
- Static imports of permissions to improve readability
- Previously, the setInteractAcrossProfilesAppOp method would set the
app-op for every user within the profile group of the 'calling user'.
However, given that we are now exposing this as a server-side internal
API where we need to pass in a user ID (from AppOpsService), we don't
necessarily have the guarantee that the 'calling user' is in the same
profile group. So we split it up: the client-side API and AIDL API still
set the app-op for the calling profile group, whereas the internal API
sets the app-op for every user within the profile group of the provided
user. The changes simply abstract away references to the 'calling user
ID'.

Fixes: 166561076
Bug: 175440570
Test: atest services/robotests/src/com/android/server/pm/CrossProfileAppsServiceImplRoboTest.java --verbose -c
Test: manual
Change-Id: I2181fe66022aaf6c3e6d784c0569d2f41ab66537
(cherry picked from commit d004f41188)
2020-12-17 13:27:34 +00:00
Tobias Thierer
b50cdde5f0 BackupManagerService: Make new behavior conditional on ChangeId.
Base CL ag/12885739 introduced unconditional enforcement of the BACKUP
permission for callers of BackupManagerService.isBackupServiceActive()
in the service, but dropped the enforcement on the app process side
(BackupManager).

This CL makes the behavior change conditional on a compat ChangeId.

Bug: 158482162
Test: Manually checked that an app similar to the code sample from
      http://b/158482162#comment1 can reproduce the behavior.
      This is true both before the base CL and after this CL, when
      the app targets an old SDK version (26).
Test: Checked that both (a) before this CL, (b) after this CL where
      the change is manually enabled for the app via the below commands,
      the app runs into a SecurityException instead:
$ adb shell am compat enable 158482162 com.example.tester
$ adb shell dumpsys platform_compat | grep 158482162
ChangeId(158482162; name=IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE; enableSinceTargetSdk=31; packageOverrides={com.example.tester=true})

Change-Id: I58e5d2a0b438296137fd76720636c8fdce740ded
Merged-In: I58e5d2a0b438296137fd76720636c8fdce740ded
(cherry picked from commit 7671f0d95c)
2020-12-10 17:11:42 +00:00
Tobias Thierer
4ab5af1eb5 Enforce BACKUP permission on Service end.
BackupManager runs in the client process, whereas BackupManagerService
runs in the system server process. Therefore, apps permissions need should
be enforced on the service side.

Bug: 158482162
Test: Manually checked that a sample app  encounters SecurityException
      after but not before this CL, when running code similar to the
      sample in http://b/158482162#comment1 to figure out whether
      isBackupServiceActive() for its own uid.
Change-Id: I59693819542a80a065a9c88373393b0ba0dbef65
Merged-In: I59693819542a80a065a9c88373393b0ba0dbef65
(cherry picked from commit b2ab2c414f)
2020-12-10 17:02:47 +00:00
TreeHugger Robot
12f1567f76 Merge "Update link for Permissions samples in Javadoc" into rvc-dev am: 82a1ff7a94 am: 4224da2b2b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13159866

Change-Id: I2dda484cb7780e15153442d29bc180045604aadb
2020-12-03 18:43:31 +00:00
Tiem Song
a9565b2cb0 Update link for Permissions samples in Javadoc
Bug: 158042826
Change-Id: I71ab17b21b31ff6584facd023e4c4818b0ab1b55
Merged-In: I71ab17b21b31ff6584facd023e4c4818b0ab1b55
Test: N/A
2020-12-02 20:50:04 -08:00
arangelov
10f79644fc [RESTRICT AUTOMERGE] Remove DPMS#getProfileOwner in favor of getProfileOwnerAsUser
Test: atest DevicePolicyManagerTest
Test: atest CrossProfileAppsTest
Bug: 153995973
Change-Id: I103c45ea61814e476eea197d357ef0ce75edefdc
(cherry picked from commit 790348fbf1)
2020-12-01 20:27:31 +00:00
Kevin Hufnagle
bd7aba8cbf docs: Remove error in requestPermissions doc
If an app has already been granted a permission and it requests that
permission again, the user shouldn't see a system dialog. Update the
documentation to reflect this intended behavior.

Test: m ds-docs-java

Bug: 157530031

Exempt-From-Owner-Approval: Docs-only change
Change-Id: I7096e17480831324dee72f4093cdaa064e3b9165
2020-11-24 18:30:38 -05:00
Ahaan Ugale
19e29925ee Allow only preloaded voice recognition services to blame calling apps.
Bug: 170795434
Test: manual
Merged-In: Ided2b19661d937ff0b4ec881f2e629afe47435e5
Change-Id: I92a146e5763afd07a44f8e9c7a3c71a27d1f16bd
2020-11-21 03:29:40 +00:00
Jordan Jozwiak
cad8a4f55e Merge "Do not power off display on lockNow() on automotive builds." into rvc-qpr-dev 2020-11-18 17:46:30 +00:00
Felipe Leme
b7c8877ba1 Do not power off display on lockNow() on automotive builds.
Test: manual verification
Fixes: 171517112

Change-Id: I410e06b911b099c0ed4b7b4e3ac493c9a272fa6b
Merged-In: I410e06b911b099c0ed4b7b4e3ac493c9a272fa6b
(cherry picked from commit fc586009b1)
2020-11-11 22:43:19 +00:00
Joanne Chung
6aaa106d83 Allow voice recognition service to blame other apps access.
This is a workaround solution for Android R QPR2. We are not allowed
to change the API for QPR release. This is a special case that allows
the current voice recognizer to note proxy ops if it is also the
voice interactor. In S, we will define a new permission that designed
one as a trusted blamer and tie it to a role.

Bug: 17095434
Test: manual
Test: TreeHugger presubmit

Merged-In: I506bbeb95e622b99693dbf5a135c7961b7fd81c1
Change-Id: I0852d1bb438d25b3e93224a71de1bf3b6df72c1c
2020-11-11 11:04:15 +08:00
Charles Chen
2fb8485fbb [RESTRICT AUTOMERGE] Revert "[RESTRICT AUTOMERGE] Revert "Require permission to create trusted displays"" am: c947b10f99 am: 1e0cf0c900
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12816011

Change-Id: I40987bec1e53324e4036ffe4325c6dc8328c29da
2020-10-16 18:56:16 +00:00
Charles Chen
1e0cf0c900 [RESTRICT AUTOMERGE] Revert "[RESTRICT AUTOMERGE] Revert "Require permission to create trusted displays"" am: c947b10f99
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12816011

Change-Id: I174d70795eae849ca346fb79528e418a5003f76a
2020-10-16 18:39:01 +00:00
TreeHugger Robot
8b1151e4d5 Merge "[RESTRICT AUTOMERGE] Revert "[RESTRICT AUTOMERGE] Revert "Require permission to create trusted displays""" into rvc-dev 2020-10-16 18:26:02 +00:00
Charles Chen
c947b10f99 [RESTRICT AUTOMERGE] Revert "[RESTRICT AUTOMERGE] Revert "Require permission to create trusted displays""
This reverts commit ae03031efe.

Reason for revert: Merge the reverted patch by accident.

Bug: 162627132
Change-Id: Ic2f072730050cb47926cec6ed24af7ef9e5e7055
2020-10-13 01:14:25 +00:00
Linus Tufvesson
14c9e48273 Update javadoc for setLaunchDisplayId am: 334190f26e am: c37e102250
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12794770

Change-Id: I57cce60a4f3c34b00f2c215e49cde51b0daf11bd
2020-10-09 21:42:16 +00:00
Linus Tufvesson
334190f26e Update javadoc for setLaunchDisplayId
.. to match behavior post I1f9662c2bd14b34e00fbc8ebb926538f0329c37a

Bug: 167593637
Test: Javadoc change only.
Change-Id: I4cb9fe4a5ae74b1474f9da39b6aeb3a374f8cf12
2020-10-09 09:54:40 +00:00