Some logging for settings reset
If settings db gets reset because it disappeared/got corrupted,
then write the Build.ID of the OTA, so we know when it was reset.
Bug: 36365648
Test: manual
Change-Id: I499a7f65f07a61c0e4651dbd046fc5b16408c09d
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 1f1c189..1a752f9 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2037,6 +2037,8 @@
private final BackupManager mBackupManager;
+ private String mSettingsCreationBuildId;
+
public SettingsRegistry() {
mHandler = new MyHandler(getContext().getMainLooper());
mGenerationRegistry = new GenerationRegistry(mLock);
@@ -2502,6 +2504,8 @@
return;
}
+ mSettingsCreationBuildId = Build.ID;
+
final long identity = Binder.clearCallingIdentity();
try {
List<UserInfo> users = mUserManager.getUsers(true);
@@ -2570,6 +2574,12 @@
ensureSettingsStateLocked(globalKey);
SettingsState globalSettings = mSettingsStates.get(globalKey);
migrateLegacySettingsLocked(globalSettings, database, TABLE_GLOBAL);
+ // If this was just created
+ if (mSettingsCreationBuildId != null) {
+ globalSettings.insertSettingLocked(Settings.Global.DATABASE_CREATION_BUILDID,
+ mSettingsCreationBuildId, null, true,
+ SettingsState.SYSTEM_PACKAGE_NAME);
+ }
globalSettings.persistSyncLocked();
}