diff options
| author | 2023-09-01 18:07:22 +0800 | |
|---|---|---|
| committer | 2023-09-01 18:07:22 +0800 | |
| commit | fdd4e6bfb3ffafbfcb8fe00487b48dd6eb94816f (patch) | |
| tree | b66074682a78895d59d622367026f2ec0e06091e | |
| parent | bf3c622e4c5f90ae85cc6248283c625eb9ee060b (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.java | 12 |
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); } } |