diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerShellCommand.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index b92f51b392f9..62e9d372f09d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -131,6 +131,7 @@ import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Set; import java.util.WeakHashMap; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CountDownLatch; @@ -144,6 +145,10 @@ class PackageManagerShellCommand extends ShellCommand { 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 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 LegacyPermissionManagerInternal mLegacyPermissionManager; @@ -1330,7 +1335,7 @@ class PackageManagerShellCommand extends ShellCommand { } private int runStreamingInstall() throws RemoteException { - final InstallParams params = makeInstallParams(); + final InstallParams params = makeInstallParams(UNSUPPORTED_INSTALL_CMD_OPTS); if (params.sessionParams.dataLoaderParams == null) { params.sessionParams.setDataLoaderParams( PackageManagerShellCommandDataLoader.getStreamingDataLoaderParams(this)); @@ -1339,7 +1344,7 @@ class PackageManagerShellCommand extends ShellCommand { } private int runIncrementalInstall() throws RemoteException { - final InstallParams params = makeInstallParams(); + final InstallParams params = makeInstallParams(UNSUPPORTED_INSTALL_CMD_OPTS); if (params.sessionParams.dataLoaderParams == null) { params.sessionParams.setDataLoaderParams( PackageManagerShellCommandDataLoader.getIncrementalDataLoaderParams(this)); @@ -1348,7 +1353,7 @@ class PackageManagerShellCommand extends ShellCommand { } private int runInstall() throws RemoteException { - return doRunInstall(makeInstallParams()); + return doRunInstall(makeInstallParams(UNSUPPORTED_INSTALL_CMD_OPTS)); } private int doRunInstall(final InstallParams params) throws RemoteException { @@ -1500,7 +1505,7 @@ class PackageManagerShellCommand extends ShellCommand { private int runInstallCreate() throws RemoteException { final PrintWriter pw = getOutPrintWriter(); - final InstallParams installParams = makeInstallParams(); + final InstallParams installParams = makeInstallParams(UNSUPPORTED_SESSION_CREATE_OPTS); final int sessionId = doCreateSession(installParams.sessionParams, installParams.installerPackageName, installParams.userId); @@ -2896,7 +2901,7 @@ class PackageManagerShellCommand extends ShellCommand { 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 InstallParams params = new InstallParams(); @@ -2910,6 +2915,9 @@ class PackageManagerShellCommand extends ShellCommand { boolean replaceExisting = true; boolean forceNonStaged = false; while ((opt = getNextOption()) != null) { + if (unsupportedOptions.contains(opt)) { + throw new IllegalArgumentException("Unsupported option " + opt); + } switch (opt) { case "-r": // ignore break; @@ -3817,7 +3825,7 @@ class PackageManagerShellCommand extends ShellCommand { pw.println(" [--user USER_ID] INTENT"); pw.println(" Prints all broadcast receivers that can handle the given INTENT."); 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(" [--install-reason 0/1/2/3/4] [--originating-uri URI]"); pw.println(" [--referrer URI] [--abi ABI_NAME] [--force-sdk]"); |