From: Amith Yamasani Date: Tue, 21 Mar 2017 22:23:47 +0000 (-0700) Subject: Some logging for settings reset X-Git-Tag: android-x86-8.1-r1~2240^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3945202dc861cf0cadea3dbe22ccd37a31ae055b;p=android-x86%2Fframeworks-base.git 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/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 146d2d3caebc..83528741dd82 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -9741,6 +9741,16 @@ public final class Settings { public static final String DATABASE_DOWNGRADE_REASON = "database_downgrade_reason"; /** + * The build id of when the settings database was first created (or re-created due it + * being missing). + * + * Type: string + * + * @hide + */ + public static final String DATABASE_CREATION_BUILDID = "database_creation_buildid"; + + /** * Flag to toggle journal mode WAL on or off for the contacts database. WAL is enabled by * default. Set to 0 to disable. * diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index 0cfdaf5d3cab..3e33dd8e8409 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -141,6 +141,7 @@ public class SettingsBackupTest { Settings.Global.CONTACTS_DATABASE_WAL_ENABLED, Settings.Global.DATA_ACTIVITY_TIMEOUT_MOBILE, Settings.Global.DATA_ACTIVITY_TIMEOUT_WIFI, + Settings.Global.DATABASE_CREATION_BUILDID, Settings.Global.DATABASE_DOWNGRADE_REASON, Settings.Global.DATA_ROAMING, Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS, diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 1f1c18976edf..1a752f924425 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 @@ public class SettingsProvider extends ContentProvider { private final BackupManager mBackupManager; + private String mSettingsCreationBuildId; + public SettingsRegistry() { mHandler = new MyHandler(getContext().getMainLooper()); mGenerationRegistry = new GenerationRegistry(mLock); @@ -2502,6 +2504,8 @@ public class SettingsProvider extends ContentProvider { return; } + mSettingsCreationBuildId = Build.ID; + final long identity = Binder.clearCallingIdentity(); try { List users = mUserManager.getUsers(true); @@ -2570,6 +2574,12 @@ public class SettingsProvider extends ContentProvider { 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(); }