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
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 42c3630..53d1adf 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 @@
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);
}
}