diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 4aa19ee888f0..95bababd51f3 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -20543,6 +20543,7 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); public static final int DUMP_DEXOPT = 1 << 20; public static final int DUMP_COMPILER_STATS = 1 << 21; public static final int DUMP_ENABLED_OVERLAYS = 1 << 22; + public static final int DUMP_CHANGES = 1 << 23; public static final int OPTION_SHOW_FILTERS = 1 << 0; @@ -20788,6 +20789,8 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); dumpState.setDump(DumpState.DUMP_COMPILER_STATS); } else if ("enabled-overlays".equals(cmd)) { dumpState.setDump(DumpState.DUMP_ENABLED_OVERLAYS); + } else if ("changes".equals(cmd)) { + dumpState.setDump(DumpState.DUMP_CHANGES); } else if ("write".equals(cmd)) { synchronized (mPackages) { mSettings.writeLPr(); @@ -21118,6 +21121,31 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); mSettings.dumpSharedUsersLPr(pw, packageName, permissionNames, dumpState, checkin); } + if (dumpState.isDumping(DumpState.DUMP_CHANGES)) { + if (dumpState.onTitlePrinted()) pw.println(); + pw.println("Package Changes:"); + pw.print(" Sequence number="); pw.println(mChangedPackagesSequenceNumber); + final int K = mChangedPackages.size(); + for (int i = 0; i < K; i++) { + final SparseArray<String> changes = mChangedPackages.valueAt(i); + pw.print(" User "); pw.print(mChangedPackages.keyAt(i)); pw.println(":"); + final int N = changes.size(); + if (N == 0) { + pw.print(" "); pw.println("No packages changed"); + } else { + for (int j = 0; j < N; j++) { + final String pkgName = changes.valueAt(j); + final int sequenceNumber = changes.keyAt(j); + pw.print(" "); + pw.print("seq="); + pw.print(sequenceNumber); + pw.print(", package="); + pw.println(pkgName); + } + } + } + } + if (!checkin && dumpState.isDumping(DumpState.DUMP_PERMISSIONS) && packageName == null) { mSettings.dumpRestoredPermissionGrantsLPr(pw, dumpState); } |