From 465130779c497fc81ba4afd526da226ca3f84fea Mon Sep 17 00:00:00 2001 From: Rhed Jao Date: Wed, 31 Mar 2021 16:55:01 +0800 Subject: [PATCH] Using internal user manager for the lock state checking For the methods that aren't necessary to enforce cross user permission when calling into the `isUserUnlockingOrUnlocked` of UserManager, we should use internal user manager instead. Bug: 179699786 Test: atest PackageManagerTest Change-Id: I93899292375b6ed1d8f7004e968449b2568947eb --- .../java/com/android/server/pm/PackageManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index dcb990600bb8a..c07abaf4a9ab9 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4217,8 +4217,9 @@ public class PackageManagerService extends IPackageManager.Stub // aware/unaware components they want to see, so fall through and // give them what they want } else { + final UserManagerInternal umInternal = mInjector.getUserManagerInternal(); // Caller expressed no opinion, so match based on user state - if (mUserManager.isUserUnlockingOrUnlocked(userId)) { + if (umInternal.isUserUnlockingOrUnlocked(userId)) { flags |= PackageManager.MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE; } else { flags |= PackageManager.MATCH_DIRECT_BOOT_AWARE; @@ -15253,7 +15254,8 @@ public class PackageManagerService extends IPackageManager.Stub userId); // Deliver BOOT_COMPLETED only if user is unlocked - if (mUserManager.isUserUnlockingOrUnlocked(userId)) { + final UserManagerInternal umInternal = mInjector.getUserManagerInternal(); + if (umInternal.isUserUnlockingOrUnlocked(userId)) { Intent bcIntent = new Intent(Intent.ACTION_BOOT_COMPLETED).setPackage(packageName); if (includeStopped) { bcIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);