Add system API to install ephemeral apps

Test: manual; install using "adb install --ephemeral"
Change-Id: Idce214779fea5f3c4a0121542319044f9f0e0a42
This commit is contained in:
Todd Kennedy
2016-11-30 15:41:21 -08:00
parent 5686ade06c
commit b771768249
4 changed files with 13 additions and 2 deletions

View File

@@ -10236,6 +10236,7 @@ package android.content.pm {
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);

View File

@@ -553,7 +553,7 @@ public final class Pm {
sessionParams.abiOverride = checkAbiArgument(nextOptionData());
break;
case "--ephemeral":
sessionParams.installFlags |= PackageManager.INSTALL_EPHEMERAL;
sessionParams.setInstallAsInstantApp(true /*isInstantApp*/);
break;
case "--user":
params.userId = UserHandle.parseUserArg(nextOptionData());

View File

@@ -1066,6 +1066,16 @@ public class PackageInstaller {
}
}
/** {@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);

View File

@@ -1109,7 +1109,7 @@ class PackageManagerShellCommand extends ShellCommand {
sessionParams.abiOverride = checkAbiArgument(getNextArg());
break;
case "--ephemeral":
sessionParams.installFlags |= PackageManager.INSTALL_EPHEMERAL;
sessionParams.setInstallAsInstantApp(true /*isInstantApp*/);
break;
case "--user":
params.userId = UserHandle.parseUserArg(getNextArgRequired());