diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 9329271382bc9..b3f49ade35c88 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2737,7 +2737,7 @@ public class PackageManagerService extends IPackageManager.Stub context, lock, installer, installLock, new PackageAbiHelperImpl(), backgroundHandler, (i, pm) -> new ComponentResolver(i.getUserManagerService(), pm.mPmInternal, lock), - (i, pm) -> PermissionManagerService.create(context, lock), + (i, pm) -> PermissionManagerService.create(context), (i, pm) -> new UserManagerService(context, pm, new UserDataPreparer(installer, installLock, context, onlyCore), lock), 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 81e8c2286755d..84f98239a39c9 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -208,7 +208,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { } /** Lock to protect internal data access */ - private final Object mLock; + private final Object mLock = new Object(); /** Internal connection to the package manager */ private final PackageManagerInternal mPackageManagerInt; @@ -365,14 +365,12 @@ public class PermissionManagerService extends IPermissionManager.Stub { } }; - PermissionManagerService(Context context, - @NonNull Object externalLock) { - this(context, externalLock, new Injector(context)); + PermissionManagerService(@NonNull Context context) { + this(context, new Injector(context)); } @VisibleForTesting - PermissionManagerService(Context context, @NonNull Object externalLock, - @NonNull Injector injector) { + PermissionManagerService(@NonNull Context context, @NonNull Injector injector) { mInjector = injector; // The package info cache is the cache for package and permission information. // Disable the package info and package permission caches locally but leave the @@ -381,7 +379,6 @@ public class PermissionManagerService extends IPermissionManager.Stub { mInjector.disablePackageNamePermissionCache(); mContext = context; - mLock = externalLock; mPackageManagerInt = LocalServices.getService(PackageManagerInternal.class); mUserManagerInt = LocalServices.getService(UserManagerInternal.class); mAppOpsManager = context.getSystemService(AppOpsManager.class); @@ -440,8 +437,8 @@ public class PermissionManagerService extends IPermissionManager.Stub { * NOTE: The external lock is temporary and should be removed. This needs to be a * lock created by the permission manager itself. */ - public static PermissionManagerServiceInternal create(Context context, - @NonNull Object externalLock) { + @NonNull + public static PermissionManagerServiceInternal create(@NonNull Context context) { final PermissionManagerServiceInternal permMgrInt = LocalServices.getService(PermissionManagerServiceInternal.class); if (permMgrInt != null) { @@ -450,8 +447,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { PermissionManagerService permissionService = (PermissionManagerService) ServiceManager.getService("permissionmgr"); if (permissionService == null) { - permissionService = - new PermissionManagerService(context, externalLock); + permissionService = new PermissionManagerService(context); ServiceManager.addService("permissionmgr", permissionService); } return LocalServices.getService(PermissionManagerServiceInternal.class); diff --git a/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java index 56966776c8fb4..6cea9280f0803 100644 --- a/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/permission/PermissionManagerServiceTest.java @@ -69,8 +69,7 @@ public class PermissionManagerServiceTest { MockitoAnnotations.initMocks(this); mContext = InstrumentationRegistry.getContext(); - Object lock = new Object(); - mPermissionManagerService = new PermissionManagerService(mContext, lock, mInjector); + mPermissionManagerService = new PermissionManagerService(mContext, mInjector); } @After