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 de511281eb890..2dfd409eaf886 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -19202,6 +19202,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; @@ -19361,6 +19362,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(); @@ -19762,6 +19765,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)); + } + } + + } } /**