diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/content/pm/ApplicationInfo.java | 13 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageParser.java | 5 | ||||
| -rw-r--r-- | core/java/android/os/Environment.java | 13 |
3 files changed, 31 insertions, 0 deletions
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 83e287aecb41..b7a53520f060 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -615,6 +615,13 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { public static final int PRIVATE_FLAG_PRODUCT = 1 << 19; /** + * Value for {@link #privateFlags}: whether this app is pre-installed on the + * google partition of the system image. + * @hide + */ + public static final int PRIVATE_FLAG_PRODUCT_SERVICES = 1 << 21; + + /** * Value for {@link #privateFlags}: whether this app is signed with the * platform key. * @hide @@ -639,6 +646,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE, PRIVATE_FLAG_PRIVILEGED, PRIVATE_FLAG_PRODUCT, + PRIVATE_FLAG_PRODUCT_SERVICES, PRIVATE_FLAG_REQUIRED_FOR_SYSTEM_USER, PRIVATE_FLAG_SIGNED_WITH_PLATFORM_KEY, PRIVATE_FLAG_STATIC_SHARED_LIBRARY, @@ -1888,6 +1896,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PRODUCT) != 0; } + /** @hide */ + public boolean isProductServices() { + return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PRODUCT_SERVICES) != 0; + } + /** * Returns whether or not this application was installed as a virtual preload. */ diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 876cf2bda6fd..83757c4b523d 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -6785,6 +6785,11 @@ public class PackageParser { } /** @hide */ + public boolean isProductServices() { + return applicationInfo.isProductServices(); + } + + /** @hide */ public boolean isPrivileged() { return applicationInfo.isPrivilegedApp(); } diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index e32ed9deb270..347f60f6b9be 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -45,6 +45,7 @@ public class Environment { private static final String ENV_ODM_ROOT = "ODM_ROOT"; private static final String ENV_VENDOR_ROOT = "VENDOR_ROOT"; private static final String ENV_PRODUCT_ROOT = "PRODUCT_ROOT"; + private static final String ENV_PRODUCT_SERVICES_ROOT = "PRODUCT_SERVICES_ROOT"; /** {@hide} */ public static final String DIR_ANDROID = "Android"; @@ -67,6 +68,8 @@ public class Environment { private static final File DIR_ODM_ROOT = getDirectory(ENV_ODM_ROOT, "/odm"); private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor"); private static final File DIR_PRODUCT_ROOT = getDirectory(ENV_PRODUCT_ROOT, "/product"); + private static final File DIR_PRODUCT_SERVICES_ROOT = getDirectory(ENV_PRODUCT_SERVICES_ROOT, + "/product_services"); private static UserEnvironment sCurrentUser; private static boolean sUserRequired; @@ -196,6 +199,16 @@ public class Environment { } /** + * Return root directory of the "product_services" partition holding middleware + * services if any. If present, the partition is mounted read-only. + * + * @hide + */ + public static File getProductServicesDirectory() { + return DIR_PRODUCT_SERVICES_ROOT; + } + + /** * Return the system directory for a user. This is for use by system * services to store files relating to the user. This directory will be * automatically deleted when the user is removed. |
