Loading core/java/android/content/pm/ApplicationInfo.java +46 −58 Original line number Diff line number Diff line Loading @@ -1463,98 +1463,84 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } } /** * @hide */ public boolean isForwardLocked() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0; /** @hide */ public boolean isDefaultToDeviceProtectedStorage() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE) != 0; } /** * @hide */ @TestApi public boolean isSystemApp() { return (flags & ApplicationInfo.FLAG_SYSTEM) != 0; /** @hide */ public boolean isDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE) != 0; } /** * @hide */ @TestApi public boolean isPrivilegedApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0; /** @hide */ public boolean isEncryptionAware() { return isDirectBootAware() || isPartiallyDirectBootAware(); } /** * @hide */ public boolean isUpdatedSystemApp() { return (flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0; /** @hide */ public boolean isExternal() { return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; } /** @hide */ public boolean isInternal() { return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0; public boolean isExternalAsec() { return TextUtils.isEmpty(volumeUuid) && isExternal(); } /** @hide */ public boolean isExternalAsec() { return TextUtils.isEmpty(volumeUuid) && (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; public boolean isForwardLocked() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0; } /** @hide */ public boolean isDefaultToDeviceProtectedStorage() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE) != 0; public boolean isInstantApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_INSTANT) != 0; } /** @hide */ public boolean isDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE) != 0; public boolean isInternal() { return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0; } /** @hide */ public boolean isPartiallyDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE) != 0; public boolean isOem() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0; } /** @hide */ public boolean isEncryptionAware() { return isDirectBootAware() || isPartiallyDirectBootAware(); public boolean isPartiallyDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE) != 0; } /** * @hide */ public boolean isInstantApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_INSTANT) != 0; /** @hide */ @TestApi public boolean isPrivilegedApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0; } /** * @hide */ /** @hide */ public boolean isRequiredForSystemUser() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_REQUIRED_FOR_SYSTEM_USER) != 0; } /** * Returns true if the app has declared in its manifest that it wants its split APKs to be * loaded into isolated Contexts, with their own ClassLoaders and Resources objects. * @hide */ public boolean requestsIsolatedSplitLoading() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_ISOLATED_SPLIT_LOADING) != 0; } /** * @hide */ /** @hide */ public boolean isStaticSharedLibrary() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_STATIC_SHARED_LIBRARY) != 0; } /** @hide */ @TestApi public boolean isSystemApp() { return (flags & ApplicationInfo.FLAG_SYSTEM) != 0; } /** @hide */ public boolean isUpdatedSystemApp() { return (flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0; } /** * Returns whether or not this application was installed as a virtual preload. */ Loading @@ -1563,10 +1549,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } /** * Returns true if the app has declared in its manifest that it wants its split APKs to be * loaded into isolated Contexts, with their own ClassLoaders and Resources objects. * @hide */ public boolean isOem() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0; public boolean requestsIsolatedSplitLoading() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_ISOLATED_SPLIT_LOADING) != 0; } /** Loading core/java/android/content/pm/PackageManagerInternal.java +6 −0 Original line number Diff line number Diff line Loading @@ -336,6 +336,12 @@ public abstract class PackageManagerInternal { */ public abstract boolean isPackagePersistent(String packageName); /** * Returns whether or not the given package represents a legacy system application released * prior to runtime permissions. */ public abstract boolean isLegacySystemApp(PackageParser.Package pkg); /** * Get all overlay packages for a user. * @param userId The user for which to get the overlays. Loading core/java/android/content/pm/PackageParser.java +20 −20 Original line number Diff line number Diff line Loading @@ -6221,48 +6221,48 @@ public class PackageParser { return false; } /** * @hide */ /** @hide */ public boolean isExternal() { return applicationInfo.isExternal(); } /** @hide */ public boolean isForwardLocked() { return applicationInfo.isForwardLocked(); } /** * @hide */ public boolean isSystemApp() { return applicationInfo.isSystemApp(); /** @hide */ public boolean isOem() { return applicationInfo.isOem(); } /** * @hide */ public boolean isPrivilegedApp() { /** @hide */ public boolean isPrivileged() { return applicationInfo.isPrivilegedApp(); } /** * @hide */ /** @hide */ public boolean isSystem() { return applicationInfo.isSystemApp(); } /** @hide */ public boolean isUpdatedSystemApp() { return applicationInfo.isUpdatedSystemApp(); } /** * @hide */ /** @hide */ public boolean canHaveOatDir() { // The following app types CANNOT have oat directory // - non-updated system apps // - forward-locked apps or apps installed in ASEC containers return (!isSystemApp() || isUpdatedSystemApp()) return (!isSystem() || isUpdatedSystemApp()) && !isForwardLocked() && !applicationInfo.isExternalAsec(); } public boolean isMatch(int flags) { if ((flags & PackageManager.MATCH_SYSTEM_ONLY) != 0) { return isSystemApp(); return isSystem(); } return true; } Loading services/core/java/com/android/server/pm/OtaDexoptService.java +1 −1 Original line number Diff line number Diff line Loading @@ -310,7 +310,7 @@ public class OtaDexoptService extends IOtaDexopt.Stub { collectingInstaller, mPackageManagerService.mInstallLock, mContext); String[] libraryDependencies = pkg.usesLibraryFiles; if (pkg.isSystemApp()) { if (pkg.isSystem()) { // For system apps, we want to avoid classpaths checks. libraryDependencies = NO_LIBRARIES; } Loading services/core/java/com/android/server/pm/PackageDexOptimizer.java +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ public class PackageDexOptimizer { } // We do not dexopt a priv-app package when pm.dexopt.priv-apps is false. if (pkg.isPrivilegedApp()) { if (pkg.isPrivileged()) { return SystemProperties.getBoolean("pm.dexopt.priv-apps", true); } Loading Loading
core/java/android/content/pm/ApplicationInfo.java +46 −58 Original line number Diff line number Diff line Loading @@ -1463,98 +1463,84 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } } /** * @hide */ public boolean isForwardLocked() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0; /** @hide */ public boolean isDefaultToDeviceProtectedStorage() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE) != 0; } /** * @hide */ @TestApi public boolean isSystemApp() { return (flags & ApplicationInfo.FLAG_SYSTEM) != 0; /** @hide */ public boolean isDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE) != 0; } /** * @hide */ @TestApi public boolean isPrivilegedApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0; /** @hide */ public boolean isEncryptionAware() { return isDirectBootAware() || isPartiallyDirectBootAware(); } /** * @hide */ public boolean isUpdatedSystemApp() { return (flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0; /** @hide */ public boolean isExternal() { return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; } /** @hide */ public boolean isInternal() { return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0; public boolean isExternalAsec() { return TextUtils.isEmpty(volumeUuid) && isExternal(); } /** @hide */ public boolean isExternalAsec() { return TextUtils.isEmpty(volumeUuid) && (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0; public boolean isForwardLocked() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_FORWARD_LOCK) != 0; } /** @hide */ public boolean isDefaultToDeviceProtectedStorage() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE) != 0; public boolean isInstantApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_INSTANT) != 0; } /** @hide */ public boolean isDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_DIRECT_BOOT_AWARE) != 0; public boolean isInternal() { return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0; } /** @hide */ public boolean isPartiallyDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE) != 0; public boolean isOem() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0; } /** @hide */ public boolean isEncryptionAware() { return isDirectBootAware() || isPartiallyDirectBootAware(); public boolean isPartiallyDirectBootAware() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE) != 0; } /** * @hide */ public boolean isInstantApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_INSTANT) != 0; /** @hide */ @TestApi public boolean isPrivilegedApp() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PRIVILEGED) != 0; } /** * @hide */ /** @hide */ public boolean isRequiredForSystemUser() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_REQUIRED_FOR_SYSTEM_USER) != 0; } /** * Returns true if the app has declared in its manifest that it wants its split APKs to be * loaded into isolated Contexts, with their own ClassLoaders and Resources objects. * @hide */ public boolean requestsIsolatedSplitLoading() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_ISOLATED_SPLIT_LOADING) != 0; } /** * @hide */ /** @hide */ public boolean isStaticSharedLibrary() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_STATIC_SHARED_LIBRARY) != 0; } /** @hide */ @TestApi public boolean isSystemApp() { return (flags & ApplicationInfo.FLAG_SYSTEM) != 0; } /** @hide */ public boolean isUpdatedSystemApp() { return (flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0; } /** * Returns whether or not this application was installed as a virtual preload. */ Loading @@ -1563,10 +1549,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { } /** * Returns true if the app has declared in its manifest that it wants its split APKs to be * loaded into isolated Contexts, with their own ClassLoaders and Resources objects. * @hide */ public boolean isOem() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_OEM) != 0; public boolean requestsIsolatedSplitLoading() { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_ISOLATED_SPLIT_LOADING) != 0; } /** Loading
core/java/android/content/pm/PackageManagerInternal.java +6 −0 Original line number Diff line number Diff line Loading @@ -336,6 +336,12 @@ public abstract class PackageManagerInternal { */ public abstract boolean isPackagePersistent(String packageName); /** * Returns whether or not the given package represents a legacy system application released * prior to runtime permissions. */ public abstract boolean isLegacySystemApp(PackageParser.Package pkg); /** * Get all overlay packages for a user. * @param userId The user for which to get the overlays. Loading
core/java/android/content/pm/PackageParser.java +20 −20 Original line number Diff line number Diff line Loading @@ -6221,48 +6221,48 @@ public class PackageParser { return false; } /** * @hide */ /** @hide */ public boolean isExternal() { return applicationInfo.isExternal(); } /** @hide */ public boolean isForwardLocked() { return applicationInfo.isForwardLocked(); } /** * @hide */ public boolean isSystemApp() { return applicationInfo.isSystemApp(); /** @hide */ public boolean isOem() { return applicationInfo.isOem(); } /** * @hide */ public boolean isPrivilegedApp() { /** @hide */ public boolean isPrivileged() { return applicationInfo.isPrivilegedApp(); } /** * @hide */ /** @hide */ public boolean isSystem() { return applicationInfo.isSystemApp(); } /** @hide */ public boolean isUpdatedSystemApp() { return applicationInfo.isUpdatedSystemApp(); } /** * @hide */ /** @hide */ public boolean canHaveOatDir() { // The following app types CANNOT have oat directory // - non-updated system apps // - forward-locked apps or apps installed in ASEC containers return (!isSystemApp() || isUpdatedSystemApp()) return (!isSystem() || isUpdatedSystemApp()) && !isForwardLocked() && !applicationInfo.isExternalAsec(); } public boolean isMatch(int flags) { if ((flags & PackageManager.MATCH_SYSTEM_ONLY) != 0) { return isSystemApp(); return isSystem(); } return true; } Loading
services/core/java/com/android/server/pm/OtaDexoptService.java +1 −1 Original line number Diff line number Diff line Loading @@ -310,7 +310,7 @@ public class OtaDexoptService extends IOtaDexopt.Stub { collectingInstaller, mPackageManagerService.mInstallLock, mContext); String[] libraryDependencies = pkg.usesLibraryFiles; if (pkg.isSystemApp()) { if (pkg.isSystem()) { // For system apps, we want to avoid classpaths checks. libraryDependencies = NO_LIBRARIES; } Loading
services/core/java/com/android/server/pm/PackageDexOptimizer.java +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ public class PackageDexOptimizer { } // We do not dexopt a priv-app package when pm.dexopt.priv-apps is false. if (pkg.isPrivilegedApp()) { if (pkg.isPrivileged()) { return SystemProperties.getBoolean("pm.dexopt.priv-apps", true); } Loading