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

Commit e8d45bdd authored by lpeter's avatar lpeter
Browse files

Add an adb command to call clearPackagePreferredActivities

Provide an adb command to call
PackageManager.clearPackagePreferredActivities on a target package.

Adb command:
adb shell pm clear-package-preferred-activities Package

Bug: 280342467
Test: build pass and boot success
Test: manually by using adb command
Change-Id: I1cdc4029c6d0da40e961426163a1084d5986bae1
parent cf2879cf
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -354,6 +354,8 @@ class PackageManagerShellCommand extends ShellCommand {
                    return runSetSilentUpdatesPolicy();
                case "get-app-metadata":
                    return runGetAppMetadata();
                case "clear-package-preferred-activities":
                    return runClearPackagePreferredActivities();
                default: {
                    if (ART_SERVICE_COMMANDS.contains(cmd)) {
                        if (DexOptHelper.useArtService()) {
@@ -4100,6 +4102,22 @@ class PackageManagerShellCommand extends ShellCommand {
        return userId == UserHandle.USER_CURRENT ? ActivityManager.getCurrentUser() : userId;
    }

    private int runClearPackagePreferredActivities() {
        final PrintWriter pw = getErrPrintWriter();
        final String packageName = getNextArg();
        if (packageName == null) {
            pw.println("Error: package name not specified");
            return 1;
        }
        try {
            mContext.getPackageManager().clearPackagePreferredActivities(packageName);
            return 0;
        } catch (Exception e) {
            pw.println(e.toString());
            return 1;
        }
    }

    @Override
    public void onHelp() {
        final PrintWriter pw = getOutPrintWriter();
@@ -4427,6 +4445,9 @@ class PackageManagerShellCommand extends ShellCommand {
        pw.println("      --reset: restore the installer and throttle time to the default, and");
        pw.println("        clear tracks of silent updates in the system.");
        pw.println("");
        pw.println("  clear-package-preferred-activities <PACKAGE>");
        pw.println("    Remove the preferred activity mappings for the given package.");
        pw.println("");
        if (DexOptHelper.useArtService()) {
            printArtServiceHelp();
        } else {