Make some accessor methods more widely available in PackageManager.
Subsequent CLs will use these to make calls ART Service.
Test: m
Bug: 251903639
Change-Id: Ifdd740c3c4a228b689720ee6a99a5a5824a415a5
diff --git a/services/core/java/com/android/server/pm/DexOptHelper.java b/services/core/java/com/android/server/pm/DexOptHelper.java
index 53e23e0..64ed376 100644
--- a/services/core/java/com/android/server/pm/DexOptHelper.java
+++ b/services/core/java/com/android/server/pm/DexOptHelper.java
@@ -32,6 +32,7 @@
import static com.android.server.pm.PackageManagerServiceCompilerMapping.getDefaultCompilerFilter;
import static com.android.server.pm.PackageManagerServiceUtils.REMOVE_IF_APEX_PKG;
import static com.android.server.pm.PackageManagerServiceUtils.REMOVE_IF_NULL_PKG;
+import static com.android.server.pm.PackageManagerServiceUtils.getPackageManagerLocal;
import static dalvik.system.DexFile.isProfileGuidedCompilerFilter;
@@ -88,7 +89,6 @@
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
-import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
@@ -916,14 +916,6 @@
return false;
}
- private @NonNull PackageManagerLocal getPackageManagerLocal() {
- try {
- return LocalManagerRegistry.getManagerOrThrow(PackageManagerLocal.class);
- } catch (ManagerNotFoundException e) {
- throw new RuntimeException(e);
- }
- }
-
/**
* Called whenever we need to fall back from ART Service to the legacy dexopt code.
*/
@@ -1003,7 +995,7 @@
/**
* Returns {@link ArtManagerLocal} if ART Service should be used for package dexopt.
*/
- private static @Nullable ArtManagerLocal getArtManagerLocal() {
+ public static @Nullable ArtManagerLocal getArtManagerLocal() {
if (!useArtService()) {
return null;
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
index 0de1a4e..ad8e35d 100644
--- a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
+++ b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
@@ -24,6 +24,7 @@
import static android.system.OsConstants.O_RDWR;
import static com.android.internal.content.NativeLibraryHelper.LIB_DIR_NAME;
+import static com.android.server.LocalManagerRegistry.ManagerNotFoundException;
import static com.android.server.pm.PackageManagerService.COMPRESSED_EXTENSION;
import static com.android.server.pm.PackageManagerService.DEBUG_COMPRESSION;
import static com.android.server.pm.PackageManagerService.DEBUG_INTENT_MATCHING;
@@ -91,6 +92,7 @@
import com.android.internal.util.HexDump;
import com.android.server.EventLogTags;
import com.android.server.IntentResolver;
+import com.android.server.LocalManagerRegistry;
import com.android.server.Watchdog;
import com.android.server.compat.PlatformCompat;
import com.android.server.pm.dex.PackageDexUsage;
@@ -201,6 +203,17 @@
private static final boolean FORCE_PACKAGE_PARSED_CACHE_ENABLED = false;
/**
+ * Returns the registered PackageManagerLocal instance, or else throws an unchecked error.
+ */
+ public static @NonNull PackageManagerLocal getPackageManagerLocal() {
+ try {
+ return LocalManagerRegistry.getManagerOrThrow(PackageManagerLocal.class);
+ } catch (ManagerNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
* Checks if the package was inactive during since <code>thresholdTimeinMillis</code>.
* Package is considered active, if:
* 1) It was active in foreground.