Add historical logging to settings provider
This change adds historical operations to the dump state
of the settings provider. The historica operations are
currently appended only on user-debug and eng builds.
These change is needed to help diagnose the referred
bug and improve the settings provider's maintenance.
bug:30561721
Change-Id: I58a1ba0d598c4d28adcb5e654ebb78cf947e94db
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index d27f1f8..0f7fe6f 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -544,7 +544,7 @@
final int userCount = users.size();
for (int i = 0; i < userCount; i++) {
UserInfo user = users.get(i);
- dumpForUser(user.id, pw);
+ dumpForUserLocked(user.id, pw);
}
} finally {
Binder.restoreCallingIdentity(identity);
@@ -552,12 +552,16 @@
}
}
- private void dumpForUser(int userId, PrintWriter pw) {
+ private void dumpForUserLocked(int userId, PrintWriter pw) {
if (userId == UserHandle.USER_SYSTEM) {
pw.println("GLOBAL SETTINGS (user " + userId + ")");
Cursor globalCursor = getAllGlobalSettings(ALL_COLUMNS);
dumpSettings(globalCursor, pw);
pw.println();
+
+ SettingsState globalSettings = mSettingsRegistry.getSettingsLocked(
+ SETTINGS_TYPE_GLOBAL, UserHandle.USER_SYSTEM);
+ globalSettings.dumpHistoricalOperations(pw);
}
pw.println("SECURE SETTINGS (user " + userId + ")");
@@ -565,10 +569,18 @@
dumpSettings(secureCursor, pw);
pw.println();
+ SettingsState secureSettings = mSettingsRegistry.getSettingsLocked(
+ SETTINGS_TYPE_SECURE, userId);
+ secureSettings.dumpHistoricalOperations(pw);
+
pw.println("SYSTEM SETTINGS (user " + userId + ")");
Cursor systemCursor = getAllSystemSettings(userId, ALL_COLUMNS);
dumpSettings(systemCursor, pw);
pw.println();
+
+ SettingsState systemSettings = mSettingsRegistry.getSettingsLocked(
+ SETTINGS_TYPE_SYSTEM, userId);
+ systemSettings.dumpHistoricalOperations(pw);
}
private void dumpSettings(Cursor cursor, PrintWriter pw) {