Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d17ac0a authored by Winson Chiu's avatar Winson Chiu Committed by Android (Google) Code Review
Browse files

Merge "Expose some package APIs for ART"

parents 605056bb 58486771
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -49,7 +49,7 @@ public final class SharedLibraryInfo implements Parcelable {
            TYPE_SDK_PACKAGE,
            TYPE_SDK_PACKAGE,
    })
    })
    @Retention(RetentionPolicy.SOURCE)
    @Retention(RetentionPolicy.SOURCE)
    @interface Type{}
    public @interface Type{}


    /**
    /**
     * Shared library type: this library is a part of the OS
     * Shared library type: this library is a part of the OS
+72 −0
Original line number Original line Diff line number Diff line
@@ -48,10 +48,82 @@ package com.android.server.pm {


  public interface PackageManagerLocal {
  public interface PackageManagerLocal {
    method public void reconcileSdkData(@Nullable String, @NonNull String, @NonNull java.util.List<java.lang.String>, int, int, int, @NonNull String, int) throws java.io.IOException;
    method public void reconcileSdkData(@Nullable String, @NonNull String, @NonNull java.util.List<java.lang.String>, int, int, int, @NonNull String, int) throws java.io.IOException;
    method @NonNull public com.android.server.pm.PackageManagerLocal.FilteredSnapshot withFilteredSnapshot();
    method @NonNull public com.android.server.pm.PackageManagerLocal.FilteredSnapshot withFilteredSnapshot(int, @NonNull android.os.UserHandle);
    method @NonNull public com.android.server.pm.PackageManagerLocal.UnfilteredSnapshot withUnfilteredSnapshot();
    field public static final int FLAG_STORAGE_CE = 2; // 0x2
    field public static final int FLAG_STORAGE_CE = 2; // 0x2
    field public static final int FLAG_STORAGE_DE = 1; // 0x1
    field public static final int FLAG_STORAGE_DE = 1; // 0x1
  }
  }


  public static interface PackageManagerLocal.FilteredSnapshot extends java.lang.AutoCloseable {
    method public void close();
    method public void forAllPackageStates(@NonNull java.util.function.Consumer<com.android.server.pm.pkg.PackageState>);
    method @Nullable public com.android.server.pm.pkg.PackageState getPackageState(@NonNull String);
  }

  public static interface PackageManagerLocal.UnfilteredSnapshot extends java.lang.AutoCloseable {
    method public void close();
    method @NonNull public com.android.server.pm.PackageManagerLocal.FilteredSnapshot filtered(int, @NonNull android.os.UserHandle);
    method @NonNull public java.util.Map<java.lang.String,com.android.server.pm.pkg.PackageState> getPackageStates();
  }

}

package com.android.server.pm.pkg {

  public interface AndroidPackage {
    method @NonNull public java.util.List<java.lang.String> getLibraryNames();
    method @Nullable public String getSdkLibraryName();
    method @NonNull public java.util.List<com.android.server.pm.pkg.AndroidPackageSplit> getSplits();
    method @Nullable public String getStaticSharedLibraryName();
    method public int getTargetSdkVersion();
    method public boolean isDebuggable();
    method public boolean isIsolatedSplitLoading();
    method public boolean isSignedWithPlatformKey();
    method public boolean isUseEmbeddedDex();
    method public boolean isUsesNonSdkApi();
    method public boolean isVmSafeMode();
  }

  public interface AndroidPackageSplit {
    method @Nullable public String getClassLoaderName();
    method @NonNull public java.util.List<com.android.server.pm.pkg.AndroidPackageSplit> getDependencies();
    method @Nullable public String getName();
    method @NonNull public String getPath();
    method public int getRevisionCode();
    method public boolean isHasCode();
  }

  public interface PackageState {
    method @Nullable public com.android.server.pm.pkg.AndroidPackage getAndroidPackage();
    method public int getAppId();
    method @NonNull public String getPackageName();
    method @Nullable public String getPrimaryCpuAbi();
    method @Nullable public String getSecondaryCpuAbi();
    method @NonNull public com.android.server.pm.pkg.PackageUserState getStateForUser(@NonNull android.os.UserHandle);
    method @NonNull public java.util.List<com.android.server.pm.pkg.SharedLibrary> getUsesLibraries();
    method public boolean isPrivileged();
    method public boolean isSystem();
    method public boolean isUpdatedSystemApp();
  }

  public interface PackageUserState {
    method public boolean isInstalled();
  }

  public interface SharedLibrary {
    method @NonNull public java.util.List<java.lang.String> getAllCodePaths();
    method @NonNull public android.content.pm.VersionedPackage getDeclaringPackage();
    method @NonNull public java.util.List<com.android.server.pm.pkg.SharedLibrary> getDependencies();
    method @NonNull public java.util.List<android.content.pm.VersionedPackage> getDependentPackages();
    method @Nullable public String getName();
    method @Nullable public String getPackageName();
    method @Nullable public String getPath();
    method public int getType();
    method public long getVersion();
    method public boolean isNative();
  }

}
}


package com.android.server.pm.snapshot {
package com.android.server.pm.snapshot {
+2 −4
Original line number Original line Diff line number Diff line
@@ -95,8 +95,6 @@ public interface PackageManagerLocal {
     * <p/>
     * <p/>
     * The snapshot assumes the caller is acting on behalf of the system and will not filter any
     * The snapshot assumes the caller is acting on behalf of the system and will not filter any
     * results.
     * results.
     *
     * @hide
     */
     */
    @NonNull
    @NonNull
    UnfilteredSnapshot withUnfilteredSnapshot();
    UnfilteredSnapshot withUnfilteredSnapshot();
@@ -106,7 +104,6 @@ public interface PackageManagerLocal {
     * caller through {@link Binder#getCallingUid()} and {@link Binder#getCallingUserHandle()}.
     * caller through {@link Binder#getCallingUid()} and {@link Binder#getCallingUserHandle()}.
     *
     *
     * @see #withFilteredSnapshot(int, UserHandle)
     * @see #withFilteredSnapshot(int, UserHandle)
     * @hide
     */
     */
    @NonNull
    @NonNull
    FilteredSnapshot withFilteredSnapshot();
    FilteredSnapshot withFilteredSnapshot();
@@ -121,7 +118,6 @@ public interface PackageManagerLocal {
     *                   and permissions, including cross-user enforcement.
     *                   and permissions, including cross-user enforcement.
     * @param user       The user to query as, should usually be the user that the caller was
     * @param user       The user to query as, should usually be the user that the caller was
     *                   invoked from.
     *                   invoked from.
     * @hide
     */
     */
    @SuppressWarnings("UserHandleName") // Ignore naming convention, not invoking action as user
    @SuppressWarnings("UserHandleName") // Ignore naming convention, not invoking action as user
    @NonNull
    @NonNull
@@ -130,6 +126,7 @@ public interface PackageManagerLocal {
    /**
    /**
     * @hide
     * @hide
     */
     */
    @SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
    interface UnfilteredSnapshot extends AutoCloseable {
    interface UnfilteredSnapshot extends AutoCloseable {


        /**
        /**
@@ -160,6 +157,7 @@ public interface PackageManagerLocal {
    /**
    /**
     * @hide
     * @hide
     */
     */
    @SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
    interface FilteredSnapshot extends AutoCloseable {
    interface FilteredSnapshot extends AutoCloseable {


        /**
        /**
+22 −2
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.server.pm.snapshot.PackageDataSnapshot;


import java.io.IOException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Consumer;
@@ -82,6 +83,7 @@ public class PackageManagerLocalImpl implements PackageManagerLocal {
            mSnapshot = (Computer) snapshot;
            mSnapshot = (Computer) snapshot;
        }
        }


        @CallSuper
        @Override
        @Override
        public void close() {
        public void close() {
            mClosed = true;
            mClosed = true;
@@ -100,6 +102,9 @@ public class PackageManagerLocalImpl implements PackageManagerLocal {
    private static class UnfilteredSnapshotImpl extends BaseSnapshotImpl implements
    private static class UnfilteredSnapshotImpl extends BaseSnapshotImpl implements
            UnfilteredSnapshot {
            UnfilteredSnapshot {


        @Nullable
        private Map<String, PackageState> mCachedUnmodifiablePackageStates;

        private UnfilteredSnapshotImpl(@NonNull PackageDataSnapshot snapshot) {
        private UnfilteredSnapshotImpl(@NonNull PackageDataSnapshot snapshot) {
            super(snapshot);
            super(snapshot);
        }
        }
@@ -115,8 +120,17 @@ public class PackageManagerLocalImpl implements PackageManagerLocal {
        public Map<String, PackageState> getPackageStates() {
        public Map<String, PackageState> getPackageStates() {
            checkClosed();
            checkClosed();


            //noinspection unchecked, RedundantCast
            if (mCachedUnmodifiablePackageStates == null) {
            return (Map<String, PackageState>) (Map<?, ?>) mSnapshot.getPackageStates();
                mCachedUnmodifiablePackageStates =
                        Collections.unmodifiableMap(mSnapshot.getPackageStates());
            }
            return mCachedUnmodifiablePackageStates;
        }

        @Override
        public void close() {
            super.close();
            mCachedUnmodifiablePackageStates = null;
        }
        }
    }
    }


@@ -152,6 +166,12 @@ public class PackageManagerLocalImpl implements PackageManagerLocal {
            super.checkClosed();
            super.checkClosed();
        }
        }


        @Override
        public void close() {
            super.close();
            mFilteredPackageStates = null;
        }

        @Nullable
        @Nullable
        @Override
        @Override
        public PackageState getPackageState(@NonNull String packageName) {
        public PackageState getPackageState(@NonNull String packageName) {
+91 −5
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.server.pm.pkg;


import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Intent;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo;
@@ -58,8 +59,27 @@ import java.util.List;
import java.util.Map;
import java.util.Map;
import java.util.Set;
import java.util.Set;


/** @hide */
/**
//@SystemApi(client = SystemApi.Client.SYSTEM_SERVER)
 * 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
@Immutable
public interface AndroidPackage {
public interface AndroidPackage {


@@ -98,11 +118,13 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_DEBUGGABLE
     * @see ApplicationInfo#FLAG_DEBUGGABLE
     * @see R.styleable#AndroidManifestApplication_debuggable
     */
     */
    boolean isDebuggable();
    boolean isDebuggable();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_ISOLATED_SPLIT_LOADING
     * @see ApplicationInfo#PRIVATE_FLAG_ISOLATED_SPLIT_LOADING
     * @see R.styleable#AndroidManifest_isolatedSplits
     */
     */
    boolean isIsolatedSplitLoading();
    boolean isIsolatedSplitLoading();


@@ -113,16 +135,19 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_USE_EMBEDDED_DEX
     * @see ApplicationInfo#PRIVATE_FLAG_USE_EMBEDDED_DEX
     * @see R.styleable#AndroidManifestApplication_useEmbeddedDex
     */
     */
    boolean isUseEmbeddedDex();
    boolean isUseEmbeddedDex();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_USES_NON_SDK_API
     * @see ApplicationInfo#PRIVATE_FLAG_USES_NON_SDK_API
     * @see R.styleable#AndroidManifestApplication_usesNonSdkApi
     */
     */
    boolean isUsesNonSdkApi();
    boolean isUsesNonSdkApi();


    /**
    /**
     * @see ApplicationInfo#FLAG_VM_SAFE_MODE
     * @see ApplicationInfo#FLAG_VM_SAFE_MODE
     * @see R.styleable#AndroidManifestApplication_vmSafeMode
     */
     */
    boolean isVmSafeMode();
    boolean isVmSafeMode();


@@ -147,6 +172,7 @@ public interface AndroidPackage {
     *
     *
     * @see ActivityInfo
     * @see ActivityInfo
     * @see PackageInfo#activities
     * @see PackageInfo#activities
     * @see R.styleable#AndroidManifestActivity
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -179,7 +205,10 @@ public interface AndroidPackage {
    @Nullable
    @Nullable
    String getAppComponentFactory();
    String getAppComponentFactory();


    /** @hide */
    /**
     * @see R.styleable#AndroidManifestAttribution
     * @hide
     */
    @Immutable.Ignore
    @Immutable.Ignore
    @NonNull
    @NonNull
    List<ParsedAttribution> getAttributions();
    List<ParsedAttribution> getAttributions();
@@ -188,6 +217,7 @@ public interface AndroidPackage {
     * @see ApplicationInfo#AUTO_REVOKE_ALLOWED
     * @see ApplicationInfo#AUTO_REVOKE_ALLOWED
     * @see ApplicationInfo#AUTO_REVOKE_DISCOURAGED
     * @see ApplicationInfo#AUTO_REVOKE_DISCOURAGED
     * @see ApplicationInfo#AUTO_REVOKE_DISALLOWED
     * @see ApplicationInfo#AUTO_REVOKE_DISALLOWED
     * @see R.styleable#AndroidManifestApplication_autoRevokePermissions
     * @hide
     * @hide
     */
     */
    int getAutoRevokePermissions();
    int getAutoRevokePermissions();
@@ -217,6 +247,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see PackageInfo#baseRevisionCode
     * @see PackageInfo#baseRevisionCode
     * @see R.styleable#AndroidManifest_revisionCode
     * @hide
     * @hide
     */
     */
    int getBaseRevisionCode();
    int getBaseRevisionCode();
@@ -338,6 +369,7 @@ public interface AndroidPackage {
    /**
    /**
     * @see InstrumentationInfo
     * @see InstrumentationInfo
     * @see PackageInfo#instrumentation
     * @see PackageInfo#instrumentation
     * @see R.styleable#AndroidManifestInstrumentation
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -396,6 +428,8 @@ public interface AndroidPackage {


    /**
    /**
     * @see PackageInfo#getLongVersionCode()
     * @see PackageInfo#getLongVersionCode()
     * @see R.styleable#AndroidManifest_versionCode
     * @see R.styleable#AndroidManifest_versionCodeMajor
     * @hide
     * @hide
     */
     */
    long getLongVersionCode();
    long getLongVersionCode();
@@ -439,13 +473,17 @@ public interface AndroidPackage {


    /**
    /**
     * TODO(b/135203078): Make all the Bundles immutable (and non-null by shared empty reference?)
     * TODO(b/135203078): Make all the Bundles immutable (and non-null by shared empty reference?)
     * @see R.styleable#AndroidManifestMetaData
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
    @Nullable
    @Nullable
    Bundle getMetaData();
    Bundle getMetaData();


    /** @hide */
    /**
     * @see R.attr#mimeGroup
     * @hide
     */
    @Nullable
    @Nullable
    Set<String> getMimeGroups();
    Set<String> getMimeGroups();


@@ -583,6 +621,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see android.content.pm.PermissionGroupInfo
     * @see android.content.pm.PermissionGroupInfo
     * @see R.styleable#AndroidManifestPermissionGroup
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -619,6 +658,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see android.content.pm.ProcessInfo
     * @see android.content.pm.ProcessInfo
     * @see R.styleable#AndroidManifestProcess
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -627,6 +667,7 @@ public interface AndroidPackage {


    /**
    /**
     * Returns the properties set on the application
     * Returns the properties set on the application
     * @see R.styleable#AndroidManifestProperty
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -653,6 +694,7 @@ public interface AndroidPackage {
     *
     *
     * @see ProviderInfo
     * @see ProviderInfo
     * @see PackageInfo#providers
     * @see PackageInfo#providers
     * @see R.styleable#AndroidManifestProvider
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -703,6 +745,7 @@ public interface AndroidPackage {
     *
     *
     * @see ActivityInfo
     * @see ActivityInfo
     * @see PackageInfo#receivers
     * @see PackageInfo#receivers
     * @see R.styleable#AndroidManifestReceiver
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -751,6 +794,7 @@ public interface AndroidPackage {
     *
     *
     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE
     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE
     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_UNRESIZEABLE
     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_UNRESIZEABLE
     * @see R.styleable#AndroidManifestApplication_resizeableActivity
     * @hide
     * @hide
     */
     */
    @Nullable
    @Nullable
@@ -807,6 +851,7 @@ public interface AndroidPackage {
     *
     *
     * @see ServiceInfo
     * @see ServiceInfo
     * @see PackageInfo#services
     * @see PackageInfo#services
     * @see R.styleable#AndroidManifestService
     * @hide
     * @hide
     */
     */
    @Immutable.Ignore
    @Immutable.Ignore
@@ -1050,7 +1095,11 @@ public interface AndroidPackage {
    @Nullable
    @Nullable
    String getVolumeUuid();
    String getVolumeUuid();


    /** @hide */
    /**
     * @see ApplicationInfo#zygotePreloadName
     * @see R.styleable#AndroidManifestApplication_zygotePreloadName
     * @hide
     */
    @Nullable
    @Nullable
    String getZygotePreloadName();
    String getZygotePreloadName();


@@ -1073,36 +1122,42 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_AUDIO_PLAYBACK_CAPTURE
     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_AUDIO_PLAYBACK_CAPTURE
     * @see R.styleable#AndroidManifestApplication_allowAudioPlaybackCapture
     * @hide
     * @hide
     */
     */
    boolean isAllowAudioPlaybackCapture();
    boolean isAllowAudioPlaybackCapture();


    /**
    /**
     * @see ApplicationInfo#FLAG_ALLOW_BACKUP
     * @see ApplicationInfo#FLAG_ALLOW_BACKUP
     * @see R.styleable#AndroidManifestApplication_allowBackup
     * @hide
     * @hide
     */
     */
    boolean isAllowBackup();
    boolean isAllowBackup();


    /**
    /**
     * @see ApplicationInfo#FLAG_ALLOW_CLEAR_USER_DATA
     * @see ApplicationInfo#FLAG_ALLOW_CLEAR_USER_DATA
     * @see R.styleable#AndroidManifestApplication_allowClearUserData
     * @hide
     * @hide
     */
     */
    boolean isAllowClearUserData();
    boolean isAllowClearUserData();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_CLEAR_USER_DATA_ON_FAILED_RESTORE
     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_CLEAR_USER_DATA_ON_FAILED_RESTORE
     * @see R.styleable#AndroidManifestApplication_allowClearUserDataOnFailedRestore
     * @hide
     * @hide
     */
     */
    boolean isAllowClearUserDataOnFailedRestore();
    boolean isAllowClearUserDataOnFailedRestore();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING
     * @see ApplicationInfo#PRIVATE_FLAG_ALLOW_NATIVE_HEAP_POINTER_TAGGING
     * @see R.styleable#AndroidManifestApplication_allowNativeHeapPointerTagging
     * @hide
     * @hide
     */
     */
    boolean isAllowNativeHeapPointerTagging();
    boolean isAllowNativeHeapPointerTagging();


    /**
    /**
     * @see ApplicationInfo#FLAG_ALLOW_TASK_REPARENTING
     * @see ApplicationInfo#FLAG_ALLOW_TASK_REPARENTING
     * @see R.styleable#AndroidManifestApplication_allowTaskReparenting
     * @hide
     * @hide
     */
     */
    boolean isAllowTaskReparenting();
    boolean isAllowTaskReparenting();
@@ -1122,18 +1177,21 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_BACKUP_IN_FOREGROUND
     * @see ApplicationInfo#PRIVATE_FLAG_BACKUP_IN_FOREGROUND
     * @see R.styleable#AndroidManifestApplication_backupInForeground
     * @hide
     * @hide
     */
     */
    boolean isBackupInForeground();
    boolean isBackupInForeground();


    /**
    /**
     * @see ApplicationInfo#FLAG_HARDWARE_ACCELERATED
     * @see ApplicationInfo#FLAG_HARDWARE_ACCELERATED
     * @see R.styleable#AndroidManifestApplication_hardwareAccelerated
     * @hide
     * @hide
     */
     */
    boolean isBaseHardwareAccelerated();
    boolean isBaseHardwareAccelerated();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_CANT_SAVE_STATE
     * @see ApplicationInfo#PRIVATE_FLAG_CANT_SAVE_STATE
     * @see R.styleable#AndroidManifestApplication_cantSaveState
     * @hide
     * @hide
     */
     */
    boolean isCantSaveState();
    boolean isCantSaveState();
@@ -1146,18 +1204,21 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#crossProfile
     * @see ApplicationInfo#crossProfile
     * @see R.styleable#AndroidManifestApplication_crossProfile
     * @hide
     * @hide
     */
     */
    boolean isCrossProfile();
    boolean isCrossProfile();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE
     * @see ApplicationInfo#PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE
     * @see R.styleable#AndroidManifestApplication_defaultToDeviceProtectedStorage
     * @hide
     * @hide
     */
     */
    boolean isDefaultToDeviceProtectedStorage();
    boolean isDefaultToDeviceProtectedStorage();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_DIRECT_BOOT_AWARE
     * @see ApplicationInfo#PRIVATE_FLAG_DIRECT_BOOT_AWARE
     * @see R.styleable#AndroidManifestApplication_directBootAware
     * @hide
     * @hide
     */
     */
    boolean isDirectBootAware();
    boolean isDirectBootAware();
@@ -1177,6 +1238,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_EXTRACT_NATIVE_LIBS
     * @see ApplicationInfo#FLAG_EXTRACT_NATIVE_LIBS
     * @see R.styleable#AndroidManifestApplication_extractNativeLibs
     * @hide
     * @hide
     */
     */
    boolean isExtractNativeLibs();
    boolean isExtractNativeLibs();
@@ -1195,12 +1257,14 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_FULL_BACKUP_ONLY
     * @see ApplicationInfo#FLAG_FULL_BACKUP_ONLY
     * @see R.styleable#AndroidManifestApplication_fullBackupOnly
     * @hide
     * @hide
     */
     */
    boolean isFullBackupOnly();
    boolean isFullBackupOnly();


    /**
    /**
     * @see ApplicationInfo#FLAG_IS_GAME
     * @see ApplicationInfo#FLAG_IS_GAME
     * @see R.styleable#AndroidManifestApplication_isGame
     * @hide
     * @hide
     */
     */
    @Deprecated
    @Deprecated
@@ -1208,30 +1272,35 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_HAS_CODE
     * @see ApplicationInfo#FLAG_HAS_CODE
     * @see R.styleable#AndroidManifestApplication_hasCode
     * @hide
     * @hide
     */
     */
    boolean isHasCode();
    boolean isHasCode();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_HAS_DOMAIN_URLS
     * @see ApplicationInfo#PRIVATE_FLAG_HAS_DOMAIN_URLS
     * @see R.styleable#AndroidManifestIntentFilter
     * @hide
     * @hide
     */
     */
    boolean isHasDomainUrls();
    boolean isHasDomainUrls();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_HAS_FRAGILE_USER_DATA
     * @see ApplicationInfo#PRIVATE_FLAG_HAS_FRAGILE_USER_DATA
     * @see R.styleable#AndroidManifestApplication_hasFragileUserData
     * @hide
     * @hide
     */
     */
    boolean isHasFragileUserData();
    boolean isHasFragileUserData();


    /**
    /**
     * @see ApplicationInfo#FLAG_KILL_AFTER_RESTORE
     * @see ApplicationInfo#FLAG_KILL_AFTER_RESTORE
     * @see R.styleable#AndroidManifestApplication_killAfterRestore
     * @hide
     * @hide
     */
     */
    boolean isKillAfterRestore();
    boolean isKillAfterRestore();


    /**
    /**
     * @see ApplicationInfo#FLAG_LARGE_HEAP
     * @see ApplicationInfo#FLAG_LARGE_HEAP
     * @see R.styleable#AndroidManifestApplication_largeHeap
     * @hide
     * @hide
     */
     */
    boolean isLargeHeap();
    boolean isLargeHeap();
@@ -1247,6 +1316,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_MULTIARCH
     * @see ApplicationInfo#FLAG_MULTIARCH
     * @see R.styleable#AndroidManifestApplication_multiArch
     * @hide
     * @hide
     */
     */
    boolean isMultiArch();
    boolean isMultiArch();
@@ -1278,6 +1348,7 @@ public interface AndroidPackage {
    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_IS_RESOURCE_OVERLAY
     * @see ApplicationInfo#PRIVATE_FLAG_IS_RESOURCE_OVERLAY
     * @see ApplicationInfo#isResourceOverlay()
     * @see ApplicationInfo#isResourceOverlay()
     * @see R.styleable#AndroidManifestResourceOverlay
     * @hide
     * @hide
     */
     */
    boolean isOverlay();
    boolean isOverlay();
@@ -1290,12 +1361,17 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE
     * @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
     * @hide
     */
     */
    boolean isPartiallyDirectBootAware();
    boolean isPartiallyDirectBootAware();


    /**
    /**
     * @see ApplicationInfo#FLAG_PERSISTENT
     * @see ApplicationInfo#FLAG_PERSISTENT
     * @see R.styleable#AndroidManifestApplication_persistent
     * @hide
     * @hide
     */
     */
    boolean isPersistent();
    boolean isPersistent();
@@ -1314,18 +1390,21 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_EXT_PROFILEABLE
     * @see ApplicationInfo#PRIVATE_FLAG_EXT_PROFILEABLE
     * @see R.styleable#AndroidManifestProfileable
     * @hide
     * @hide
     */
     */
    boolean isProfileable();
    boolean isProfileable();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_PROFILEABLE_BY_SHELL
     * @see ApplicationInfo#PRIVATE_FLAG_PROFILEABLE_BY_SHELL
     * @see R.styleable#AndroidManifestProfileable_shell
     * @hide
     * @hide
     */
     */
    boolean isProfileableByShell();
    boolean isProfileableByShell();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_REQUEST_LEGACY_EXTERNAL_STORAGE
     * @see ApplicationInfo#PRIVATE_FLAG_REQUEST_LEGACY_EXTERNAL_STORAGE
     * @see R.styleable#AndroidManifestApplication_requestLegacyExternalStorage
     * @hide
     * @hide
     */
     */
    boolean isRequestLegacyExternalStorage();
    boolean isRequestLegacyExternalStorage();
@@ -1358,24 +1437,28 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION
     * @see ApplicationInfo#PRIVATE_FLAG_ACTIVITIES_RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION
     * @see R.styleable#AppWidgetProviderInfo_resizeMode
     * @hide
     * @hide
     */
     */
    boolean isResizeableActivityViaSdkVersion();
    boolean isResizeableActivityViaSdkVersion();


    /**
    /**
     * @see ApplicationInfo#FLAG_RESTORE_ANY_VERSION
     * @see ApplicationInfo#FLAG_RESTORE_ANY_VERSION
     * @see R.styleable#AndroidManifestApplication_restoreAnyVersion
     * @hide
     * @hide
     */
     */
    boolean isRestoreAnyVersion();
    boolean isRestoreAnyVersion();


    /**
    /**
     * True means that this package/app contains an SDK library.
     * True means that this package/app contains an SDK library.
     * @see R.styleable#AndroidManifestSdkLibrary
     * @hide
     * @hide
     */
     */
    boolean isSdkLibrary();
    boolean isSdkLibrary();


    /**
    /**
     * @see ApplicationInfo#PRIVATE_FLAG_STATIC_SHARED_LIBRARY
     * @see ApplicationInfo#PRIVATE_FLAG_STATIC_SHARED_LIBRARY
     * @see R.styleable#AndroidManifestStaticLibrary
     * @hide
     * @hide
     */
     */
    boolean isStaticSharedLibrary();
    boolean isStaticSharedLibrary();
@@ -1417,6 +1500,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_SUPPORTS_RTL
     * @see ApplicationInfo#FLAG_SUPPORTS_RTL
     * @see R.styleable#AndroidManifestApplication_supportsRtl
     * @hide
     * @hide
     */
     */
    boolean isSupportsRtl();
    boolean isSupportsRtl();
@@ -1445,6 +1529,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_TEST_ONLY
     * @see ApplicationInfo#FLAG_TEST_ONLY
     * @see R.styleable#AndroidManifestApplication_testOnly
     * @hide
     * @hide
     */
     */
    boolean isTestOnly();
    boolean isTestOnly();
@@ -1461,6 +1546,7 @@ public interface AndroidPackage {


    /**
    /**
     * @see ApplicationInfo#FLAG_USES_CLEARTEXT_TRAFFIC
     * @see ApplicationInfo#FLAG_USES_CLEARTEXT_TRAFFIC
     * @see R.styleable#AndroidManifestApplication_usesCleartextTraffic
     * @hide
     * @hide
     */
     */
    boolean isUsesCleartextTraffic();
    boolean isUsesCleartextTraffic();
Loading