Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6f58154 authored by Rhed Jao's avatar Rhed Jao
Browse files

Adds multiple target packages support for `pm suspend`

Bug: 166181423
Test: atest android.appenumeration.cts.AppEnumerationTests
Change-Id: I1980289de5fe131b5cac9ba69fad8e42c5067aa8
parent a0c38a4b
Loading
Loading
Loading
Loading
+14 −11
Original line number Diff line number Diff line
@@ -104,8 +104,8 @@ import com.android.server.FgThread;
import com.android.server.LocalServices;
import com.android.server.SystemConfig;
import com.android.server.pm.PackageManagerShellCommandDataLoader.Metadata;
import com.android.server.pm.verify.domain.DomainVerificationShell;
import com.android.server.pm.permission.LegacyPermissionManagerInternal;
import com.android.server.pm.verify.domain.DomainVerificationShell;

import dalvik.system.DexFile;

@@ -2251,8 +2251,8 @@ class PackageManagerShellCommand extends ShellCommand {
            }
        }

        final String packageName = getNextArg();
        if (packageName == null) {
        final List<String> packageNames = getRemainingArgs();
        if (packageNames.isEmpty()) {
            pw.println("Error: package name not specified");
            return 1;
        }
@@ -2270,12 +2270,15 @@ class PackageManagerShellCommand extends ShellCommand {
        try {
            final int translatedUserId =
                    translateUserId(userId, UserHandle.USER_NULL, "runSuspend");
            mInterface.setPackagesSuspendedAsUser(new String[]{packageName}, suspendedState,
                    ((appExtras.size() > 0) ? appExtras : null),
            mInterface.setPackagesSuspendedAsUser(packageNames.toArray(new String[] {}),
                    suspendedState, ((appExtras.size() > 0) ? appExtras : null),
                    ((launcherExtras.size() > 0) ? launcherExtras : null),
                    info, callingPackage, translatedUserId);
            for (int i = 0; i < packageNames.size(); i++) {
                final String packageName = packageNames.get(i);
                pw.println("Package " + packageName + " new suspended state: "
                        + mInterface.isPackageSuspendedForUser(packageName, translatedUserId));
            }
            return 0;
        } catch (RemoteException | IllegalArgumentException e) {
            pw.println(e.toString());
@@ -3643,11 +3646,11 @@ class PackageManagerShellCommand extends ShellCommand {
        pw.println("  hide [--user USER_ID] PACKAGE_OR_COMPONENT");
        pw.println("  unhide [--user USER_ID] PACKAGE_OR_COMPONENT");
        pw.println("");
        pw.println("  suspend [--user USER_ID] TARGET-PACKAGE");
        pw.println("    Suspends the specified package (as user).");
        pw.println("  suspend [--user USER_ID] PACKAGE [PACKAGE...]");
        pw.println("    Suspends the specified package(s) (as user).");
        pw.println("");
        pw.println("  unsuspend [--user USER_ID] TARGET-PACKAGE");
        pw.println("    Unsuspends the specified package (as user).");
        pw.println("  unsuspend [--user USER_ID] PACKAGE [PACKAGE...]");
        pw.println("    Unsuspends the specified package(s) (as user).");
        pw.println("");
        pw.println("  grant [--user USER_ID] PACKAGE PERMISSION");
        pw.println("  revoke [--user USER_ID] PACKAGE PERMISSION");