From 2e130f680ed9d5ffd7ef2bf5a4d843f86e451229 Mon Sep 17 00:00:00 2001 From: Edward Cunningham Date: Fri, 10 Sep 2021 11:38:56 +0000 Subject: [PATCH] List protected broadcasts in package manager dumpsys output. Test: adb shell dumpsys package protected-broadcasts Bug: 161145287 Change-Id: I8a5e6b2e256f377fd06b918ab8782c0e45a8ee2c --- .../java/com/android/server/pm/DumpState.java | 1 + .../server/pm/PackageManagerService.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/services/core/java/com/android/server/pm/DumpState.java b/services/core/java/com/android/server/pm/DumpState.java index ed00609cd8abb..6225753cc38f9 100644 --- a/services/core/java/com/android/server/pm/DumpState.java +++ b/services/core/java/com/android/server/pm/DumpState.java @@ -46,6 +46,7 @@ public final class DumpState { public static final int DUMP_KNOWN_PACKAGES = 1 << 27; public static final int DUMP_PER_UID_READ_TIMEOUTS = 1 << 28; public static final int DUMP_SNAPSHOT_STATISTICS = 1 << 29; + public static final int DUMP_PROTECTED_BROADCASTS = 1 << 30; public static final int OPTION_SHOW_FILTERS = 1 << 0; public static final int OPTION_DUMP_ALL_COMPONENTS = 1 << 1; diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 3cd41d30aa86c..c2569433bc0cc 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -20920,6 +20920,7 @@ public class PackageManagerService extends IPackageManager.Stub pw.println(" compiler-stats: dump compiler statistics"); pw.println(" service-permissions: dump permissions required by services"); pw.println(" snapshot: dump snapshot statistics"); + pw.println(" protected-broadcasts: print list of protected broadcast actions"); pw.println(" known-packages: dump known packages"); pw.println(" : info about given package"); return; @@ -21079,6 +21080,8 @@ public class PackageManagerService extends IPackageManager.Stub opti++; } } + } else if ("protected-broadcasts".equals(cmd)) { + dumpState.setDump(DumpState.DUMP_PROTECTED_BROADCASTS); } else if ("write".equals(cmd)) { synchronized (mLock) { writeSettingsLPrTEMP(); @@ -21424,6 +21427,22 @@ public class PackageManagerService extends IPackageManager.Stub mSnapshotStatistics.dump(pw, " ", now, hits, level, dumpState.isBrief()); } } + + if (!checkin + && dumpState.isDumping(DumpState.DUMP_PROTECTED_BROADCASTS) + && packageName == null) { + if (dumpState.onTitlePrinted()) { + pw.println(); + } + pw.println("Protected broadcast actions:"); + synchronized (mProtectedBroadcasts) { + for (int i = 0; i < mProtectedBroadcasts.size(); i++) { + pw.print(" "); + pw.println(mProtectedBroadcasts.valueAt(i)); + } + } + + } } /**