Merge "Flags to select storage volume for app installs." into mnc-dev

This commit is contained in:
Jeff Sharkey
2015-06-10 04:43:16 +00:00
committed by Android (Google) Code Review
3 changed files with 18 additions and 0 deletions

View File

@@ -1037,6 +1037,14 @@ public final class Pm {
params.abiOverride = checkAbiArgument(nextOptionData());
} else if (opt.equals("--user")) {
userId = Integer.parseInt(nextOptionData());
} else if (opt.equals("--install-location")) {
params.installLocation = Integer.parseInt(nextOptionData());
} else if (opt.equals("--force-uuid")) {
params.installFlags |= PackageManager.INSTALL_FORCE_VOLUME_UUID;
params.volumeUuid = nextOptionData();
if ("internal".equals(params.volumeUuid)) {
params.volumeUuid = null;
}
} else {
throw new IllegalArgumentException("Unknown option " + opt);
}
@@ -1885,6 +1893,8 @@ public final class Pm {
System.err.println(" pm dump PACKAGE");
System.err.println(" pm install [-lrtsfd] [-i PACKAGE] [--user USER_ID] [PATH]");
System.err.println(" pm install-create [-lrtsfdp] [-i PACKAGE] [-S BYTES]");
System.err.println(" [--install-location 0/1/2]");
System.err.println(" [--force-uuid internal|UUID]");
System.err.println(" pm install-write [-S BYTES] SESSION_ID SPLIT_NAME [PATH]");
System.err.println(" pm install-commit SESSION_ID");
System.err.println(" pm install-abandon SESSION_ID");

View File

@@ -401,6 +401,9 @@ public abstract class PackageManager {
*/
public static final int INSTALL_GRANT_RUNTIME_PERMISSIONS = 0x00000100;
/** {@hide} */
public static final int INSTALL_FORCE_VOLUME_UUID = 0x00000200;
/**
* Flag parameter for
* {@link #setComponentEnabledSetting(android.content.ComponentName, int, int)} to indicate

View File

@@ -571,6 +571,11 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
throw new IOException("No suitable external storage available");
}
} else if ((params.installFlags & PackageManager.INSTALL_FORCE_VOLUME_UUID) != 0) {
// For now, installs to adopted media are treated as internal from
// an install flag point-of-view.
params.setInstallFlagsInternal();
} else {
// For now, installs to adopted media are treated as internal from
// an install flag point-of-view.