summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorEd Mancebo <emancebo@cyngn.com>2015-04-09 19:09:38 -0700
committerSteve Kondik <steve@cyngn.com>2015-10-27 15:11:37 -0700
commiteea702a3091b6e97ca35f3b4f58540d48698f019 (patch)
tree4fa60ae0c1a6bbf918c46c133a983ffe5b3339b8 /core/java
parent16c1a46d1feda185c49d7f4cf7bf0ebfd106f573 (diff)
downloadframeworks_base-eea702a3091b6e97ca35f3b4f58540d48698f019.zip
frameworks_base-eea702a3091b6e97ca35f3b4f58540d48698f019.tar.gz
frameworks_base-eea702a3091b6e97ca35f3b4f58540d48698f019.tar.bz2
PackageManagerService: Create means of installing prebundled applications
Change-Id: Ic8c1b6ab3922c526c4d8dc74acc3900a99983ea5
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/content/pm/PackageManager.java8
-rw-r--r--core/java/android/content/pm/PackageParser.java1
-rw-r--r--core/java/android/os/Environment.java11
3 files changed, 20 insertions, 0 deletions
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 7b924fa..0fa5f51 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -862,6 +862,14 @@ public abstract class PackageManager {
public static final int INSTALL_FAILED_THEME_UNKNOWN_ERROR = -402;
/**
+ * Used for prebundles
+ * Installation failed for a prebundled app because the user previously uninstalled it
+ * and we don't want to bring it back
+ * @hide
+ */
+ public static final int INSTALL_FAILED_UNINSTALLED_PREBUNDLE = -403;
+
+ /**
* Flag parameter for {@link #deletePackage} to indicate that you don't want to delete the
* package's data directory.
*
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 4f280ca..f4cf1e6 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -645,6 +645,7 @@ public class PackageParser {
public final static int PARSE_IS_PRIVILEGED = 1<<7;
public final static int PARSE_COLLECT_CERTIFICATES = 1<<8;
public final static int PARSE_TRUSTED_OVERLAY = 1<<9;
+ public final static int PARSE_IS_PREBUNDLED_DIR = 1<<10;
private static final Comparator<String> sSplitNameComparator = new SplitNameComparator();
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index 64d6da5..75bef5c 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -37,6 +37,7 @@ public class Environment {
private static final String ENV_ANDROID_STORAGE = "ANDROID_STORAGE";
private static final String ENV_OEM_ROOT = "OEM_ROOT";
private static final String ENV_VENDOR_ROOT = "VENDOR_ROOT";
+ private static final String ENV_PREBUNDLED_ROOT = "PREBUNDLED_ROOT";
/** {@hide} */
public static final String DIR_ANDROID = "Android";
@@ -55,6 +56,7 @@ public class Environment {
private static final File DIR_ANDROID_STORAGE = getDirectory(ENV_ANDROID_STORAGE, "/storage");
private static final File DIR_OEM_ROOT = getDirectory(ENV_OEM_ROOT, "/oem");
private static final File DIR_VENDOR_ROOT = getDirectory(ENV_VENDOR_ROOT, "/vendor");
+ private static final File DIR_PREBUNDLED_ROOT = getDirectory(ENV_PREBUNDLED_ROOT, "/vendor/bundled-app");
private static final String SYSTEM_PROPERTY_EFS_ENABLED = "persist.security.efs.enabled";
@@ -165,6 +167,15 @@ public class Environment {
}
/**
+ * Return the root directory for "prebundled" apps. These apps will be installed directly
+ * from this partition but will not be marked as system apps and will hence be uninstallable.
+ * @hide
+ */
+ public static File getPrebundledDirectory() {
+ return DIR_PREBUNDLED_ROOT;
+ }
+
+ /**
* Gets the system directory available for secure storage.
* If Encrypted File system is enabled, it returns an encrypted directory (/data/secure/system).
* Otherwise, it returns the unencrypted /data/system directory.