summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hai Zhang <zhanghai@google.com> 2022-12-17 21:06:45 -0800
committer Hai Zhang <zhanghai@google.com> 2022-12-19 04:34:50 -0800
commit8e8ccad69aaae60da642e71086649f99a1470407 (patch)
treeafaa4461eedaf4d1da8f45d2e289b42a558f660e
parent46a23cd074739890e09fe6bd04c749d702b605b9 (diff)
Expose PackageManagerLocal earlier for system components to use.
The new permission service would like to consistently use PackageManagerLocal to access package information, but that is needed when the internal storage volume is scanned in the PackageManagerService constructor. So move the exposure of PackageManagerLocal from PackageManagerService main() to constructor where PackageManagerInternal is also exposed. Bug: 252884423 Test: presubmit Change-Id: I2f2569fb6e83f7c3efdc6fcfd92374220d1dec18
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java4
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt2
2 files 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 edc6b4a085f6..7443b779477b 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1597,8 +1597,6 @@ public class PackageManagerService implements PackageSender, TestUtilityService
ServiceManager.addService("package", iPackageManager);
final PackageManagerNative pmn = new PackageManagerNative(m);
ServiceManager.addService("package_native", pmn);
- LocalManagerRegistry.addManager(PackageManagerLocal.class,
- new PackageManagerLocalImpl(m));
return m;
}
@@ -1797,6 +1795,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService
// Expose private service for system components to use.
LocalServices.addService(PackageManagerInternal.class, new PackageManagerInternalImpl());
+ LocalManagerRegistry.addManager(PackageManagerLocal.class,
+ new PackageManagerLocalImpl(this));
LocalServices.addService(TestUtilityService.class, this);
mTestUtilityService = LocalServices.getService(TestUtilityService.class);
mUserManager = injector.getUserManagerService();
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt b/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
index 4f562710c789..6dc45c30bd66 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/MockSystem.kt
@@ -55,6 +55,7 @@ import com.android.dx.mockito.inline.extended.ExtendedMockito.spy
import com.android.dx.mockito.inline.extended.StaticMockitoSession
import com.android.dx.mockito.inline.extended.StaticMockitoSessionBuilder
import com.android.internal.R
+import com.android.server.LocalManagerRegistry
import com.android.server.LocalServices
import com.android.server.LockGuard
import com.android.server.SystemConfig
@@ -148,6 +149,7 @@ class MockSystem(withSession: (StaticMockitoSessionBuilder) -> Unit = {}) {
.mockStatic(LockGuard::class.java)
.mockStatic(EventLog::class.java)
.mockStatic(LocalServices::class.java)
+ .mockStatic(LocalManagerRegistry::class.java)
.mockStatic(DeviceConfig::class.java)
.mockStatic(HexEncoding::class.java)
.apply(withSession)