diff options
| author | 2017-03-17 10:30:50 -0700 | |
|---|---|---|
| committer | 2017-03-17 10:30:50 -0700 | |
| commit | e6ac20e1c7146f326070101f14ffa8a456ae3fe8 (patch) | |
| tree | 341c03470914fabe4bfa7da24f7c289fa368e9f9 | |
| parent | ff8b79e162cb4e1c7a8152b9f6cf44dbaceeb175 (diff) | |
Allow holders of MANAGE_ACTIVITY_STACKS to launch on private displays
MANAGE_ACTIVITY_STACKS permission allows moving stacks, tasks and
activities between corresponding parents. It makes no sense to
require more strict START_ANY_ACTIVITY permission to launch on
private display, as an activity still can be moved to it.
Bug: 34164473
Test: 'adb unroot' and run android.server.cts.ActivityManagerDisplayTests
Change-Id: I3b59127829c432e42a46630025eeddd152bce1b0
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 42efe0b5d8e0..217515b936dd 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -16,6 +16,7 @@ package com.android.server.am; +import static android.Manifest.permission.MANAGE_ACTIVITY_STACKS; import static android.Manifest.permission.START_ANY_ACTIVITY; import static android.Manifest.permission.START_TASKS_FROM_RECENTS; import static android.app.ActivityManager.LOCK_TASK_MODE_LOCKED; @@ -1612,8 +1613,8 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D return true; } - // Check if the caller can launch anything. - final int startAnyPerm = mService.checkPermission(START_ANY_ACTIVITY, callingPid, + // Check if the caller can manage activity stacks. + final int startAnyPerm = mService.checkPermission(MANAGE_ACTIVITY_STACKS, callingPid, callingUid); if (startAnyPerm == PERMISSION_GRANTED) { if (DEBUG_TASKS) Slog.d(TAG, "Launch on display check:" |