Move interfaces to core/java for porting parser 2

1. Move AndroidPackage and AndroidPackageSplit to core/java/c/a/s/p/pkg.
2. Move AndroidPackageSplitImpl to c/j/c/a/i/p/pkg.
3. Make interfaces as common file group and import within
   services-non-updatable-sources.
4. Modify related files that used those classes.

Bug: 309596860
Test: build pass and boot to home
Test: atest PackageManagerServiceServerTests
Test: atest PackageManagerComponentOverrideTests
Test: atest PermissionServiceMockingTests
Test: atest PackageManagerServiceUnitTests
Test: atest ModulesUtilsTests
Test: atest ArtServiceTests
Change-Id: I69de59ea5c63c2ce6e804aa64731683a6de37a5e
diff --git a/services/Android.bp b/services/Android.bp
index 02a7a78..5cb8ec6 100644
--- a/services/Android.bp
+++ b/services/Android.bp
@@ -140,6 +140,7 @@
         ":services.voiceinteraction-sources",
         ":services.wallpapereffectsgeneration-sources",
         ":services.wifi-sources",
+        ":framework-pm-common-shared-srcs",
     ],
     visibility: ["//visibility:private"],
 }
diff --git a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
index c8ac698..9cc0af3 100644
--- a/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
+++ b/services/core/java/com/android/server/pm/parsing/pkg/PackageImpl.java
@@ -50,6 +50,7 @@
 
 import com.android.internal.R;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.pm.pkg.AndroidPackageSplitImpl;
 import com.android.internal.pm.pkg.component.ParsedActivity;
 import com.android.internal.pm.pkg.component.ParsedApexSystemService;
 import com.android.internal.pm.pkg.component.ParsedAttribution;
@@ -71,7 +72,6 @@
 import com.android.server.pm.parsing.PackageInfoUtils;
 import com.android.server.pm.pkg.AndroidPackage;
 import com.android.server.pm.pkg.AndroidPackageSplit;
-import com.android.server.pm.pkg.AndroidPackageSplitImpl;
 import com.android.server.pm.pkg.SELinuxUtil;
 import com.android.server.pm.pkg.component.ComponentMutateUtils;
 import com.android.server.pm.pkg.component.ParsedActivityImpl;
diff --git a/services/core/java/com/android/server/pm/pkg/AndroidPackage.java b/services/core/java/com/android/server/pm/pkg/AndroidPackage.java
deleted file mode 100644
index 99819c8..0000000
--- a/services/core/java/com/android/server/pm/pkg/AndroidPackage.java
+++ /dev/null
@@ -1,1493 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.pm.pkg;
-
-import android.annotation.Dimension;
-import android.annotation.DrawableRes;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.StringRes;
-import android.annotation.StyleRes;
-import android.annotation.SystemApi;
-import android.annotation.XmlRes;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.ConfigurationInfo;
-import android.content.pm.FeatureGroupInfo;
-import android.content.pm.FeatureInfo;
-import android.content.pm.InstrumentationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PermissionInfo;
-import android.content.pm.ProviderInfo;
-import android.content.pm.ServiceInfo;
-import android.content.pm.SigningDetails;
-import android.os.Bundle;
-import android.os.storage.StorageManager;
-import android.processor.immutability.Immutable;
-import android.util.ArraySet;
-import android.util.Pair;
-import android.util.SparseArray;
-import android.util.SparseIntArray;
-
-import com.android.internal.R;
-import com.android.internal.pm.pkg.component.ParsedActivity;
-import com.android.internal.pm.pkg.component.ParsedApexSystemService;
-import com.android.internal.pm.pkg.component.ParsedAttribution;
-import com.android.internal.pm.pkg.component.ParsedInstrumentation;
-import com.android.internal.pm.pkg.component.ParsedIntentInfo;
-import com.android.internal.pm.pkg.component.ParsedPermission;
-import com.android.internal.pm.pkg.component.ParsedPermissionGroup;
-import com.android.internal.pm.pkg.component.ParsedProcess;
-import com.android.internal.pm.pkg.component.ParsedProvider;
-import com.android.internal.pm.pkg.component.ParsedService;
-import com.android.internal.pm.pkg.component.ParsedUsesPermission;
-import com.android.server.pm.pkg.parsing.ParsingPackageUtils;
-
-import java.security.PublicKey;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-/**
- * The representation of an application on disk, as parsed from its split APKs' manifests.
- *
- * Metadata available here is mostly device-state independent and indicates what the application
- * author declared for their app.
- *
- * This is the system server in-process API equivalent of the public API {@link ApplicationInfo}.
- * Note that because {@link ApplicationInfo} is stateful, several methods that exist on it may not
- * be available here and need to be read through {@link PackageState} or {@link PackageUserState}.
- *
- * All instances of {@link AndroidPackage} are associated with a {@link PackageState}, and the
- * only way to retrieve one is through {@link PackageState}. Note that the inverse does not apply
- * and {@link AndroidPackage} may be null in several cases. See
- * {@link PackageState#getAndroidPackage()}.
- *
- * The data available here is immutable and will throw {@link UnsupportedOperationException} if any
- * collection type is mutated.
- *
- * @hide
- */
-@SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
-@Immutable
-public interface AndroidPackage {
-
-    /**
-     * @see ApplicationInfo#className
-     * @see R.styleable#AndroidManifestApplication_name
-     */
-    @Nullable
-    String getApplicationClassName();
-
-    /**
-     * @see ApplicationInfo#appComponentFactory
-     * @see R.styleable#AndroidManifestApplication_appComponentFactory
-     */
-    @Nullable
-    String getAppComponentFactory();
-
-    /**
-     * @see ApplicationInfo#backupAgentName
-     * @see R.styleable#AndroidManifestApplication_backupAgent
-     */
-    @Nullable
-    String getBackupAgentName();
-
-    /**
-     * @see ApplicationInfo#banner
-     * @see R.styleable#AndroidManifestApplication_banner
-     */
-    @DrawableRes
-    int getBannerResourceId();
-
-    /**
-     * @see PackageInfo#baseRevisionCode
-     * @see R.styleable#AndroidManifest_revisionCode
-     */
-    int getBaseRevisionCode();
-
-    /**
-     * @see ApplicationInfo#category
-     * @see R.styleable#AndroidManifestApplication_appCategory
-     */
-    int getCategory();
-
-    /**
-     * @see ApplicationInfo#classLoaderName
-     * @see R.styleable#AndroidManifestApplication_classLoader
-     */
-    @Nullable
-    String getClassLoaderName();
-
-    /**
-     * @see ApplicationInfo#compatibleWidthLimitDp
-     * @see R.styleable#AndroidManifestSupportsScreens_compatibleWidthLimitDp
-     */
-    @Dimension(unit = Dimension.DP)
-    int getCompatibleWidthLimitDp();
-
-    /**
-     * @see ApplicationInfo#dataExtractionRulesRes
-     * @see R.styleable#AndroidManifestApplication_dataExtractionRules
-     */
-    @XmlRes
-    int getDataExtractionRulesResourceId();
-
-    /**
-     * @see ApplicationInfo#descriptionRes
-     * @see R.styleable#AndroidManifestApplication_description
-     */
-    @StringRes // This is actually format="reference"
-    int getDescriptionResourceId();
-
-    /**
-     * @see ApplicationInfo#fullBackupContent
-     * @see R.styleable#AndroidManifestApplication_fullBackupContent
-     */
-    @XmlRes
-    int getFullBackupContentResourceId();
-
-    /**
-     * @see ApplicationInfo#getGwpAsanMode()
-     * @see R.styleable#AndroidManifestApplication_gwpAsanMode
-     */
-    @ApplicationInfo.GwpAsanMode
-    int getGwpAsanMode();
-
-    /**
-     * @see ApplicationInfo#iconRes
-     * @see R.styleable#AndroidManifestApplication_icon
-     */
-    @DrawableRes
-    int getIconResourceId();
-
-    /**
-     * @see ApplicationInfo#labelRes
-     * @see R.styleable#AndroidManifestApplication_label
-     */
-    @StringRes
-    int getLabelResourceId();
-
-    /**
-     * @see ApplicationInfo#largestWidthLimitDp
-     * @see R.styleable#AndroidManifestSupportsScreens_largestWidthLimitDp
-     */
-    @Dimension(unit = Dimension.DP)
-    int getLargestWidthLimitDp();
-
-    /**
-     * Library names this package is declared as, for use by other packages with "uses-library".
-     *
-     * @see R.styleable#AndroidManifestLibrary
-     */
-    @NonNull
-    List<String> getLibraryNames();
-
-    /**
-     * @see ApplicationInfo#logo
-     * @see R.styleable#AndroidManifestApplication_logo
-     */
-    @DrawableRes
-    int getLogoResourceId();
-
-    /**
-     * The resource ID used to provide the application's locales configuration.
-     *
-     * @see R.styleable#AndroidManifestApplication_localeConfig
-     */
-    @XmlRes
-    int getLocaleConfigResourceId();
-
-    /**
-     * @see PackageInfo#getLongVersionCode()
-     * @see R.styleable#AndroidManifest_versionCode
-     * @see R.styleable#AndroidManifest_versionCodeMajor
-     */
-    long getLongVersionCode();
-
-    /**
-     * @see ApplicationInfo#maxAspectRatio
-     * @see R.styleable#AndroidManifestApplication_maxAspectRatio
-     */
-    float getMaxAspectRatio();
-
-    /**
-     * @see ApplicationInfo#minAspectRatio
-     * @see R.styleable#AndroidManifestApplication_minAspectRatio
-     */
-    float getMinAspectRatio();
-
-    /**
-     * @see ApplicationInfo#getNativeHeapZeroInitialized()
-     * @see R.styleable#AndroidManifestApplication_nativeHeapZeroInitialized
-     */
-    @ApplicationInfo.NativeHeapZeroInitialized
-    int getNativeHeapZeroInitialized();
-
-    /**
-     * @see ApplicationInfo#networkSecurityConfigRes
-     * @see R.styleable#AndroidManifestApplication_networkSecurityConfig
-     */
-    @XmlRes
-    int getNetworkSecurityConfigResourceId();
-
-    /**
-     * @see PackageInfo#requiredAccountType
-     * @see R.styleable#AndroidManifestApplication_requiredAccountType
-     */
-    @Nullable
-    String getRequiredAccountType();
-
-    /**
-     * @see ApplicationInfo#requiresSmallestWidthDp
-     * @see R.styleable#AndroidManifestSupportsScreens_requiresSmallestWidthDp
-     */
-    @Dimension(unit = Dimension.DP)
-    int getRequiresSmallestWidthDp();
-
-    /**
-     * The restricted account authenticator type that is used by this application.
-     *
-     * @see PackageInfo#restrictedAccountType
-     * @see R.styleable#AndroidManifestApplication_restrictedAccountType
-     */
-    @Nullable
-    String getRestrictedAccountType();
-
-    /**
-     * @see ApplicationInfo#roundIconRes
-     * @see R.styleable#AndroidManifestApplication_roundIcon
-     */
-    @DrawableRes
-    int getRoundIconResourceId();
-
-    /**
-     * @see R.styleable#AndroidManifestSdkLibrary_name
-     */
-    @Nullable
-    String getSdkLibraryName();
-
-    /**
-     * @see PackageInfo#sharedUserId
-     * @see R.styleable#AndroidManifest_sharedUserId
-     */
-    @Nullable
-    String getSharedUserId();
-
-    /**
-     * @see PackageInfo#sharedUserLabel
-     * @see R.styleable#AndroidManifest_sharedUserLabel
-     */
-    @StringRes
-    int getSharedUserLabelResourceId();
-
-    /**
-     * @return List of all splits for a package. Note that base.apk is considered a
-     * split and will be provided as index 0 of the list.
-     */
-    @NonNull
-    List<AndroidPackageSplit> getSplits();
-
-    /**
-     * @see R.styleable#AndroidManifestStaticLibrary_name
-     */
-    @Nullable
-    String getStaticSharedLibraryName();
-
-    /**
-     * @see R.styleable#AndroidManifestStaticLibrary_version
-     * @hide
-     */
-    long getStaticSharedLibraryVersion();
-
-    /**
-     * @return The {@link UUID} for use with {@link StorageManager} APIs identifying where this
-     * package was installed.
-     */
-    @NonNull
-    UUID getStorageUuid();
-
-    /**
-     * @see ApplicationInfo#targetSdkVersion
-     * @see R.styleable#AndroidManifestUsesSdk_targetSdkVersion
-     */
-    int getTargetSdkVersion();
-
-    /**
-     * @see ApplicationInfo#theme
-     * @see R.styleable#AndroidManifestApplication_theme
-     */
-    @StyleRes
-    int getThemeResourceId();
-
-    /**
-     * @see ApplicationInfo#uiOptions
-     * @see R.styleable#AndroidManifestApplication_uiOptions
-     */
-    int getUiOptions();
-
-    /**
-     * @see PackageInfo#versionName
-     */
-    @Nullable
-    String getVersionName();
-
-    /**
-     * @see ApplicationInfo#zygotePreloadName
-     * @see R.styleable#AndroidManifestApplication_zygotePreloadName
-     */
-    @Nullable
-    String getZygotePreloadName();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_AUDIO_PLAYBACK_CAPTURE
-     * @see R.styleable#AndroidManifestApplication_allowAudioPlaybackCapture
-     */
-    boolean isAllowAudioPlaybackCapture();
-
-    /**
-     * @see ApplicationInfo#FLAG_ALLOW_BACKUP
-     * @see R.styleable#AndroidManifestApplication_allowBackup
-     */
-    boolean isBackupAllowed();
-
-    /**
-     * @see ApplicationInfo#FLAG_ALLOW_CLEAR_USER_DATA
-     * @see R.styleable#AndroidManifestApplication_allowClearUserData
-     */
-    boolean isClearUserDataAllowed();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_CLEAR_USER_DATA_ON_FAILED_RESTORE
-     * @see R.styleable#AndroidManifestApplication_allowClearUserDataOnFailedRestore
-     */
-    boolean isClearUserDataOnFailedRestoreAllowed();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING
-     * @see R.styleable#AndroidManifestApplication_allowNativeHeapPointerTagging
-     */
-    boolean isAllowNativeHeapPointerTagging();
-
-    /**
-     * @see ApplicationInfo#FLAG_ALLOW_TASK_REPARENTING
-     * @see R.styleable#AndroidManifestApplication_allowTaskReparenting
-     */
-    boolean isTaskReparentingAllowed();
-
-    /**
-     * If omitted from manifest, returns true if {@link #getTargetSdkVersion()} >= {@link
-     * android.os.Build.VERSION_CODES#DONUT}.
-     *
-     * @see R.styleable#AndroidManifestSupportsScreens_anyDensity
-     * @see ApplicationInfo#FLAG_SUPPORTS_SCREEN_DENSITIES
-     */
-    boolean isAnyDensity();
-
-    /**
-     * @see ApplicationInfo#areAttributionsUserVisible()
-     * @see R.styleable#AndroidManifestApplication_attributionsAreUserVisible
-     */
-    boolean isAttributionsUserVisible();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_BACKUP_IN_FOREGROUND
-     * @see R.styleable#AndroidManifestApplication_backupInForeground
-     */
-    boolean isBackupInForeground();
-
-    /**
-     * @see ApplicationInfo#FLAG_HARDWARE_ACCELERATED
-     * @see R.styleable#AndroidManifestApplication_hardwareAccelerated
-     */
-    boolean isHardwareAccelerated();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_CANT_SAVE_STATE
-     * @see R.styleable#AndroidManifestApplication_cantSaveState
-     */
-    boolean isSaveStateDisallowed();
-
-    /**
-     * @see PackageInfo#coreApp
-     */
-    boolean isCoreApp();
-
-    /**
-     * @see ApplicationInfo#crossProfile
-     * @see R.styleable#AndroidManifestApplication_crossProfile
-     */
-    boolean isCrossProfile();
-
-    /**
-     * @see ApplicationInfo#FLAG_DEBUGGABLE
-     * @see R.styleable#AndroidManifestApplication_debuggable
-     */
-    boolean isDebuggable();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE
-     * @see R.styleable#AndroidManifestApplication_defaultToDeviceProtectedStorage
-     */
-    boolean isDefaultToDeviceProtectedStorage();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_DIRECT_BOOT_AWARE
-     * @see R.styleable#AndroidManifestApplication_directBootAware
-     */
-    boolean isDirectBootAware();
-
-    /**
-     * @see ApplicationInfo#FLAG_EXTRACT_NATIVE_LIBS
-     * @see R.styleable#AndroidManifestApplication_extractNativeLibs
-     */
-    boolean isExtractNativeLibrariesRequested();
-
-    /**
-     * @see ApplicationInfo#FLAG_FACTORY_TEST
-     */
-    boolean isFactoryTest();
-
-    /**
-     * @see R.styleable#AndroidManifestApplication_forceQueryable
-     */
-    boolean isForceQueryable();
-
-    /**
-     * @see ApplicationInfo#FLAG_FULL_BACKUP_ONLY
-     * @see R.styleable#AndroidManifestApplication_fullBackupOnly
-     */
-    boolean isFullBackupOnly();
-
-    /**
-     * @see ApplicationInfo#FLAG_HAS_CODE
-     * @see R.styleable#AndroidManifestApplication_hasCode
-     */
-    boolean isDeclaredHavingCode();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_HAS_FRAGILE_USER_DATA
-     * @see R.styleable#AndroidManifestApplication_hasFragileUserData
-     */
-    boolean isUserDataFragile();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_ISOLATED_SPLIT_LOADING
-     * @see R.styleable#AndroidManifest_isolatedSplits
-     */
-    boolean isIsolatedSplitLoading();
-
-    /**
-     * @see ApplicationInfo#FLAG_KILL_AFTER_RESTORE
-     * @see R.styleable#AndroidManifestApplication_killAfterRestore
-     */
-    boolean isKillAfterRestoreAllowed();
-
-    /**
-     * @see ApplicationInfo#FLAG_LARGE_HEAP
-     * @see R.styleable#AndroidManifestApplication_largeHeap
-     */
-    boolean isLargeHeap();
-
-    /**
-     * Returns true if R.styleable#AndroidManifest_sharedUserMaxSdkVersion is set to a value
-     * smaller than the current SDK version, indicating the package wants to leave its declared
-     * {@link #getSharedUserId()}. This only occurs on new installs, pretending the app never
-     * declared one.
-     *
-     * @see R.styleable#AndroidManifest_sharedUserMaxSdkVersion
-     */
-    boolean isLeavingSharedUser();
-
-    /**
-     * @see ApplicationInfo#FLAG_MULTIARCH
-     * @see R.styleable#AndroidManifestApplication_multiArch
-     */
-    boolean isMultiArch();
-
-    /**
-     * @see ApplicationInfo#nativeLibraryRootRequiresIsa
-     */
-    boolean isNativeLibraryRootRequiresIsa();
-
-    /**
-     * @see R.styleable#AndroidManifestApplication_enableOnBackInvokedCallback
-     */
-    boolean isOnBackInvokedCallbackEnabled();
-
-    /**
-     * @see ApplicationInfo#FLAG_PERSISTENT
-     * @see R.styleable#AndroidManifestApplication_persistent
-     */
-    boolean isPersistent();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_EXT_PROFILEABLE
-     * @see R.styleable#AndroidManifestProfileable
-     */
-    boolean isProfileable();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_PROFILEABLE_BY_SHELL
-     * @see R.styleable#AndroidManifestProfileable_shell
-     */
-    boolean isProfileableByShell();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_REQUEST_LEGACY_EXTERNAL_STORAGE
-     * @see R.styleable#AndroidManifestApplication_requestLegacyExternalStorage
-     */
-    boolean isRequestLegacyExternalStorage();
-
-    /**
-     * @see PackageInfo#requiredForAllUsers
-     * @see R.styleable#AndroidManifestApplication_requiredForAllUsers
-     */
-    boolean isRequiredForAllUsers();
-
-    /**
-     * Whether the enabled settings of components in the application should be reset to the default,
-     * when the application's user data is cleared.
-     *
-     * @see R.styleable#AndroidManifestApplication_resetEnabledSettingsOnAppDataCleared
-     */
-    boolean isResetEnabledSettingsOnAppDataCleared();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_IS_RESOURCE_OVERLAY
-     * @see ApplicationInfo#isResourceOverlay()
-     * @see R.styleable#AndroidManifestResourceOverlay
-     */
-    boolean isResourceOverlay();
-
-    /**
-     * @see ApplicationInfo#FLAG_RESTORE_ANY_VERSION
-     * @see R.styleable#AndroidManifestApplication_restoreAnyVersion
-     */
-    boolean isRestoreAnyVersion();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_SIGNED_WITH_PLATFORM_KEY
-     */
-    boolean isSignedWithPlatformKey();
-
-    /**
-     * If omitted from manifest, returns true if {@link #getTargetSdkVersion()} >= {@link
-     * android.os.Build.VERSION_CODES#GINGERBREAD}.
-     *
-     * @see R.styleable#AndroidManifestSupportsScreens_xlargeScreens
-     * @see ApplicationInfo#FLAG_SUPPORTS_XLARGE_SCREENS
-     */
-    boolean isExtraLargeScreensSupported();
-
-    /**
-     * If omitted from manifest, returns true if {@link #getTargetSdkVersion()} >= {@link
-     * android.os.Build.VERSION_CODES#DONUT}.
-     *
-     * @see R.styleable#AndroidManifestSupportsScreens_largeScreens
-     * @see ApplicationInfo#FLAG_SUPPORTS_LARGE_SCREENS
-     */
-    boolean isLargeScreensSupported();
-
-    /**
-     * If omitted from manifest, returns true.
-     *
-     * @see R.styleable#AndroidManifestSupportsScreens_normalScreens
-     * @see ApplicationInfo#FLAG_SUPPORTS_NORMAL_SCREENS
-     */
-    boolean isNormalScreensSupported();
-
-    /**
-     * @see ApplicationInfo#FLAG_SUPPORTS_RTL
-     * @see R.styleable#AndroidManifestApplication_supportsRtl
-     */
-    boolean isRtlSupported();
-
-    /**
-     * If omitted from manifest, returns true if {@link #getTargetSdkVersion()} >= {@link
-     * android.os.Build.VERSION_CODES#DONUT}.
-     *
-     * @see R.styleable#AndroidManifestSupportsScreens_smallScreens
-     * @see ApplicationInfo#FLAG_SUPPORTS_SMALL_SCREENS
-     */
-    boolean isSmallScreensSupported();
-
-    /**
-     * @see ApplicationInfo#FLAG_TEST_ONLY
-     * @see R.styleable#AndroidManifestApplication_testOnly
-     */
-    boolean isTestOnly();
-
-    /**
-     * The install time abi override to choose 32bit abi's when multiple abi's are present. This is
-     * only meaningful for multiarch applications. The use32bitAbi attribute is ignored if
-     * cpuAbiOverride is also set.
-     *
-     * @see R.attr#use32bitAbi
-     */
-    boolean is32BitAbiPreferred();
-
-    /**
-     * @see ApplicationInfo#FLAG_USES_CLEARTEXT_TRAFFIC
-     * @see R.styleable#AndroidManifestApplication_usesCleartextTraffic
-     */
-    boolean isCleartextTrafficAllowed();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_USE_EMBEDDED_DEX
-     * @see R.styleable#AndroidManifestApplication_useEmbeddedDex
-     */
-    boolean isUseEmbeddedDex();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_USES_NON_SDK_API
-     * @see R.styleable#AndroidManifestApplication_usesNonSdkApi
-     */
-    boolean isNonSdkApiRequested();
-
-    /**
-     * @see ApplicationInfo#FLAG_VM_SAFE_MODE
-     * @see R.styleable#AndroidManifestApplication_vmSafeMode
-     */
-    boolean isVmSafeMode();
-
-    // Methods below this comment are not yet exposed as API
-
-    /**
-     * Set of Activities parsed from the manifest.
-     * <p>
-     * This contains minimal system state and does not
-     * provide the same information as {@link ActivityInfo}. Effective state can be queried through
-     * {@link android.content.pm.PackageManager#getActivityInfo(ComponentName, int)} or by
-     * combining state from from com.android.server.pm.pkg.PackageState and
-     * {@link PackageUserState}.
-     *
-     * @see ActivityInfo
-     * @see PackageInfo#activities
-     * @see R.styleable#AndroidManifestActivity
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedActivity> getActivities();
-
-    /**
-     * The names of packages to adopt ownership of permissions from, parsed under {@link
-     * ParsingPackageUtils#TAG_ADOPT_PERMISSIONS}.
-     *
-     * @see R.styleable#AndroidManifestOriginalPackage_name
-     * @hide
-     */
-    @NonNull
-    List<String> getAdoptPermissions();
-
-    /**
-     * @see R.styleable#AndroidManifestApexSystemService
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedApexSystemService> getApexSystemServices();
-
-    /**
-     * @see R.styleable#AndroidManifestAttribution
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedAttribution> getAttributions();
-
-    /**
-     * @see ApplicationInfo#AUTO_REVOKE_ALLOWED
-     * @see ApplicationInfo#AUTO_REVOKE_DISCOURAGED
-     * @see ApplicationInfo#AUTO_REVOKE_DISALLOWED
-     * @see R.styleable#AndroidManifestApplication_autoRevokePermissions
-     * @hide
-     */
-    int getAutoRevokePermissions();
-
-    /**
-     * @see ApplicationInfo#sourceDir
-     * @see ApplicationInfo#getBaseCodePath
-     *
-     * @deprecated Use {@link #getSplits()}[0].{@link AndroidPackageSplit#getPath() getPath()}
-     *
-     * @hide
-     */
-    @Deprecated
-    @NonNull
-    String getBaseApkPath();
-
-    /**
-     * @see ApplicationInfo#compileSdkVersion
-     * @see R.styleable#AndroidManifest_compileSdkVersion
-     * @hide
-     */
-    int getCompileSdkVersion();
-
-    /**
-     * @see ApplicationInfo#compileSdkVersionCodename
-     * @see R.styleable#AndroidManifest_compileSdkVersionCodename
-     * @hide
-     */
-    @Nullable
-    String getCompileSdkVersionCodeName();
-
-    /**
-     * @see PackageInfo#configPreferences
-     * @see R.styleable#AndroidManifestUsesConfiguration
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ConfigurationInfo> getConfigPreferences();
-
-    /**
-     * @see PackageInfo#featureGroups
-     * @see R.styleable#AndroidManifestUsesFeature
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<FeatureGroupInfo> getFeatureGroups();
-
-    /**
-     * Permissions requested but not in the manifest. These may have been split or migrated from
-     * previous versions/definitions.
-     * @hide
-     */
-    @NonNull
-    Set<String> getImplicitPermissions();
-
-    /**
-     * @see ApplicationInfo#installLocation
-     * @see R.styleable#AndroidManifest_installLocation
-     * @hide
-     */
-    int getInstallLocation();
-
-    /**
-     * @see InstrumentationInfo
-     * @see PackageInfo#instrumentation
-     * @see R.styleable#AndroidManifestInstrumentation
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedInstrumentation> getInstrumentations();
-
-    /**
-     * For use with {@link com.android.server.pm.KeySetManagerService}. Parsed in {@link
-     * ParsingPackageUtils#TAG_KEY_SETS}.
-     *
-     * @see R.styleable#AndroidManifestKeySet
-     * @see R.styleable#AndroidManifestPublicKey
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    Map<String, ArraySet<PublicKey>> getKeySetMapping();
-
-    /**
-     * @see ApplicationInfo#mKnownActivityEmbeddingCerts
-     * @see R.styleable#AndroidManifestApplication_knownActivityEmbeddingCerts
-     * @hide
-     */
-    @SuppressWarnings("JavadocReference")
-    @NonNull
-    Set<String> getKnownActivityEmbeddingCerts();
-
-    /**
-     * @see ApplicationInfo#manageSpaceActivityName
-     * @see R.styleable#AndroidManifestApplication_manageSpaceActivity
-     * @hide
-     */
-    @Nullable
-    String getManageSpaceActivityName();
-
-    /**
-     * The package name as declared in the manifest, since the package can be renamed. For example,
-     * static shared libs use synthetic package names.
-     * @hide
-     */
-    @NonNull
-    String getManifestPackageName();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSdk_maxSdkVersion
-     * @hide
-     */
-    int getMaxSdkVersion();
-
-    /**
-     * @see ApplicationInfo#getMemtagMode()
-     * @see R.styleable#AndroidManifestApplication_memtagMode
-     * @hide
-     */
-    @ApplicationInfo.MemtagMode
-    int getMemtagMode();
-
-    /**
-     * TODO(b/135203078): Make all the Bundles immutable (and non-null by shared empty reference?)
-     * @see R.styleable#AndroidManifestMetaData
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    Bundle getMetaData();
-
-    /**
-     * @see R.attr#mimeGroup
-     * @hide
-     */
-    @Nullable
-    Set<String> getMimeGroups();
-
-    /**
-     * @see R.styleable#AndroidManifestExtensionSdk
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    SparseIntArray getMinExtensionVersions();
-
-    /**
-     * @see ApplicationInfo#minSdkVersion
-     * @see R.styleable#AndroidManifestUsesSdk_minSdkVersion
-     * @hide
-     */
-    int getMinSdkVersion();
-
-    /**
-     * @see ApplicationInfo#nativeLibraryDir
-     * @hide
-     */
-    @Nullable
-    String getNativeLibraryDir();
-
-    /**
-     * @see ApplicationInfo#nativeLibraryRootDir
-     * @hide
-     */
-    @Nullable
-    String getNativeLibraryRootDir();
-
-    /**
-     * If {@link R.styleable#AndroidManifestApplication_label} is a string literal, this is it.
-     * Otherwise, it's stored as {@link #getLabelResourceId()}.
-     *
-     * @see ApplicationInfo#nonLocalizedLabel
-     * @see R.styleable#AndroidManifestApplication_label
-     * @hide
-     */
-    @Nullable
-    CharSequence getNonLocalizedLabel();
-
-    /**
-     * For system use to migrate from an old package name to a new one, moving over data if
-     * available.
-     *
-     * @see R.styleable#AndroidManifestOriginalPackage}
-     * @hide
-     */
-    @NonNull
-    List<String> getOriginalPackages();
-
-    /**
-     * @see PackageInfo#overlayCategory
-     * @see R.styleable#AndroidManifestResourceOverlay_category
-     * @hide
-     */
-    @Nullable
-    String getOverlayCategory();
-
-    /**
-     * @see PackageInfo#overlayPriority
-     * @see R.styleable#AndroidManifestResourceOverlay_priority
-     * @hide
-     */
-    int getOverlayPriority();
-
-    /**
-     * @see PackageInfo#overlayTarget
-     * @see R.styleable#AndroidManifestResourceOverlay_targetPackage
-     * @hide
-     */
-    @Nullable
-    String getOverlayTarget();
-
-    /**
-     * @see PackageInfo#targetOverlayableName
-     * @see R.styleable#AndroidManifestResourceOverlay_targetName
-     * @hide
-     */
-    @Nullable
-    String getOverlayTargetOverlayableName();
-
-    /**
-     * Map of overlayable name to actor name.
-     * @hide
-     */
-    @NonNull
-    Map<String, String> getOverlayables();
-
-    /**
-     * @see PackageInfo#packageName
-     * @hide
-     */
-    String getPackageName();
-
-    /**
-     * @see ApplicationInfo#scanSourceDir
-     * @see ApplicationInfo#getCodePath
-     * @hide
-     */
-    @NonNull
-    String getPath();
-
-    /**
-     * @see ApplicationInfo#permission
-     * @see R.styleable#AndroidManifestApplication_permission
-     * @hide
-     */
-    @Nullable
-    String getPermission();
-
-    /**
-     * @see android.content.pm.PermissionGroupInfo
-     * @see R.styleable#AndroidManifestPermissionGroup
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedPermissionGroup> getPermissionGroups();
-
-    /**
-     * @see PermissionInfo
-     * @see PackageInfo#permissions
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedPermission> getPermissions();
-
-    /**
-     * Used to determine the default preferred handler of an {@link Intent}.
-     * <p>
-     * Map of component className to intent info inside that component. TODO(b/135203078): Is this
-     * actually used/working?
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<Pair<String, ParsedIntentInfo>> getPreferredActivityFilters();
-
-    /**
-     * @see ApplicationInfo#processName
-     * @see R.styleable#AndroidManifestApplication_process
-     * @hide
-     */
-    @NonNull
-    String getProcessName();
-
-    /**
-     * @see android.content.pm.ProcessInfo
-     * @see R.styleable#AndroidManifestProcess
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    Map<String, ParsedProcess> getProcesses();
-
-    /**
-     * Returns the properties set on the application
-     * @see R.styleable#AndroidManifestProperty
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    Map<String, PackageManager.Property> getProperties();
-
-    /**
-     * System protected broadcasts.
-     *
-     * @see R.styleable#AndroidManifestProtectedBroadcast
-     * @hide
-     */
-    @NonNull
-    List<String> getProtectedBroadcasts();
-
-    /**
-     * Set of {@link android.content.ContentProvider ContentProviders} parsed from the manifest.
-     * <p>
-     * This contains minimal system state and does not
-     * provide the same information as {@link ProviderInfo}. Effective state can be queried through
-     * {@link PackageManager#getProviderInfo(ComponentName, int)} or by
-     * combining state from from com.android.server.pm.pkg.PackageState and
-     * {@link PackageUserState}.
-     *
-     * @see ProviderInfo
-     * @see PackageInfo#providers
-     * @see R.styleable#AndroidManifestProvider
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedProvider> getProviders();
-
-    /**
-     * Intents that this package may query or require and thus requires visibility into.
-     *
-     * @see R.styleable#AndroidManifestQueriesIntent
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<Intent> getQueriesIntents();
-
-    /**
-     * Other packages that this package may query or require and thus requires visibility into.
-     *
-     * @see R.styleable#AndroidManifestQueriesPackage
-     * @hide
-     */
-    @NonNull
-    List<String> getQueriesPackages();
-
-    /**
-     * Authorities that this package may query or require and thus requires visibility into.
-     *
-     * @see R.styleable#AndroidManifestQueriesProvider
-     * @hide
-     */
-    @NonNull
-    Set<String> getQueriesProviders();
-
-    /**
-     * Set of {@link android.content.BroadcastReceiver BroadcastReceivers} parsed from the manifest.
-     * <p>
-     * This contains minimal system state and does not
-     * provide the same information as {@link ActivityInfo}. Effective state can be queried through
-     * {@link PackageManager#getReceiverInfo(ComponentName, int)} or by
-     * combining state from from com.android.server.pm.pkg.PackageState and
-     * {@link PackageUserState}.
-     * <p>
-     * Since they share several attributes, receivers are parsed as {@link ParsedActivity}, even
-     * though they represent different functionality.
-     * <p>
-     * TODO(b/135203078): Reconsider this and maybe make ParsedReceiver so it's not so confusing
-     *
-     * @see ActivityInfo
-     * @see PackageInfo#receivers
-     * @see R.styleable#AndroidManifestReceiver
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedActivity> getReceivers();
-
-    /**
-     * @see PackageInfo#reqFeatures
-     * @see R.styleable#AndroidManifestUsesFeature
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<FeatureInfo> getRequestedFeatures();
-
-    /**
-     * All the permissions declared. This is an effective set, and may include permissions
-     * transformed from split/migrated permissions from previous versions, so may not be exactly
-     * what the package declares in its manifest.
-     *
-     * @see PackageInfo#requestedPermissions
-     * @see R.styleable#AndroidManifestUsesPermission
-     * @hide
-     */
-    @NonNull
-    Set<String> getRequestedPermissions();
-
-    /**
-     * Whether or not the app requested explicitly resizeable Activities. Null value means nothing
-     * was explicitly requested.
-     *
-     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE
-     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_UNRESIZEABLE
-     * @see R.styleable#AndroidManifestApplication_resizeableActivity
-     * @hide
-     */
-    @Nullable
-    Boolean getResizeableActivity();
-
-    /**
-     * SHA-512 hash of the only APK that can be used to update a system package.
-     *
-     * @see R.styleable#AndroidManifestRestrictUpdate
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    byte[] getRestrictUpdateHash();
-
-    /**
-     * @see R.styleable#AndroidManifestSdkLibrary_versionMajor
-     * @hide
-     */
-    int getSdkLibVersionMajor();
-
-    /**
-     * @see ApplicationInfo#secondaryNativeLibraryDir
-     * @hide
-     */
-    @Nullable
-    String getSecondaryNativeLibraryDir();
-
-    /**
-     * Set of {@link android.app.Service Services} parsed from the manifest.
-     * <p>
-     * This contains minimal system state and does not
-     * provide the same information as {@link ServiceInfo}. Effective state can be queried through
-     * {@link PackageManager#getServiceInfo(ComponentName, int)} or by
-     * combining state from from com.android.server.pm.pkg.PackageState and
-     * {@link PackageUserState}.
-     *
-     * @see ServiceInfo
-     * @see PackageInfo#services
-     * @see R.styleable#AndroidManifestService
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedService> getServices();
-
-    /**
-     * The signature data of all APKs in this package, which must be exactly the same across the
-     * base and splits.
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    SigningDetails getSigningDetails();
-
-    /**
-     * @see ApplicationInfo#splitClassLoaderNames
-     * @see R.styleable#AndroidManifestApplication_classLoader
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    String[] getSplitClassLoaderNames();
-
-    /**
-     * @see ApplicationInfo#splitSourceDirs
-     * @see ApplicationInfo#getSplitCodePaths
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    String[] getSplitCodePaths();
-
-    /**
-     * @see ApplicationInfo#splitDependencies
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    SparseArray<int[]> getSplitDependencies();
-
-    /**
-     * Flags of any split APKs; ordered by parsed splitName
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    int[] getSplitFlags();
-
-    /**
-     * TODO(b/135203078): Move split stuff to an inner data class
-     *
-     * @see ApplicationInfo#splitNames
-     * @see PackageInfo#splitNames
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    String[] getSplitNames();
-
-    /**
-     * @see PackageInfo#splitRevisionCodes
-     * @hide
-     */
-    @Immutable.Ignore
-    @NonNull
-    int[] getSplitRevisionCodes();
-
-    /**
-     * @see ApplicationInfo#targetSandboxVersion
-     * @see R.styleable#AndroidManifest_targetSandboxVersion
-     * @hide
-     */
-    int getTargetSandboxVersion();
-
-    /**
-     * @see ApplicationInfo#taskAffinity
-     * @see R.styleable#AndroidManifestApplication_taskAffinity
-     * @hide
-     */
-    @Nullable
-    String getTaskAffinity();
-
-    /**
-     * This is an appId, the {@link ApplicationInfo#uid} if the user ID is
-     * {@link android.os.UserHandle#SYSTEM}.
-     *
-     * @deprecated Use {@link PackageState#getAppId()} instead.
-     * @hide
-     */
-    @Deprecated
-    int getUid();
-
-    /**
-     * For use with {@link com.android.server.pm.KeySetManagerService}. Parsed in {@link
-     * ParsingPackageUtils#TAG_KEY_SETS}.
-     *
-     * @see R.styleable#AndroidManifestUpgradeKeySet
-     * @hide
-     */
-    @NonNull
-    Set<String> getUpgradeKeySets();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesLibrary
-     * @hide
-     */
-    @NonNull
-    List<String> getUsesLibraries();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesNativeLibrary
-     * @hide
-     */
-    @NonNull
-    List<String> getUsesNativeLibraries();
-
-    /**
-     * Like {@link #getUsesLibraries()}, but marked optional by setting {@link
-     * R.styleable#AndroidManifestUsesLibrary_required} to false . Application is expected to handle
-     * absence manually.
-     *
-     * @see R.styleable#AndroidManifestUsesLibrary
-     * @hide
-     */
-    @NonNull
-    List<String> getUsesOptionalLibraries();
-
-    /**
-     * Like {@link #getUsesNativeLibraries()}, but marked optional by setting {@link
-     * R.styleable#AndroidManifestUsesNativeLibrary_required} to false . Application is expected to
-     * handle absence manually.
-     *
-     * @see R.styleable#AndroidManifestUsesNativeLibrary
-     * @hide
-     */
-    @NonNull
-    List<String> getUsesOptionalNativeLibraries();
-
-    /** @hide */
-    @Immutable.Ignore
-    @NonNull
-    List<ParsedUsesPermission> getUsesPermissions();
-
-    /**
-     * TODO(b/135203078): Move SDK library stuff to an inner data class
-     *
-     * @see R.styleable#AndroidManifestUsesSdkLibrary
-     * @hide
-     */
-    @NonNull
-    List<String> getUsesSdkLibraries();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSdkLibrary_certDigest
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    String[][] getUsesSdkLibrariesCertDigests();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSdkLibrary_versionMajor
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    long[] getUsesSdkLibrariesVersionsMajor();
-
-    /**
-     * TODO(b/135203078): Move static library stuff to an inner data class
-     *
-     * @see R.styleable#AndroidManifestUsesStaticLibrary
-     * @hide
-     */
-    @NonNull
-    List<String> getUsesStaticLibraries();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesStaticLibrary_certDigest
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    String[][] getUsesStaticLibrariesCertDigests();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesStaticLibrary_version
-     * @hide
-     */
-    @Immutable.Ignore
-    @Nullable
-    long[] getUsesStaticLibrariesVersions();
-
-    /**
-     * @see ApplicationInfo#volumeUuid
-     * @hide
-     */
-    @Nullable
-    String getVolumeUuid();
-
-    /** @hide */
-    boolean hasPreserveLegacyExternalStorage();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_EXT_REQUEST_FOREGROUND_SERVICE_EXEMPTION
-     * @see R.styleable#AndroidManifestApplication_requestForegroundServiceExemption
-     * @hide
-     */
-    boolean hasRequestForegroundServiceExemption();
-
-    /**
-     * @see ApplicationInfo#getRequestRawExternalStorageAccess()
-     * @see R.styleable#AndroidManifestApplication_requestRawExternalStorageAccess
-     * @hide
-     */
-    Boolean hasRequestRawExternalStorageAccess();
-
-    /** @hide */
-    boolean isApex();
-
-
-    /**
-     * @see R.styleable#AndroidManifestApplication_updatableSystem
-     * @hide
-     */
-    boolean isUpdatableSystem();
-
-    /**
-     * @see ApplicationInfo#enabled
-     * @see R.styleable#AndroidManifestApplication_enabled
-     * @hide
-     */
-    boolean isEnabled();
-
-    /**
-     * @see ApplicationInfo#FLAG_EXTERNAL_STORAGE
-     * @hide
-     */
-    boolean isExternalStorage();
-
-    /**
-     * @see ApplicationInfo#FLAG_IS_GAME
-     * @see R.styleable#AndroidManifestApplication_isGame
-     * @hide
-     */
-    @Deprecated
-    boolean isGame();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_HAS_DOMAIN_URLS
-     * @see R.styleable#AndroidManifestIntentFilter
-     * @hide
-     */
-    boolean isHasDomainUrls();
-
-    /**
-     * @see PackageInfo#mOverlayIsStatic
-     * @hide
-     */
-    boolean isOverlayIsStatic();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE
-     * @see R.styleable#AndroidManifestActivity_directBootAware
-     * @see R.styleable#AndroidManifestProvider_directBootAware
-     * @see R.styleable#AndroidManifestReceiver_directBootAware
-     * @see R.styleable#AndroidManifestService_directBootAware
-     * @hide
-     */
-    boolean isPartiallyDirectBootAware();
-
-    /**
-     * If omitted from manifest, returns true if {@link #getTargetSdkVersion()} >= {@link
-     * android.os.Build.VERSION_CODES#DONUT}.
-     *
-     * @see R.styleable#AndroidManifestSupportsScreens_resizeable
-     * @see ApplicationInfo#FLAG_RESIZEABLE_FOR_SCREENS
-     * @hide
-     */
-    boolean isResizeable();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION
-     * @see R.styleable#AppWidgetProviderInfo_resizeMode
-     * @hide
-     */
-    boolean isResizeableActivityViaSdkVersion();
-
-    /**
-     * True means that this package/app contains an SDK library.
-     * @see R.styleable#AndroidManifestSdkLibrary
-     * @hide
-     */
-    boolean isSdkLibrary();
-
-    /**
-     * @see ApplicationInfo#PRIVATE_FLAG_STATIC_SHARED_LIBRARY
-     * @see R.styleable#AndroidManifestStaticLibrary
-     * @hide
-     */
-    boolean isStaticSharedLibrary();
-
-    /**
-     * @see PackageInfo#isStub
-     * @hide
-     */
-    boolean isStub();
-
-    /**
-     * Set if the any of components are visible to instant applications.
-     *
-     * @see R.styleable#AndroidManifestActivity_visibleToInstantApps
-     * @see R.styleable#AndroidManifestProvider_visibleToInstantApps
-     * @see R.styleable#AndroidManifestService_visibleToInstantApps
-     * @hide
-     */
-    boolean isVisibleToInstantApps();
-}
diff --git a/services/core/java/com/android/server/pm/pkg/AndroidPackageSplit.java b/services/core/java/com/android/server/pm/pkg/AndroidPackageSplit.java
deleted file mode 100644
index 9024c27..0000000
--- a/services/core/java/com/android/server/pm/pkg/AndroidPackageSplit.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.pm.pkg;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.SystemApi;
-import android.processor.immutability.Immutable;
-
-import com.android.internal.R;
-
-import java.util.List;
-
-/**
- * Representation of the parsed state of a single split APK. Note this includes the base.apk.
- *
- * The information here is very minimal, mostly used for loading a specific class, and most
- * important state is collected across all splits for a package into the parent
- * {@link AndroidPackage} values.
- *
- * @hide
- */
-@SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
-@Immutable
-public interface AndroidPackageSplit {
-
-    /**
-     * @return The unique name given to the split, or null if this is the base.
-     */
-    @Nullable
-    String getName();
-
-    /**
-     * @return Physical location of the split APK on disk, pointing to a single file with the .apk
-     * extension.
-     */
-    @NonNull
-    String getPath();
-
-    /**
-     * @see R.styleable#AndroidManifest_revisionCode
-     */
-    int getRevisionCode();
-
-    /**
-     * @see R.styleable#AndroidManifestApplication_hasCode
-     */
-    boolean isHasCode();
-
-    /**
-     * @see R.styleable#AndroidManifestApplication_classLoader
-     */
-    @Nullable
-    String getClassLoaderName();
-
-    /**
-     * @see R.styleable#AndroidManifestUsesSplit
-     */
-    @NonNull
-    List<AndroidPackageSplit> getDependencies();
-}
diff --git a/services/core/java/com/android/server/pm/pkg/AndroidPackageSplitImpl.java b/services/core/java/com/android/server/pm/pkg/AndroidPackageSplitImpl.java
deleted file mode 100644
index c0f2c25..0000000
--- a/services/core/java/com/android/server/pm/pkg/AndroidPackageSplitImpl.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.pm.pkg;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.content.pm.ApplicationInfo;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-
-/** @hide */
-public class AndroidPackageSplitImpl implements AndroidPackageSplit {
-
-    @Nullable
-    private final String mName;
-    @NonNull
-    private final String mPath;
-    private final int mRevisionCode;
-    private final int mFlags;
-    @Nullable
-    private final String mClassLoaderName;
-
-    @NonNull
-    private List<AndroidPackageSplit> mDependencies = Collections.emptyList();
-
-    public AndroidPackageSplitImpl(@Nullable String name, @NonNull String path, int revisionCode,
-            int flags, @Nullable String classLoaderName) {
-        mName = name;
-        mPath = path;
-        mRevisionCode = revisionCode;
-        mFlags = flags;
-        mClassLoaderName = classLoaderName;
-    }
-
-    public void fillDependencies(@NonNull List<AndroidPackageSplit> splits) {
-        if (!mDependencies.isEmpty()) {
-            throw new IllegalStateException("Cannot fill split dependencies more than once");
-        }
-        mDependencies = splits;
-    }
-
-    @Nullable
-    @Override
-    public String getName() {
-        return mName;
-    }
-
-    @NonNull
-    @Override
-    public String getPath() {
-        return mPath;
-    }
-
-    @Override
-    public int getRevisionCode() {
-        return mRevisionCode;
-    }
-
-    @Override
-    public boolean isHasCode() {
-        return (mFlags & ApplicationInfo.FLAG_HAS_CODE) != 0;
-    }
-
-    @Nullable
-    @Override
-    public String getClassLoaderName() {
-        return mClassLoaderName;
-    }
-
-    @NonNull
-    @Override
-    public List<AndroidPackageSplit> getDependencies() {
-        return mDependencies;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof AndroidPackageSplitImpl)) return false;
-        AndroidPackageSplitImpl that = (AndroidPackageSplitImpl) o;
-        var fieldsEqual = mRevisionCode == that.mRevisionCode && mFlags == that.mFlags && Objects.equals(
-                mName, that.mName) && Objects.equals(mPath, that.mPath)
-                && Objects.equals(mClassLoaderName, that.mClassLoaderName);
-
-        if (!fieldsEqual) return false;
-        if (mDependencies.size() != that.mDependencies.size()) return false;
-
-        // Should be impossible, but to avoid circular dependencies,
-        // only search 1 level deep using split name
-        for (int index = 0; index < mDependencies.size(); index++) {
-            if (!Objects.equals(mDependencies.get(index).getName(),
-                    that.mDependencies.get(index).getName())) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    @Override
-    public int hashCode() {
-        // Should be impossible, but to avoid circular dependencies,
-        // only search 1 level deep using split name
-        var dependenciesHash = Objects.hash(mName, mPath, mRevisionCode, mFlags, mClassLoaderName);
-        for (int index = 0; index < mDependencies.size(); index++) {
-            var name = mDependencies.get(index).getName();
-            dependenciesHash = 31 * dependenciesHash + (name == null ? 0 : name.hashCode());
-        }
-        return dependenciesHash;
-    }
-}