From 08d74434280f0d751c41575455fe3278d7ca2513 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm Date: Sat, 14 Jan 2023 12:25:40 +0000 Subject: [PATCH] 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 --- .../java/com/android/server/pm/DexOptHelper.java | 12 ++---------- .../server/pm/PackageManagerServiceUtils.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/services/core/java/com/android/server/pm/DexOptHelper.java b/services/core/java/com/android/server/pm/DexOptHelper.java index 53e23e0566989..64ed37690f8d2 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.getComp 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.List; 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 @@ public final class DexOptHelper { 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 @@ public final class DexOptHelper { /** * 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 0de1a4e0bc7cd..ad8e35db2eaad 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_CREAT; 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.FastPrintWriter; 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; @@ -200,6 +202,17 @@ public class PackageManagerServiceUtils { */ 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 thresholdTimeinMillis. * Package is considered active, if: