From ad65ba4dc9fce9911ff1182130275dc12838a38f Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Mon, 11 Jan 2021 09:54:31 -0800 Subject: [PATCH] Remove unnecessary locking that causes deadlock. This was moved from PackageManagerService but we forgot to remove the unnecessary synchronization on mLock, which will result in calling into package manager with the permission lock held. Fixes: 177178190 Test: presubmit Change-Id: I5b4a6a337e94e8483067cac5143e45d08b2eb983 --- .../server/pm/permission/PermissionManagerService.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 004c0154963bf..8f422890c9734 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -4463,12 +4463,10 @@ public class PermissionManagerService extends IPermissionManager.Stub { final PermissionPolicyInternal permissionPolicyInternal = LocalServices.getService( PermissionPolicyInternal.class); - permissionPolicyInternal.setOnInitializedCallback(userId -> { - // The SDK updated case is already handled when we run during the ctor. - synchronized (mLock) { - updateAllPermissions(StorageManager.UUID_PRIVATE_INTERNAL, false); - } - }); + permissionPolicyInternal.setOnInitializedCallback(userId -> + // The SDK updated case is already handled when we run during the ctor. + updateAllPermissions(StorageManager.UUID_PRIVATE_INTERNAL, false) + ); mSystemReady = true;