summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Louis Chang <louischang@google.com> 2023-09-01 18:07:22 +0800
committer Louis Chang <louischang@google.com> 2023-09-01 18:07:22 +0800
commitfdd4e6bfb3ffafbfcb8fe00487b48dd6eb94816f (patch)
treeb66074682a78895d59d622367026f2ec0e06091e
parentbf3c622e4c5f90ae85cc6248283c625eb9ee060b (diff)
Clear calling identity before updating lock-task packages
Updating lock-task packages could end up pausing activities and the operation is expected to be done on system uid. Bug: 297335387 Test: atest LockTaskModeTests Change-Id: I6c25926cb6c7156a03a29ebf046d1a5cc57a6d36
-rw-r--r--services/core/java/com/android/server/wm/ActivityTaskManagerService.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 42c363085017..53d1adfefbb9 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -2648,9 +2648,15 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
mAmInternal.enforceCallingPermission(Manifest.permission.UPDATE_LOCK_TASK_PACKAGES,
"updateLockTaskPackages()");
}
- synchronized (mGlobalLock) {
- ProtoLog.w(WM_DEBUG_LOCKTASK, "Allowlisting %d:%s", userId, Arrays.toString(packages));
- getLockTaskController().updateLockTaskPackages(userId, packages);
+ final long origId = Binder.clearCallingIdentity();
+ try {
+ synchronized (mGlobalLock) {
+ ProtoLog.w(WM_DEBUG_LOCKTASK, "Allowlisting %d:%s", userId,
+ Arrays.toString(packages));
+ getLockTaskController().updateLockTaskPackages(userId, packages);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(origId);
}
}