From fdd4e6bfb3ffafbfcb8fe00487b48dd6eb94816f Mon Sep 17 00:00:00 2001 From: Louis Chang Date: Fri, 1 Sep 2023 18:07:22 +0800 Subject: 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 --- .../com/android/server/wm/ActivityTaskManagerService.java | 12 +++++++++--- 1 file 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); } } -- cgit v1.2.3-59-g8ed1b