Merge "pm install: clarify when --multi-package can be used" am: 1004623ba1

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2015636

Change-Id: Ic45017d27eb513fcbb758f641a96b6fdb6850c08
This commit is contained in:
Mårten Kongstad
2022-03-09 09:12:31 +00:00
committed by Automerger Merge Worker

View File

@@ -129,6 +129,7 @@ import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.WeakHashMap; import java.util.WeakHashMap;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
@@ -142,6 +143,10 @@ class PackageManagerShellCommand extends ShellCommand {
private final static String ART_PROFILE_SNAPSHOT_DEBUG_LOCATION = "/data/misc/profman/"; private final static String ART_PROFILE_SNAPSHOT_DEBUG_LOCATION = "/data/misc/profman/";
private static final int DEFAULT_STAGED_READY_TIMEOUT_MS = 60 * 1000; private static final int DEFAULT_STAGED_READY_TIMEOUT_MS = 60 * 1000;
private static final String TAG = "PackageManagerShellCommand"; private static final String TAG = "PackageManagerShellCommand";
private static final Set<String> UNSUPPORTED_INSTALL_CMD_OPTS = Set.of(
"--multi-package"
);
private static final Set<String> UNSUPPORTED_SESSION_CREATE_OPTS = Collections.emptySet();
final IPackageManager mInterface; final IPackageManager mInterface;
final LegacyPermissionManagerInternal mLegacyPermissionManager; final LegacyPermissionManagerInternal mLegacyPermissionManager;
@@ -1282,7 +1287,7 @@ class PackageManagerShellCommand extends ShellCommand {
} }
private int runStreamingInstall() throws RemoteException { private int runStreamingInstall() throws RemoteException {
final InstallParams params = makeInstallParams(); final InstallParams params = makeInstallParams(UNSUPPORTED_INSTALL_CMD_OPTS);
if (params.sessionParams.dataLoaderParams == null) { if (params.sessionParams.dataLoaderParams == null) {
params.sessionParams.setDataLoaderParams( params.sessionParams.setDataLoaderParams(
PackageManagerShellCommandDataLoader.getStreamingDataLoaderParams(this)); PackageManagerShellCommandDataLoader.getStreamingDataLoaderParams(this));
@@ -1291,7 +1296,7 @@ class PackageManagerShellCommand extends ShellCommand {
} }
private int runIncrementalInstall() throws RemoteException { private int runIncrementalInstall() throws RemoteException {
final InstallParams params = makeInstallParams(); final InstallParams params = makeInstallParams(UNSUPPORTED_INSTALL_CMD_OPTS);
if (params.sessionParams.dataLoaderParams == null) { if (params.sessionParams.dataLoaderParams == null) {
params.sessionParams.setDataLoaderParams( params.sessionParams.setDataLoaderParams(
PackageManagerShellCommandDataLoader.getIncrementalDataLoaderParams(this)); PackageManagerShellCommandDataLoader.getIncrementalDataLoaderParams(this));
@@ -1300,7 +1305,7 @@ class PackageManagerShellCommand extends ShellCommand {
} }
private int runInstall() throws RemoteException { private int runInstall() throws RemoteException {
return doRunInstall(makeInstallParams()); return doRunInstall(makeInstallParams(UNSUPPORTED_INSTALL_CMD_OPTS));
} }
private int doRunInstall(final InstallParams params) throws RemoteException { private int doRunInstall(final InstallParams params) throws RemoteException {
@@ -1452,7 +1457,7 @@ class PackageManagerShellCommand extends ShellCommand {
private int runInstallCreate() throws RemoteException { private int runInstallCreate() throws RemoteException {
final PrintWriter pw = getOutPrintWriter(); final PrintWriter pw = getOutPrintWriter();
final InstallParams installParams = makeInstallParams(); final InstallParams installParams = makeInstallParams(UNSUPPORTED_SESSION_CREATE_OPTS);
final int sessionId = doCreateSession(installParams.sessionParams, final int sessionId = doCreateSession(installParams.sessionParams,
installParams.installerPackageName, installParams.userId); installParams.installerPackageName, installParams.userId);
@@ -2764,7 +2769,7 @@ class PackageManagerShellCommand extends ShellCommand {
long stagedReadyTimeoutMs = DEFAULT_STAGED_READY_TIMEOUT_MS; long stagedReadyTimeoutMs = DEFAULT_STAGED_READY_TIMEOUT_MS;
} }
private InstallParams makeInstallParams() { private InstallParams makeInstallParams(Set<String> unsupportedOptions) {
final SessionParams sessionParams = new SessionParams(SessionParams.MODE_FULL_INSTALL); final SessionParams sessionParams = new SessionParams(SessionParams.MODE_FULL_INSTALL);
final InstallParams params = new InstallParams(); final InstallParams params = new InstallParams();
@@ -2776,6 +2781,9 @@ class PackageManagerShellCommand extends ShellCommand {
boolean replaceExisting = true; boolean replaceExisting = true;
boolean forceNonStaged = false; boolean forceNonStaged = false;
while ((opt = getNextOption()) != null) { while ((opt = getNextOption()) != null) {
if (unsupportedOptions.contains(opt)) {
throw new IllegalArgumentException("Unsupported option " + opt);
}
switch (opt) { switch (opt) {
case "-r": // ignore case "-r": // ignore
break; break;
@@ -3674,7 +3682,7 @@ class PackageManagerShellCommand extends ShellCommand {
pw.println(" [--user USER_ID] INTENT"); pw.println(" [--user USER_ID] INTENT");
pw.println(" Prints all broadcast receivers that can handle the given INTENT."); pw.println(" Prints all broadcast receivers that can handle the given INTENT.");
pw.println(""); pw.println("");
pw.println(" install [-rtfdgw] [-i PACKAGE] [--user USER_ID|all|current]"); pw.println(" install [-rtfdg] [-i PACKAGE] [--user USER_ID|all|current]");
pw.println(" [-p INHERIT_PACKAGE] [--install-location 0/1/2]"); pw.println(" [-p INHERIT_PACKAGE] [--install-location 0/1/2]");
pw.println(" [--install-reason 0/1/2/3/4] [--originating-uri URI]"); pw.println(" [--install-reason 0/1/2/3/4] [--originating-uri URI]");
pw.println(" [--referrer URI] [--abi ABI_NAME] [--force-sdk]"); pw.println(" [--referrer URI] [--abi ABI_NAME] [--force-sdk]");