Add system API to install ephemeral apps
Test: manual; install using "adb install --ephemeral"
Change-Id: Idce214779fea5f3c4a0121542319044f9f0e0a42
diff --git a/api/system-current.txt b/api/system-current.txt
index 7a287df..9d113db 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -10236,6 +10236,7 @@
method public void setAppPackageName(java.lang.String);
method public void setDontKillApp(boolean);
method public void setGrantedRuntimePermissions(java.lang.String[]);
+ method public void setInstallAsInstantApp(boolean);
method public void setInstallLocation(int);
method public void setOriginatingUid(int);
method public void setOriginatingUri(android.net.Uri);
diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java
index 50f46f4..810d2018 100644
--- a/cmds/pm/src/com/android/commands/pm/Pm.java
+++ b/cmds/pm/src/com/android/commands/pm/Pm.java
@@ -553,7 +553,7 @@
sessionParams.abiOverride = checkAbiArgument(nextOptionData());
break;
case "--ephemeral":
- sessionParams.installFlags |= PackageManager.INSTALL_EPHEMERAL;
+ sessionParams.setInstallAsInstantApp(true /*isInstantApp*/);
break;
case "--user":
params.userId = UserHandle.parseUserArg(nextOptionData());
diff --git a/core/java/android/content/pm/PackageInstaller.java b/core/java/android/content/pm/PackageInstaller.java
index ed8143e..646bd3c 100644
--- a/core/java/android/content/pm/PackageInstaller.java
+++ b/core/java/android/content/pm/PackageInstaller.java
@@ -1067,6 +1067,16 @@
}
/** {@hide} */
+ @SystemApi
+ public void setInstallAsInstantApp(boolean isInstantApp) {
+ if (isInstantApp) {
+ installFlags |= PackageManager.INSTALL_EPHEMERAL;
+ } else {
+ installFlags &= ~PackageManager.INSTALL_EPHEMERAL;
+ }
+ }
+
+ /** {@hide} */
public void dump(IndentingPrintWriter pw) {
pw.printPair("mode", mode);
pw.printHexPair("installFlags", installFlags);
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
index 7938a12..2751742 100644
--- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
+++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java
@@ -1109,7 +1109,7 @@
sessionParams.abiOverride = checkAbiArgument(getNextArg());
break;
case "--ephemeral":
- sessionParams.installFlags |= PackageManager.INSTALL_EPHEMERAL;
+ sessionParams.setInstallAsInstantApp(true /*isInstantApp*/);
break;
case "--user":
params.userId = UserHandle.parseUserArg(getNextArgRequired());