blob: e537b768d1afd99395c4d725d64daf3c5f3d99e8 [file] [log] [blame]
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +00001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.provider;
18
Al Sutton66a3e012019-10-15 15:34:13 +010019import static android.provider.settings.backup.DeviceSpecificSettings.DEVICE_SPECIFIC_SETTINGS_TO_BACKUP;
20
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000021import static com.google.android.collect.Sets.newHashSet;
Alan Stokes4e1a7422019-09-24 14:15:10 +010022import static com.google.common.truth.Truth.assertWithMessage;
Ajay Dudanibcfcd6c2018-02-05 10:44:27 -080023
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000024import static java.lang.reflect.Modifier.isFinal;
25import static java.lang.reflect.Modifier.isPublic;
26import static java.lang.reflect.Modifier.isStatic;
27
Bryan Mawhinneybdee0d42017-11-24 16:12:08 +000028import android.platform.test.annotations.Presubmit;
Al Sutton0833b2e2019-08-22 16:21:30 +010029import android.provider.settings.backup.GlobalSettings;
30import android.provider.settings.backup.SecureSettings;
31import android.provider.settings.backup.SystemSettings;
Tadashi G. Takaokab4470f22019-01-15 18:29:15 +090032
33import androidx.test.filters.SmallTest;
Hui Yu88910de2019-12-16 14:35:27 -080034import androidx.test.filters.Suppress;
Tadashi G. Takaokab4470f22019-01-15 18:29:15 +090035import androidx.test.runner.AndroidJUnit4;
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000036
Julia Reynoldsb852e562017-06-06 16:14:18 -040037import org.junit.Test;
38import org.junit.runner.RunWith;
39
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000040import java.lang.reflect.Field;
Al Sutton71dc8ff2019-07-12 11:42:03 +010041import java.util.Collections;
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000042import java.util.HashSet;
43import java.util.Set;
44
Bryan Mawhinney2c5f95a2017-02-21 10:58:23 +000045/** Tests that ensure appropriate settings are backed up. */
Bryan Mawhinneybdee0d42017-11-24 16:12:08 +000046@Presubmit
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000047@RunWith(AndroidJUnit4.class)
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +000048@SmallTest
Bryan Mawhinney2c5f95a2017-02-21 10:58:23 +000049public class SettingsBackupTest {
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000050
51 /**
Salvador Martinezbb902fc2018-01-22 19:46:55 -080052 * see {@link com.google.android.systemui.power.EnhancedEstimatesGoogleImpl} for more details
53 */
54 public static final String HYBRID_SYSUI_BATTERY_WARNING_FLAGS =
55 "hybrid_sysui_battery_warning_flags";
56
57 /**
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000058 * The following blacklists contain settings that should *not* be backed up and restored to
59 * another device. As a general rule, anything that is not user configurable should be
60 * blacklisted (and conversely, things that *are* user configurable *should* be backed up)
61 */
62 private static final Set<String> BACKUP_BLACKLISTED_SYSTEM_SETTINGS =
63 newHashSet(
64 Settings.System.ADVANCED_SETTINGS, // candidate for backup?
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000065 Settings.System.ALARM_ALERT_CACHE, // internal cache
66 Settings.System.APPEND_FOR_LAST_AUDIBLE, // suffix deprecated since API 2
67 Settings.System.EGG_MODE, // I am the lolrus
68 Settings.System.END_BUTTON_BEHAVIOR, // bug?
69 Settings.System
70 .HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, // candidate for backup?
71 Settings.System.LOCKSCREEN_DISABLED, // ?
72 Settings.System.MEDIA_BUTTON_RECEIVER, // candidate for backup?
73 Settings.System.MUTE_STREAMS_AFFECTED, // candidate for backup?
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000074 Settings.System.NOTIFICATION_SOUND_CACHE, // internal cache
75 Settings.System.POINTER_LOCATION, // backup candidate?
Tyler Gunn37ce6692018-03-12 14:31:45 -070076 Settings.System.DEBUG_ENABLE_ENHANCED_CALL_BLOCKING, // used for testing only
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000077 Settings.System.RINGTONE_CACHE, // internal cache
Annie Mengaeeb24e2018-04-05 18:49:52 +010078 Settings.System.SCREEN_BRIGHTNESS, // removed in P
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000079 Settings.System.SETUP_WIZARD_HAS_RUN, // Only used by SuW
80 Settings.System.SHOW_GTALK_SERVICE_STATUS, // candidate for backup?
81 Settings.System.SHOW_TOUCHES, // bug?
82 Settings.System.SIP_ADDRESS_ONLY, // value, not a setting
83 Settings.System.SIP_ALWAYS, // value, not a setting
84 Settings.System.SYSTEM_LOCALES, // bug?
85 Settings.System.USER_ROTATION, // backup candidate?
86 Settings.System.VIBRATE_IN_SILENT, // deprecated?
87 Settings.System.VIBRATE_ON, // candidate for backup?
Michal Karpinski034a83f2017-04-26 19:25:25 +010088 Settings.System.VOLUME_ACCESSIBILITY, // used internally, changing value will
89 // not change volume
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000090 Settings.System.VOLUME_ALARM, // deprecated since API 2?
Kim Baekgyeongb64fac72019-12-09 10:35:58 +000091 Settings.System.VOLUME_ASSISTANT, // candidate for backup?
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +000092 Settings.System.VOLUME_BLUETOOTH_SCO, // deprecated since API 2?
93 Settings.System.VOLUME_MASTER, // candidate for backup?
94 Settings.System.VOLUME_MUSIC, // deprecated since API 2?
95 Settings.System.VOLUME_NOTIFICATION, // deprecated since API 2?
96 Settings.System.VOLUME_RING, // deprecated since API 2?
97 Settings.System.VOLUME_SYSTEM, // deprecated since API 2?
98 Settings.System.VOLUME_VOICE, // deprecated since API 2?
99 Settings.System.WHEN_TO_MAKE_WIFI_CALLS, // bug?
Michael Wrighta3dab232019-02-22 16:54:21 +0000100 Settings.System.WINDOW_ORIENTATION_LISTENER_LOG, // used for debugging only
Long Ling3b58eff2019-08-17 18:02:46 -0700101 Settings.System.MIN_REFRESH_RATE, // depends on hardware capabilities
Fiona Campbelld4eb2952019-11-04 17:19:56 +0000102 Settings.System.PEAK_REFRESH_RATE, // depends on hardware capabilities
103 Settings.System.SCREEN_BRIGHTNESS_FLOAT,
hjin81.lee4e984e52019-12-05 14:34:52 +0900104 Settings.System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT,
105 Settings.System.MULTI_AUDIO_FOCUS_ENABLED // form-factor/OEM specific
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000106 );
107
108 private static final Set<String> BACKUP_BLACKLISTED_GLOBAL_SETTINGS =
109 newHashSet(
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +0000110 Settings.Global.ACTIVITY_MANAGER_CONSTANTS,
Michal Karpinski201bc0c2018-07-20 15:32:00 +0100111 Settings.Global.ACTIVITY_STARTS_LOGGING_ENABLED,
Lei Yu4b976ad2018-04-19 10:38:58 -0700112 Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED,
Michael Groover9e7b06e2018-12-28 19:55:51 -0800113 Settings.Global.ADB_ALLOWED_CONNECTION_TIME,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000114 Settings.Global.ADB_ENABLED,
Joshua Duong2076c042020-01-02 14:53:32 -0800115 Settings.Global.ADB_WIFI_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000116 Settings.Global.ADD_USERS_WHEN_LOCKED,
117 Settings.Global.AIRPLANE_MODE_ON,
118 Settings.Global.AIRPLANE_MODE_RADIOS,
119 Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS,
120 Settings.Global.ALARM_MANAGER_CONSTANTS,
121 Settings.Global.ALLOW_USER_SWITCHING_WHEN_SYSTEM_USER_LOCKED,
122 Settings.Global.ALWAYS_FINISH_ACTIVITIES,
jackqdyulei8443dd02017-08-24 16:14:34 -0700123 Settings.Global.ALWAYS_ON_DISPLAY_CONSTANTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000124 Settings.Global.ANIMATOR_DURATION_SCALE,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100125 Settings.Global.ANOMALY_DETECTION_CONSTANTS,
jackqdyuleifa81bee2018-02-01 11:16:23 -0800126 Settings.Global.ANOMALY_CONFIG,
127 Settings.Global.ANOMALY_CONFIG_VERSION,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000128 Settings.Global.APN_DB_UPDATE_CONTENT_URL,
129 Settings.Global.APN_DB_UPDATE_METADATA_URL,
Makoto Onuki87d260a2018-09-26 16:58:32 -0700130 Settings.Global.APP_BINDING_CONSTANTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000131 Settings.Global.APP_IDLE_CONSTANTS,
Dianne Hackborn65a4f252018-05-08 17:30:48 -0700132 Settings.Global.APP_OPS_CONSTANTS,
Amith Yamasani172612c2017-12-15 10:51:53 -0800133 Settings.Global.APP_STANDBY_ENABLED,
Michael Wachenschwanz0b4ab1f2019-01-07 13:59:10 -0800134 Settings.Global.APP_TIME_LIMIT_USAGE_SOURCE,
Alex Buynytskyy5d5921ee2019-01-22 15:22:55 -0800135 Settings.Global.ART_VERIFIER_VERIFY_DEBUGGABLE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000136 Settings.Global.ASSISTED_GPS_ENABLED,
137 Settings.Global.AUDIO_SAFE_VOLUME_STATE,
Felipe Lemefd4003b2018-03-20 17:12:17 -0700138 Settings.Global.AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES,
Felipe Leme68b22222018-07-24 14:57:01 -0700139 Settings.Global.AUTOFILL_LOGGING_LEVEL,
140 Settings.Global.AUTOFILL_MAX_PARTITIONS_SIZE,
141 Settings.Global.AUTOFILL_MAX_VISIBLE_DATASETS,
Salvador Martinezb85a9f82019-03-20 16:21:27 -0700142 Settings.Global.AUTOMATIC_POWER_SAVE_MODE,
Salvador Martinez580098fe2019-04-11 10:42:15 -0700143 Settings.Global.AVERAGE_TIME_TO_DISCHARGE,
Ng Zhi An09411202019-01-23 11:46:50 -0800144 Settings.Global.BATTERY_CHARGING_STATE_UPDATE_DELAY,
Salvador Martinez580098fe2019-04-11 10:42:15 -0700145 Settings.Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME,
Christopher Tate2f558d22019-01-17 16:58:31 -0800146 Settings.Global.BROADCAST_BG_CONSTANTS,
147 Settings.Global.BROADCAST_FG_CONSTANTS,
148 Settings.Global.BROADCAST_OFFLOAD_CONSTANTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000149 Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD,
150 Settings.Global.BATTERY_DISCHARGE_THRESHOLD,
Kweku Adams9f488e22019-01-14 16:25:08 -0800151 Settings.Global.BATTERY_SAVER_ADAPTIVE_DEVICE_SPECIFIC_CONSTANTS,
Bryan Mawhinneyc41f2a42017-11-24 13:44:48 +0000152 Settings.Global.BATTERY_SAVER_DEVICE_SPECIFIC_CONSTANTS,
Sudheer Shanka5c19b892018-01-05 17:25:46 -0800153 Settings.Global.BATTERY_STATS_CONSTANTS,
Olivier Gaillard1d7f6152018-07-03 13:57:58 +0100154 Settings.Global.BINDER_CALLS_STATS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000155 Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE,
Jeremy Klein45a9b5d2018-01-10 18:01:46 -0800156 Settings.Global.BLE_SCAN_LOW_POWER_WINDOW_MS,
157 Settings.Global.BLE_SCAN_LOW_POWER_INTERVAL_MS,
158 Settings.Global.BLE_SCAN_BALANCED_WINDOW_MS,
159 Settings.Global.BLE_SCAN_BALANCED_INTERVAL_MS,
160 Settings.Global.BLE_SCAN_LOW_LATENCY_WINDOW_MS,
161 Settings.Global.BLE_SCAN_LOW_LATENCY_INTERVAL_MS,
Anthony Stangec97870a2018-03-14 01:09:45 +0000162 Settings.Global.BLE_SCAN_BACKGROUND_MODE,
Matthew Fritze7c5fa7ff02018-05-21 14:42:36 -0700163 Settings.Global.BLOCKED_SLICES,
Rohan Shah0350dab2018-05-04 13:42:18 -0700164 Settings.Global.BLOCKING_HELPER_DISMISS_TO_VIEW_RATIO_LIMIT,
165 Settings.Global.BLOCKING_HELPER_STREAK_LIMIT,
Ajay Panicker2c857182018-11-30 14:52:05 -0800166 Settings.Global.BLUETOOTH_BTSNOOP_DEFAULT_MODE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000167 Settings.Global.BLUETOOTH_A2DP_SINK_PRIORITY_PREFIX,
168 Settings.Global.BLUETOOTH_A2DP_SRC_PRIORITY_PREFIX,
Antony Sargentf5772c62017-04-26 16:37:53 -0700169 Settings.Global.BLUETOOTH_A2DP_SUPPORTS_OPTIONAL_CODECS_PREFIX,
170 Settings.Global.BLUETOOTH_A2DP_OPTIONAL_CODECS_ENABLED_PREFIX,
Bryan Mawhinneyc41f2a42017-11-24 13:44:48 +0000171 Settings.Global.BLUETOOTH_CLASS_OF_DEVICE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000172 Settings.Global.BLUETOOTH_DISABLED_PROFILES,
173 Settings.Global.BLUETOOTH_HEADSET_PRIORITY_PREFIX,
174 Settings.Global.BLUETOOTH_INPUT_DEVICE_PRIORITY_PREFIX,
175 Settings.Global.BLUETOOTH_INTEROPERABILITY_LIST,
176 Settings.Global.BLUETOOTH_MAP_CLIENT_PRIORITY_PREFIX,
177 Settings.Global.BLUETOOTH_MAP_PRIORITY_PREFIX,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000178 Settings.Global.BLUETOOTH_PAN_PRIORITY_PREFIX,
179 Settings.Global.BLUETOOTH_PBAP_CLIENT_PRIORITY_PREFIX,
180 Settings.Global.BLUETOOTH_SAP_PRIORITY_PREFIX,
Jakub Pawlowskic2d7be62017-11-22 10:57:42 -0800181 Settings.Global.BLUETOOTH_HEARING_AID_PRIORITY_PREFIX,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000182 Settings.Global.BOOT_COUNT,
183 Settings.Global.CAPTIVE_PORTAL_FALLBACK_URL,
184 Settings.Global.CAPTIVE_PORTAL_HTTPS_URL,
185 Settings.Global.CAPTIVE_PORTAL_HTTP_URL,
186 Settings.Global.CAPTIVE_PORTAL_MODE,
Michal Karpinski034a83f2017-04-26 19:25:25 +0100187 Settings.Global.CAPTIVE_PORTAL_OTHER_FALLBACK_URLS,
Remi NGUYEN VAN8255c2d2018-05-22 10:01:53 +0900188 Settings.Global.CAPTIVE_PORTAL_FALLBACK_PROBE_SPECS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000189 Settings.Global.CAPTIVE_PORTAL_SERVER,
190 Settings.Global.CAPTIVE_PORTAL_USE_HTTPS,
191 Settings.Global.CAPTIVE_PORTAL_USER_AGENT,
192 Settings.Global.CAR_DOCK_SOUND,
193 Settings.Global.CARRIER_APP_WHITELIST,
goneil15f5a7e2018-02-16 17:33:56 -0800194 Settings.Global.CARRIER_APP_NAMES,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000195 Settings.Global.CAR_UNDOCK_SOUND,
196 Settings.Global.CDMA_CELL_BROADCAST_SMS,
197 Settings.Global.CDMA_ROAMING_MODE,
198 Settings.Global.CDMA_SUBSCRIPTION_MODE,
199 Settings.Global.CELL_ON,
200 Settings.Global.CERT_PIN_UPDATE_CONTENT_URL,
201 Settings.Global.CERT_PIN_UPDATE_METADATA_URL,
202 Settings.Global.COMPATIBILITY_MODE,
203 Settings.Global.CONNECTIVITY_CHANGE_DELAY,
204 Settings.Global.CONNECTIVITY_METRICS_BUFFER_SIZE,
205 Settings.Global.CONNECTIVITY_SAMPLING_INTERVAL_IN_SECONDS,
206 Settings.Global.CONTACT_METADATA_SYNC_ENABLED,
Abodunrinwa Tokif438e142018-10-30 19:13:04 +0000207 Settings.Global.CONVERSATION_ACTIONS_UPDATE_CONTENT_URL,
208 Settings.Global.CONVERSATION_ACTIONS_UPDATE_METADATA_URL,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000209 Settings.Global.CONTACTS_DATABASE_WAL_ENABLED,
210 Settings.Global.DATA_ACTIVITY_TIMEOUT_MOBILE,
211 Settings.Global.DATA_ACTIVITY_TIMEOUT_WIFI,
Amith Yamasani39452022017-03-21 15:23:47 -0700212 Settings.Global.DATABASE_CREATION_BUILDID,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000213 Settings.Global.DATABASE_DOWNGRADE_REASON,
214 Settings.Global.DATA_ROAMING,
215 Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS,
216 Settings.Global.DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS,
Jayachandran C8ef41bf2018-12-06 11:12:07 -0800217 Settings.Global.DATA_STALL_RECOVERY_ON_BAD_NETWORK,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000218 Settings.Global.DEBUG_APP,
219 Settings.Global.DEBUG_VIEW_ATTRIBUTES,
Aurimas Liutikas8f004c82019-01-17 17:20:10 -0800220 Settings.Global.DEBUG_VIEW_ATTRIBUTES_APPLICATION_PACKAGE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000221 Settings.Global.DEFAULT_DNS_SERVER,
222 Settings.Global.DEFAULT_INSTALL_LOCATION,
Narayan Kamath94bcdbc2017-07-17 15:32:53 +0100223 Settings.Global.DEFAULT_RESTRICT_BACKGROUND_DATA,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000224 Settings.Global.DESK_DOCK_SOUND,
225 Settings.Global.DESK_UNDOCK_SOUND,
226 Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT,
Andrii Kulian15cfb422018-11-07 13:38:49 -0800227 Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000228 Settings.Global.DEVELOPMENT_FORCE_RESIZABLE_ACTIVITIES,
229 Settings.Global.DEVELOPMENT_FORCE_RTL,
Shivam Agrawal780b5bb2019-07-17 10:17:11 -0700230 Settings.Global.DEVELOPMENT_ENABLE_SIZECOMPAT_FREEFORM,
Vishnu Nairf6ef1c72020-01-23 16:28:33 -0800231 Settings.Global.DEVELOPMENT_RENDER_SHADOWS_IN_COMPOSITOR,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000232 Settings.Global.DEVICE_DEMO_MODE,
233 Settings.Global.DEVICE_IDLE_CONSTANTS,
Kweku Adams9f488e22019-01-14 16:25:08 -0800234 Settings.Global.BATTERY_SAVER_ADAPTIVE_CONSTANTS,
jackqdyulei455e90a2017-02-09 15:29:16 -0800235 Settings.Global.BATTERY_SAVER_CONSTANTS,
jackqdyulei29f91ea2017-12-13 15:01:43 -0800236 Settings.Global.BATTERY_TIP_CONSTANTS,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100237 Settings.Global.DEFAULT_SM_DP_PLUS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000238 Settings.Global.DEVICE_NAME,
Bryan Mawhinney20924842017-05-11 12:50:14 +0100239 Settings.Global.DEVICE_POLICY_CONSTANTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000240 Settings.Global.DEVICE_PROVISIONED,
241 Settings.Global.DEVICE_PROVISIONING_MOBILE_DATA_ENABLED,
242 Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD,
Ajay Dudanibcfcd6c2018-02-05 10:44:27 -0800243 Settings.Global.DISPLAY_PANEL_LPM,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000244 Settings.Global.DISPLAY_SCALING_FORCE,
245 Settings.Global.DISPLAY_SIZE_FORCED,
246 Settings.Global.DNS_RESOLVER_MAX_SAMPLES,
247 Settings.Global.DNS_RESOLVER_MIN_SAMPLES,
248 Settings.Global.DNS_RESOLVER_SAMPLE_VALIDITY_SECONDS,
249 Settings.Global.DNS_RESOLVER_SUCCESS_THRESHOLD_PERCENT,
250 Settings.Global.DOCK_SOUNDS_ENABLED_WHEN_ACCESSIBILITY,
251 Settings.Global.DOWNLOAD_MAX_BYTES_OVER_MOBILE,
252 Settings.Global.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE,
253 Settings.Global.DROPBOX_AGE_SECONDS,
254 Settings.Global.DROPBOX_MAX_FILES,
255 Settings.Global.DROPBOX_QUOTA_KB,
256 Settings.Global.DROPBOX_QUOTA_PERCENT,
257 Settings.Global.DROPBOX_RESERVE_PERCENT,
258 Settings.Global.DROPBOX_TAG_PREFIX,
259 Settings.Global.EMERGENCY_AFFORDANCE_NEEDED,
Adrian Roos000cf5e2017-11-10 15:55:18 +0100260 Settings.Global.EMULATE_DISPLAY_CUTOUT,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000261 Settings.Global.ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED,
Daniel Nishi0f703e62017-02-21 15:19:27 -0800262 Settings.Global.ENABLE_CACHE_QUOTA_CALCULATION,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000263 Settings.Global.ENABLE_CELLULAR_ON_BOOT,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100264 Settings.Global.ENABLE_DELETION_HELPER_NO_THRESHOLD_TOGGLE,
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +0000265 Settings.Global.ENABLE_DISKSTATS_LOGGING,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000266 Settings.Global.ENABLE_EPHEMERAL_FEATURE,
Kweku Adams2d79ce52020-05-05 12:31:35 -0700267 Settings.Global.ENABLE_RESTRICTED_BUCKET,
Salvador Martinez04b98332018-10-02 11:28:39 -0700268 Settings.Global.DYNAMIC_POWER_SAVINGS_ENABLED,
269 Settings.Global.DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD,
Petr Cermak10011fa2018-02-05 19:00:54 +0000270 Settings.Global.SMART_REPLIES_IN_NOTIFICATIONS_FLAGS,
Milo Sredkovd8cacd52018-11-27 15:52:10 +0000271 Settings.Global.SMART_SUGGESTIONS_IN_NOTIFICATIONS_FLAGS,
Yurii Zubrytskyi4a90c802020-03-26 16:28:24 -0700272 Settings.Global.ENABLE_ADB_INCREMENTAL_INSTALL_DEFAULT,
Blake Kragtenef0da072020-02-25 12:15:54 -0800273 Settings.Global.ENHANCED_CONNECTIVITY_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000274 Settings.Global.ENHANCED_4G_MODE_ENABLED,
275 Settings.Global.EPHEMERAL_COOKIE_MAX_SIZE_BYTES,
276 Settings.Global.ERROR_LOGCAT_PREFIX,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100277 Settings.Global.EUICC_PROVISIONED,
Qingxi Liead12712018-04-11 15:14:56 -0700278 Settings.Global.EUICC_SUPPORTED_COUNTRIES,
Alex Lin7dd53c92019-11-20 16:32:07 -0800279 Settings.Global.EUICC_UNSUPPORTED_COUNTRIES,
qingxi2f231512017-06-23 15:32:53 -0700280 Settings.Global.EUICC_FACTORY_RESET_TIMEOUT_MILLIS,
Qingxi Lie0662472019-05-17 15:16:21 -0700281 Settings.Global.EUICC_REMOVING_INVISIBLE_PROFILES_TIMEOUT_MILLIS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000282 Settings.Global.FANCY_IME_ANIMATIONS,
283 Settings.Global.FORCE_ALLOW_ON_EXTERNAL,
Suprabh Shukla4deb8522018-01-08 16:27:10 -0800284 Settings.Global.FORCED_APP_STANDBY_ENABLED,
Nancy Zheng525aaa12018-01-12 11:45:37 -0800285 Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED,
yuanlub6b04952018-02-20 14:28:13 -0800286 Settings.Global.WIFI_ON_WHEN_PROXY_DISCONNECTED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000287 Settings.Global.FSTRIM_MANDATORY_INTERVAL,
Hui Yu88910de2019-12-16 14:35:27 -0800288 Settings.Global.FOREGROUND_SERVICE_STARTS_LOGGING_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000289 Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST,
290 Settings.Global.GLOBAL_HTTP_PROXY_HOST,
291 Settings.Global.GLOBAL_HTTP_PROXY_PAC,
292 Settings.Global.GLOBAL_HTTP_PROXY_PORT,
Yu-Han Yangab3e7bd2018-04-06 10:23:28 -0700293 Settings.Global.GNSS_HAL_LOCATION_REQUEST_DURATION_MILLIS,
Yu-Han Yang66c7ea92018-03-11 17:17:15 -0700294 Settings.Global.GNSS_SATELLITE_BLACKLIST,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000295 Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS,
Amy0c2e29f2018-10-23 12:17:52 -0700296 Settings.Global.HDMI_CEC_SWITCH_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000297 Settings.Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED,
298 Settings.Global.HDMI_CONTROL_AUTO_WAKEUP_ENABLED,
299 Settings.Global.HDMI_CONTROL_ENABLED,
Marvin Raminda665a62020-03-16 14:17:58 +0100300 Settings.Global.HDMI_CONTROL_VOLUME_CONTROL_ENABLED,
Donghyun Choc1fa9af2016-12-27 18:31:09 +0900301 Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000302 Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED,
David Brazdil06ae4b82018-11-02 18:01:45 +0000303 Settings.Global.HIDDEN_API_POLICY,
Dianne Hackborn82b17ca2018-04-06 16:00:08 -0700304 Settings.Global.HIDE_ERROR_DIALOGS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000305 Settings.Global.HTTP_PROXY,
Salvador Martinezbb902fc2018-01-22 19:46:55 -0800306 HYBRID_SYSUI_BATTERY_WARNING_FLAGS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000307 Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY,
308 Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100309 Settings.Global.INSTANT_APP_DEXOPT_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000310 Settings.Global.INTENT_FIREWALL_UPDATE_CONTENT_URL,
311 Settings.Global.INTENT_FIREWALL_UPDATE_METADATA_URL,
312 Settings.Global.JOB_SCHEDULER_CONSTANTS,
Kweku Adams4e774a32019-04-24 18:01:29 -0700313 Settings.Global.JOB_SCHEDULER_QUOTA_CONTROLLER_CONSTANTS,
314 Settings.Global.JOB_SCHEDULER_TIME_CONTROLLER_CONSTANTS,
Robin Lee81ad9722018-01-19 16:34:31 +0100315 Settings.Global.KEEP_PROFILE_IN_BACKGROUND,
Misha Wagner4b32c9f2019-01-25 15:30:14 +0000316 Settings.Global.KERNEL_CPU_THREAD_READER,
Michal Karpinski034a83f2017-04-26 19:25:25 +0100317 Settings.Global.LANG_ID_UPDATE_CONTENT_URL,
318 Settings.Global.LANG_ID_UPDATE_METADATA_URL,
Ying Zhengd067cd22018-08-30 09:57:01 -0700319 Settings.Global.LAST_ACTIVE_USER_ID,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000320 Settings.Global.LOCATION_BACKGROUND_THROTTLE_INTERVAL_MS,
Lifu Tangc94ef4d2017-03-23 23:48:00 -0700321 Settings.Global.LOCATION_BACKGROUND_THROTTLE_PROXIMITY_ALERT_INTERVAL_MS,
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +0000322 Settings.Global.LOCATION_BACKGROUND_THROTTLE_PACKAGE_WHITELIST,
Soonil Nagarkar397ad582019-01-23 22:47:57 -0800323 Settings.Global.LOCATION_IGNORE_SETTINGS_PACKAGE_WHITELIST,
Makoto Onuki0000d322017-11-28 16:31:47 -0800324 Settings.Global.LOCATION_GLOBAL_KILL_SWITCH,
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +0000325 Settings.Global.LOCATION_SETTINGS_LINK_TO_PERMISSIONS_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000326 Settings.Global.LOCK_SOUND,
Marcin Oczeretko3680ae62018-08-23 16:33:34 +0100327 Settings.Global.LOOPER_STATS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000328 Settings.Global.LOW_BATTERY_SOUND,
329 Settings.Global.LOW_BATTERY_SOUND_TIMEOUT,
330 Settings.Global.LOW_POWER_MODE,
Makoto Onuki524b4dfe2018-03-06 17:34:15 -0800331 Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL_MAX,
Makoto Onukia3cd7b92018-03-19 14:47:05 -0700332 Settings.Global.LOW_POWER_MODE_STICKY,
Makoto Onukibc064d4b2018-03-27 14:48:42 -0700333 Settings.Global.LOW_POWER_MODE_SUGGESTION_PARAMS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000334 Settings.Global.LTE_SERVICE_FORCED,
Edward Savage-Jonesce7a01f2015-12-09 21:16:50 +0100335 Settings.Global.LID_BEHAVIOR,
Simon MacMullend10fa302019-12-04 16:40:21 +0000336 Settings.Global.MAX_ERROR_BYTES_PREFIX,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000337 Settings.Global.MAX_NOTIFICATION_ENQUEUE_RATE,
Philip P. Moltmann7e25b3d2018-03-09 20:22:58 -0800338 Settings.Global.MAX_SOUND_TRIGGER_DETECTION_SERVICE_OPS_PER_DAY,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000339 Settings.Global.MDC_INITIAL_MAX_RETRY,
340 Settings.Global.MHL_INPUT_SWITCHING_ENABLED,
341 Settings.Global.MHL_POWER_CHARGE_ENABLED,
Jayachandran C8ef41bf2018-12-06 11:12:07 -0800342 Settings.Global.MIN_DURATION_BETWEEN_RECOVERY_STEPS_IN_MS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000343 Settings.Global.MOBILE_DATA, // Candidate for backup?
344 Settings.Global.MOBILE_DATA_ALWAYS_ON,
345 Settings.Global.MODE_RINGER,
346 Settings.Global.MULTI_SIM_DATA_CALL_SUBSCRIPTION,
347 Settings.Global.MULTI_SIM_SMS_PROMPT,
348 Settings.Global.MULTI_SIM_SMS_SUBSCRIPTION,
349 Settings.Global.MULTI_SIM_VOICE_CALL_SUBSCRIPTION,
350 Settings.Global.MULTI_SIM_VOICE_PROMPT,
Hongyi Zhanga02118d2018-11-15 20:15:38 -0800351 Settings.Global.NATIVE_FLAGS_HEALTH_CHECK_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000352 Settings.Global.NETSTATS_DEV_BUCKET_DURATION,
353 Settings.Global.NETSTATS_DEV_DELETE_AGE,
354 Settings.Global.NETSTATS_DEV_PERSIST_BYTES,
355 Settings.Global.NETSTATS_DEV_ROTATE_AGE,
356 Settings.Global.NETSTATS_ENABLED,
357 Settings.Global.NETSTATS_GLOBAL_ALERT_BYTES,
358 Settings.Global.NETSTATS_POLL_INTERVAL,
359 Settings.Global.NETSTATS_SAMPLE_ENABLED,
Jeff Sharkeyf4de2942017-08-29 15:32:13 -0600360 Settings.Global.NETSTATS_AUGMENT_ENABLED,
junyulai1be2d732020-01-02 19:35:59 +0800361 Settings.Global.NETSTATS_COMBINE_SUBTYPE_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000362 Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE,
363 Settings.Global.NETSTATS_UID_BUCKET_DURATION,
364 Settings.Global.NETSTATS_UID_DELETE_AGE,
365 Settings.Global.NETSTATS_UID_PERSIST_BYTES,
366 Settings.Global.NETSTATS_UID_ROTATE_AGE,
367 Settings.Global.NETSTATS_UID_TAG_BUCKET_DURATION,
368 Settings.Global.NETSTATS_UID_TAG_DELETE_AGE,
369 Settings.Global.NETSTATS_UID_TAG_PERSIST_BYTES,
370 Settings.Global.NETSTATS_UID_TAG_ROTATE_AGE,
Jeff Sharkey36b414b2018-03-30 11:00:03 -0600371 Settings.Global.NETPOLICY_QUOTA_ENABLED,
372 Settings.Global.NETPOLICY_QUOTA_UNLIMITED,
373 Settings.Global.NETPOLICY_QUOTA_LIMITED,
374 Settings.Global.NETPOLICY_QUOTA_FRAC_JOBS,
375 Settings.Global.NETPOLICY_QUOTA_FRAC_MULTIPATH,
376 Settings.Global.NETPOLICY_OVERRIDE_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000377 Settings.Global.NETWORK_AVOID_BAD_WIFI,
Remi NGUYEN VANe0ec9922018-03-29 16:17:19 +0900378 Settings.Global.NETWORK_DEFAULT_DAILY_MULTIPATH_QUOTA_BYTES,
Bryan Mawhinney9a471b942017-02-01 13:18:07 +0000379 Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE,
Ricky Wai1a6e6672017-10-27 14:46:01 +0100380 Settings.Global.NETWORK_WATCHLIST_LAST_REPORT_TIME,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000381 Settings.Global.NETWORK_PREFERENCE,
Bryan Mawhinney2c5f95a2017-02-21 10:58:23 +0000382 Settings.Global.NETWORK_RECOMMENDATIONS_PACKAGE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000383 Settings.Global.NETWORK_SCORER_APP,
384 Settings.Global.NETWORK_SCORING_PROVISIONED,
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +0000385 Settings.Global.NETWORK_SCORING_UI_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000386 Settings.Global.NETWORK_SWITCH_NOTIFICATION_DAILY_LIMIT,
387 Settings.Global.NETWORK_SWITCH_NOTIFICATION_RATE_LIMIT_MILLIS,
Ricky Waieef50652017-12-21 16:27:40 +0000388 Settings.Global.NETWORK_WATCHLIST_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000389 Settings.Global.NEW_CONTACT_AGGREGATOR,
Christine Franks8ad6f6d2017-12-13 18:40:43 -0800390 Settings.Global.NIGHT_DISPLAY_FORCED_AUTO_MODE_AVAILABLE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000391 Settings.Global.NITZ_UPDATE_DIFF,
392 Settings.Global.NITZ_UPDATE_SPACING,
Chris Wrene901a7e2017-10-02 17:29:46 -0400393 Settings.Global.NOTIFICATION_SNOOZE_OPTIONS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000394 Settings.Global.NSD_ON,
395 Settings.Global.NTP_SERVER,
396 Settings.Global.NTP_TIMEOUT,
397 Settings.Global.OTA_DISABLE_AUTOMATIC_UPDATE,
398 Settings.Global.OVERLAY_DISPLAY_DEVICES,
399 Settings.Global.PAC_CHANGE_DELAY,
400 Settings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000401 Settings.Global.PACKAGE_VERIFIER_INCLUDE_ADB,
402 Settings.Global.PACKAGE_VERIFIER_SETTING_VISIBLE,
403 Settings.Global.PACKAGE_VERIFIER_TIMEOUT,
404 Settings.Global.PDP_WATCHDOG_ERROR_POLL_COUNT,
405 Settings.Global.PDP_WATCHDOG_ERROR_POLL_INTERVAL_MS,
406 Settings.Global.PDP_WATCHDOG_LONG_POLL_INTERVAL_MS,
407 Settings.Global.PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT,
408 Settings.Global.PDP_WATCHDOG_POLL_INTERVAL_MS,
409 Settings.Global.PDP_WATCHDOG_TRIGGER_PACKET_COUNT,
410 Settings.Global.POLICY_CONTROL,
Santos Cordon623526b2019-04-09 17:02:38 +0100411 Settings.Global.POWER_BUTTON_SUPPRESSION_DELAY_AFTER_GESTURE_WAKE,
Bryan Mawhinney24a2ae52017-01-31 11:18:50 +0000412 Settings.Global.POWER_MANAGER_CONSTANTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000413 Settings.Global.PREFERRED_NETWORK_MODE,
Erik Kline19841792018-05-16 16:41:57 +0900414 Settings.Global.PRIVATE_DNS_DEFAULT_MODE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000415 Settings.Global.PROVISIONING_APN_ALARM_DELAY_IN_MS,
416 Settings.Global.RADIO_BLUETOOTH,
417 Settings.Global.RADIO_CELL,
418 Settings.Global.RADIO_NFC,
419 Settings.Global.RADIO_WIFI,
420 Settings.Global.RADIO_WIMAX,
Amin Shaikhd3c81932017-02-06 16:22:42 -0800421 Settings.Global.RECOMMENDED_NETWORK_EVALUATOR_CACHE_EXPIRY_MS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000422 Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT,
423 Settings.Global.REQUIRE_PASSWORD_TO_DECRYPT,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000424 Settings.Global.SAFE_BOOT_DISALLOWED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000425 Settings.Global.SELINUX_STATUS,
426 Settings.Global.SELINUX_UPDATE_CONTENT_URL,
427 Settings.Global.SELINUX_UPDATE_METADATA_URL,
428 Settings.Global.SEND_ACTION_APP_ERROR,
429 Settings.Global.SET_GLOBAL_HTTP_PROXY,
430 Settings.Global.SET_INSTALL_LOCATION,
431 Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL,
432 Settings.Global.SETUP_PREPAID_DETECTION_REDIR_HOST,
433 Settings.Global.SETUP_PREPAID_DETECTION_TARGET_URL,
Fan Zhangf5d74c72018-08-01 09:32:38 -0700434 Settings.Global.SETTINGS_USE_EXTERNAL_PROVIDER_API,
435 Settings.Global.SETTINGS_USE_PSD_API,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000436 Settings.Global.SHORTCUT_MANAGER_CONSTANTS,
Andrew Sapperstein43643ae2017-12-20 15:17:33 -0800437 Settings.Global.SHOW_FIRST_CRASH_DIALOG,
Ricky Wai13b0abe2018-10-23 11:03:02 +0100438 Settings.Global.SHOW_HIDDEN_LAUNCHER_ICON_APPS_ENABLED,
Andrew Sapperstein5b679c42018-01-16 11:13:40 -0800439 Settings.Global.SHOW_MUTE_IN_CRASH_DIALOG,
Ricky Wai13b0abe2018-10-23 11:03:02 +0100440 Settings.Global.SHOW_NEW_APP_INSTALLED_NOTIFICATION_ENABLED,
Geoffrey Pitschbd3ec6a2017-05-04 14:56:33 -0400441 Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS,
Andrew Sapperstein5b679c42018-01-16 11:13:40 -0800442 Settings.Global.SHOW_RESTART_IN_CRASH_DIALOG,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000443 Settings.Global.SHOW_TEMPERATURE_WARNING,
Sherry Huangce02ed32019-01-17 20:37:29 +0800444 Settings.Global.SHOW_USB_TEMPERATURE_ALARM,
Mathew Inwood1b1639d2018-11-29 16:42:32 +0000445 Settings.Global.SIGNED_CONFIG_VERSION,
Michal Karpinski034a83f2017-04-26 19:25:25 +0100446 Settings.Global.SMART_SELECTION_UPDATE_CONTENT_URL,
447 Settings.Global.SMART_SELECTION_UPDATE_METADATA_URL,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000448 Settings.Global.SMS_OUTGOING_CHECK_INTERVAL_MS,
449 Settings.Global.SMS_OUTGOING_CHECK_MAX_COUNT,
450 Settings.Global.SMS_SHORT_CODE_CONFIRMATION,
451 Settings.Global.SMS_SHORT_CODE_RULE,
452 Settings.Global.SMS_SHORT_CODES_UPDATE_CONTENT_URL,
453 Settings.Global.SMS_SHORT_CODES_UPDATE_METADATA_URL,
Philip P. Moltmann18e3eb82018-03-09 16:55:55 -0800454 Settings.Global.SOUND_TRIGGER_DETECTION_SERVICE_OP_TIMEOUT,
Sundeep Ghuman9bb85d32017-08-28 17:04:16 -0700455 Settings.Global.SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS,
Fyodor Kupolovee90c032017-12-12 11:52:57 -0800456 Settings.Global.SQLITE_COMPATIBILITY_WAL_FLAGS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000457 Settings.Global.STORAGE_BENCHMARK_INTERVAL,
Daniel Nishi5782b5c2017-08-24 10:28:52 -0700458 Settings.Global.STORAGE_SETTINGS_CLOBBER_THRESHOLD,
Makoto Onukiaad2b512018-02-07 09:31:46 -0800459 Settings.Global.SYNC_MANAGER_CONSTANTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000460 Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS,
461 Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL,
Jeff Sharkey78f6f7f2017-02-21 13:57:31 -0700462 Settings.Global.SYS_STORAGE_CACHE_MAX_BYTES,
463 Settings.Global.SYS_STORAGE_CACHE_PERCENTAGE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000464 Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES,
465 Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES,
466 Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE,
Shikhar Srivastav9a896a6c2018-01-09 16:58:36 -0800467 Settings.Global.SYS_VDSO,
Marissa Wall04e7a9b2018-02-02 09:35:58 -0800468 Settings.Global.SYS_UIDCPUPOWER,
Hector Dearmancf92ca12018-03-07 11:12:35 +0000469 Settings.Global.SYS_TRACED,
Makoto Onuki3c9c9982018-01-17 10:46:48 -0800470 Settings.Global.FPS_DEVISOR,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000471 Settings.Global.TCP_DEFAULT_INIT_RWND,
472 Settings.Global.TETHER_DUN_APN,
473 Settings.Global.TETHER_DUN_REQUIRED,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100474 Settings.Global.TETHER_OFFLOAD_DISABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000475 Settings.Global.TETHER_SUPPORTED,
Remi NGUYEN VAN05974532018-08-01 15:51:28 +0900476 Settings.Global.TETHER_ENABLE_LEGACY_DHCP_SERVER,
Abodunrinwa Toki0e6b43e2017-09-19 23:18:40 +0100477 Settings.Global.TEXT_CLASSIFIER_CONSTANTS,
Tony Makfc374572019-03-05 14:46:24 +0000478 Settings.Global.TEXT_CLASSIFIER_ACTION_MODEL_PARAMS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000479 Settings.Global.THEATER_MODE_ON,
Michael Kwan5f5a0bf2018-03-16 12:25:50 -0700480 Settings.Global.TIME_ONLY_MODE_CONSTANTS,
Salvador Martinez580098fe2019-04-11 10:42:15 -0700481 Settings.Global.TIME_REMAINING_ESTIMATE_MILLIS,
482 Settings.Global.TIME_REMAINING_ESTIMATE_BASED_ON_USAGE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000483 Settings.Global.TRANSITION_ANIMATION_SCALE,
484 Settings.Global.TRUSTED_SOUND,
485 Settings.Global.TZINFO_UPDATE_CONTENT_URL,
486 Settings.Global.TZINFO_UPDATE_METADATA_URL,
Svet Ganovf36d53c2017-05-24 00:27:21 -0700487 Settings.Global.INSTALLED_INSTANT_APP_MIN_CACHE_PERIOD,
488 Settings.Global.INSTALLED_INSTANT_APP_MAX_CACHE_PERIOD,
489 Settings.Global.UNINSTALLED_INSTANT_APP_MIN_CACHE_PERIOD,
490 Settings.Global.UNINSTALLED_INSTANT_APP_MAX_CACHE_PERIOD,
491 Settings.Global.UNUSED_STATIC_SHARED_LIB_MIN_CACHE_PERIOD,
Robin Bennett1193a352018-03-28 14:49:58 +0100492 Settings.Global.UNGAZE_SLEEP_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000493 Settings.Global.UNLOCK_SOUND,
494 Settings.Global.USE_GOOGLE_MAIL,
Damien Bargiacchi2e9b8c32018-05-30 13:19:41 -0700495 Settings.Global.USER_ABSENT_RADIOS_OFF_FOR_SMALL_BATTERY_ENABLED,
496 Settings.Global.USER_ABSENT_TOUCH_OFF_FOR_SMALL_BATTERY_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000497 Settings.Global.VT_IMS_ENABLED,
498 Settings.Global.WAIT_FOR_DEBUGGER,
Cody Northrop86cedcb2017-10-20 09:03:13 -0600499 Settings.Global.ENABLE_GPU_DEBUG_LAYERS,
500 Settings.Global.GPU_DEBUG_APP,
501 Settings.Global.GPU_DEBUG_LAYERS,
Cody Northrop0fa1d222018-10-23 13:13:21 -0600502 Settings.Global.GPU_DEBUG_LAYERS_GLES,
Cody Northropdc2fd942019-03-28 19:27:19 -0600503 Settings.Global.GLOBAL_SETTINGS_ANGLE_DEBUG_PACKAGE,
Tim Van Patten3c612842018-11-09 16:48:24 -0700504 Settings.Global.GLOBAL_SETTINGS_ANGLE_GL_DRIVER_ALL_ANGLE,
505 Settings.Global.GLOBAL_SETTINGS_ANGLE_GL_DRIVER_SELECTION_PKGS,
506 Settings.Global.GLOBAL_SETTINGS_ANGLE_GL_DRIVER_SELECTION_VALUES,
Cody Northrop5ebb0db2019-01-15 14:06:36 -0700507 Settings.Global.GLOBAL_SETTINGS_ANGLE_WHITELIST,
Yiwei Zhang2b3be862019-01-24 14:45:53 -0800508 Settings.Global.GAME_DRIVER_ALL_APPS,
509 Settings.Global.GAME_DRIVER_OPT_IN_APPS,
Yiwei Zhang4836fb12019-06-09 15:10:57 -0700510 Settings.Global.GAME_DRIVER_PRERELEASE_OPT_IN_APPS,
Yiwei Zhang2b3be862019-01-24 14:45:53 -0800511 Settings.Global.GAME_DRIVER_OPT_OUT_APPS,
Peiyong Lin075a9e82019-02-07 15:52:38 -0800512 Settings.Global.GAME_DRIVER_BLACKLISTS,
Yiwei Zhang2b3be862019-01-24 14:45:53 -0800513 Settings.Global.GAME_DRIVER_BLACKLIST,
Peiyong Linb3b4cce2019-01-23 16:27:54 -0800514 Settings.Global.GAME_DRIVER_WHITELIST,
Yiwei Zhang03f3ff22019-02-14 10:43:42 -0800515 Settings.Global.GAME_DRIVER_SPHAL_LIBRARIES,
Tim Van Pattenddc43912018-12-18 17:47:52 -0700516 Settings.Global.GLOBAL_SETTINGS_SHOW_ANGLE_IN_USE_DIALOG_BOX,
Cody Northropebe6a562018-10-15 07:22:23 -0600517 Settings.Global.GPU_DEBUG_LAYER_APP,
gomo48f1a642017-11-10 20:35:46 -0800518 Settings.Global.ENABLE_GNSS_RAW_MEAS_FULL_TRACKING,
goneil42919602018-01-23 17:37:26 -0800519 Settings.Global.INSTALL_CARRIER_APP_NOTIFICATION_PERSISTENT,
520 Settings.Global.INSTALL_CARRIER_APP_NOTIFICATION_SLEEP_MILLIS,
Fan Zhangc69c8b62018-06-05 13:30:11 -0700521 Settings.Global.USER_SWITCHER_ENABLED,
Sudheer Shanka5918c672017-03-21 19:31:37 -0700522 Settings.Global.NETWORK_ACCESS_TIMEOUT_MS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000523 Settings.Global.WARNING_TEMPERATURE,
524 Settings.Global.WEBVIEW_DATA_REDUCTION_PROXY_KEY,
525 Settings.Global.WEBVIEW_FALLBACK_LOGIC_ENABLED,
526 Settings.Global.WEBVIEW_MULTIPROCESS,
527 Settings.Global.WEBVIEW_PROVIDER,
528 Settings.Global.WFC_IMS_ENABLED,
529 Settings.Global.WFC_IMS_MODE,
530 Settings.Global.WFC_IMS_ROAMING_ENABLED,
531 Settings.Global.WFC_IMS_ROAMING_MODE,
Leif Hendrik Wildenfd306632018-05-02 12:05:24 -0700532 Settings.Global.WIFI_ALWAYS_REQUESTED,
Bryan Mawhinney9a471b942017-02-01 13:18:07 +0000533 Settings.Global.WIFI_BADGING_THRESHOLDS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000534 Settings.Global.WIFI_BOUNCE_DELAY_OVERRIDE_MS,
535 Settings.Global.WIFI_COUNTRY_CODE,
536 Settings.Global.WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN,
537 Settings.Global.WIFI_DISPLAY_CERTIFICATION_ON,
538 Settings.Global.WIFI_DISPLAY_ON,
539 Settings.Global.WIFI_DISPLAY_WPS_CONFIG,
540 Settings.Global.WIFI_ENHANCED_AUTO_JOIN,
541 Settings.Global.WIFI_EPHEMERAL_OUT_OF_RANGE_TIMEOUT_MS,
542 Settings.Global.WIFI_FRAMEWORK_SCAN_INTERVAL_MS,
543 Settings.Global.WIFI_FREQUENCY_BAND,
544 Settings.Global.WIFI_IDLE_MS,
545 Settings.Global.WIFI_MAX_DHCP_RETRY_COUNT,
Roshan Pius849a6f72020-03-23 16:41:21 -0700546 Settings.Global.WIFI_MIGRATION_COMPLETED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000547 Settings.Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS,
548 Settings.Global.WIFI_NETWORK_SHOW_RSSI,
549 Settings.Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY,
550 Settings.Global.WIFI_NUM_OPEN_NETWORKS_KEPT,
551 Settings.Global.WIFI_ON,
552 Settings.Global.WIFI_P2P_DEVICE_NAME,
Jimmy Chenc4240a72018-10-11 18:01:27 +0800553 Settings.Global.WIFI_P2P_PENDING_FACTORY_RESET,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000554 Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE,
555 Settings.Global.WIFI_SCAN_INTERVAL_WHEN_P2P_CONNECTED_MS,
Roshan Piusadb93942018-07-24 14:47:09 -0700556 Settings.Global.WIFI_SCAN_THROTTLE_ENABLED,
Michael Plassf1510fb2018-02-28 16:08:47 -0800557 Settings.Global.WIFI_SCORE_PARAMS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000558 Settings.Global.WIFI_SLEEP_POLICY,
559 Settings.Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000560 Settings.Global.WIFI_VERBOSE_LOGGING_ENABLED,
561 Settings.Global.WIFI_WATCHDOG_ON,
562 Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON,
Beverlyc1313eb2018-01-31 18:07:21 -0500563 Settings.Global.CHARGING_STARTED_SOUND,
Beverlyf364d7c2019-10-10 16:44:43 -0400564 Settings.Global.WIRELESS_CHARGING_STARTED_SOUND,
Beverly91d0a632018-07-02 16:45:00 -0400565 Settings.Global.WINDOW_ANIMATION_SCALE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000566 Settings.Global.WTF_IS_FATAL,
567 Settings.Global.ZEN_MODE,
568 Settings.Global.ZEN_MODE_CONFIG_ETAG,
Daniel Colascione766b6322018-01-08 19:10:36 -0800569 Settings.Global.ZEN_MODE_RINGER_LEVEL,
Michal Karpinskib52575c2018-01-19 17:38:45 +0000570 Settings.Global.ZRAM_ENABLED,
Narayan Kamath8d828252018-01-11 15:22:37 +0000571 Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION,
Mathew Inwood169cb3b2018-02-08 12:23:59 +0000572 Settings.Global.CHAINED_BATTERY_ATTRIBUTION_ENABLED,
Annie Mengd069a882018-03-13 15:31:40 +0000573 Settings.Global.HIDDEN_API_BLACKLIST_EXEMPTIONS,
Annie Menga6d82872018-11-30 12:09:08 +0000574 Settings.Global.BACKUP_AGENT_TIMEOUT_PARAMETERS,
Jeff Sharkeyb0c363b22018-12-15 11:53:03 -0700575 Settings.Global.ISOLATED_STORAGE_LOCAL,
Svet Ganov8455ba22019-01-02 13:05:56 -0800576 Settings.Global.ISOLATED_STORAGE_REMOTE,
577 Settings.Global.APPOP_HISTORY_PARAMETERS,
578 Settings.Global.APPOP_HISTORY_MODE,
579 Settings.Global.APPOP_HISTORY_INTERVAL_MULTIPLIER,
allenwtsuf63b6442019-01-14 10:33:38 +0800580 Settings.Global.APPOP_HISTORY_BASE_INTERVAL_MILLIS,
Eugene Suslac6909ff2020-03-27 15:35:02 -0700581 Settings.Global.AUTO_REVOKE_PARAMETERS,
allenwtsuf63b6442019-01-14 10:33:38 +0800582 Settings.Global.ENABLE_RADIO_BUG_DETECTION,
583 Settings.Global.RADIO_BUG_WAKELOCK_TIMEOUT_COUNT_THRESHOLD,
Malcolm Chen94d74d22018-12-13 19:24:03 -0800584 Settings.Global.RADIO_BUG_SYSTEM_ERROR_COUNT_THRESHOLD,
585 Settings.Global.ENABLED_SUBSCRIPTION_FOR_SLOT,
Dan Sandlerb458f4e2019-03-31 16:00:33 -0400586 Settings.Global.MODEM_STACK_ENABLED_FOR_SLOT,
587 Settings.Global.POWER_BUTTON_LONG_PRESS,
Omer Nebil Yaveroglu15395f52020-01-22 12:14:44 +0000588 Settings.Global.POWER_BUTTON_VERY_LONG_PRESS,
Lucas Dupinfbe9117ed2020-04-29 16:26:21 -0700589 Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, // Temporary for R beta
hughchene3fae2d2020-02-17 17:01:15 +0800590 Settings.Global.INTEGRITY_CHECK_INCLUDES_RULE_PROVIDER,
Song Pan74b5e722020-04-30 16:38:51 +0100591 Settings.Global.CACHED_APPS_FREEZER_ENABLED,
592 Settings.Global.APP_INTEGRITY_VERIFICATION_TIMEOUT,
593 Settings.Global.ADVANCED_BATTERY_USAGE_AMOUNT);
Dan Sandlerb458f4e2019-03-31 16:00:33 -0400594
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000595 private static final Set<String> BACKUP_BLACKLISTED_SECURE_SETTINGS =
596 newHashSet(
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000597 Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE,
Annie Meng37adc272018-05-03 11:21:25 +0100598 Settings.Secure.ACCESSIBILITY_SPEAK_PASSWORD, // Deprecated since O.
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000599 Settings.Secure.ALLOWED_GEOLOCATION_ORIGINS,
600 Settings.Secure.ALWAYS_ON_VPN_APP,
601 Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN,
Pavel Grafova462bcb2019-01-25 08:50:06 +0000602 Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN_WHITELIST,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000603 Settings.Secure.ANDROID_ID,
604 Settings.Secure.ANR_SHOW_BACKGROUND,
605 Settings.Secure.ASSISTANT,
606 Settings.Secure.ASSIST_DISCLOSURE_ENABLED,
Edgar Wang6cb2fee2019-10-08 11:08:28 +0800607 Settings.Secure.ASSIST_GESTURE_ENABLED,
Kevin Chyn6df6b022018-06-06 17:16:50 -0700608 Settings.Secure.ASSIST_GESTURE_SENSITIVITY,
Edgar Wang6cb2fee2019-10-08 11:08:28 +0800609 Settings.Secure.ASSIST_GESTURE_WAKE_ENABLED,
610 Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED,
Kevin Chyn6df6b022018-06-06 17:16:50 -0700611 Settings.Secure.ASSIST_GESTURE_SETUP_COMPLETE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000612 Settings.Secure.ASSIST_SCREENSHOT_ENABLED,
613 Settings.Secure.ASSIST_STRUCTURE_ENABLED,
Robert Horvath5560f382019-07-10 10:46:38 +0200614 Settings.Secure.ATTENTIVE_TIMEOUT,
Felipe Leme78172e72017-12-08 17:01:15 -0800615 Settings.Secure.AUTOFILL_FEATURE_FIELD_CLASSIFICATION,
Felipe Lemefebb7332018-02-12 18:12:55 -0800616 Settings.Secure.AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT,
Felipe Leme78172e72017-12-08 17:01:15 -0800617 Settings.Secure.AUTOFILL_USER_DATA_MAX_FIELD_CLASSIFICATION_IDS_SIZE,
618 Settings.Secure.AUTOFILL_USER_DATA_MAX_USER_DATA_SIZE,
619 Settings.Secure.AUTOFILL_USER_DATA_MAX_VALUE_LENGTH,
620 Settings.Secure.AUTOFILL_USER_DATA_MIN_VALUE_LENGTH,
Philip P. Moltmanne287a152017-05-04 11:07:05 -0700621 Settings.Secure.AUTOFILL_SERVICE_SEARCH_URI,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000622 Settings.Secure.AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000623 Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED,
624 Settings.Secure.AUTOMATIC_STORAGE_MANAGER_LAST_RUN,
Daniel Nishida7332c2017-06-12 10:17:33 -0700625 Settings.Secure.AUTOMATIC_STORAGE_MANAGER_TURNED_OFF_BY_POLICY,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000626 Settings.Secure.BACKUP_AUTO_RESTORE,
627 Settings.Secure.BACKUP_ENABLED,
628 Settings.Secure.BACKUP_PROVISIONED,
629 Settings.Secure.BACKUP_TRANSPORT,
tonyzhu70526c32018-10-25 16:13:14 +0800630 Settings.Secure.CALL_SCREENING_DEFAULT_COMPONENT,
Michal Karpinski72dfff92017-04-27 11:19:04 +0100631 Settings.Secure.CAMERA_LIFT_TRIGGER_ENABLED, // Candidate for backup?
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000632 Settings.Secure.CARRIER_APPS_HANDLED,
Jack Yu39028572017-02-23 09:49:25 -0800633 Settings.Secure.CMAS_ADDITIONAL_BROADCAST_PKG,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000634 Settings.Secure.COMPLETED_CATEGORY_PREFIX,
635 Settings.Secure.CONNECTIVITY_RELEASE_PENDING_INTENT_DELAY_MS,
Felipe Leme91ddeca2019-01-24 18:01:58 -0800636 Settings.Secure.CONTENT_CAPTURE_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000637 Settings.Secure.DEFAULT_INPUT_METHOD,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000638 Settings.Secure.DEVICE_PAIRED,
639 Settings.Secure.DIALER_DEFAULT_APPLICATION,
640 Settings.Secure.DISABLED_PRINT_SERVICES,
641 Settings.Secure.DISABLED_SYSTEM_INPUT_METHODS,
Robert Snoebergerb300a4e2019-02-13 20:13:53 +0000642 Settings.Secure.DOCKED_CLOCK_FACE,
Adrian Roosd0963a02017-05-15 14:33:37 -0700643 Settings.Secure.DOZE_PULSE_ON_LONG_PRESS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000644 Settings.Secure.EMERGENCY_ASSISTANCE_APPLICATION,
Yohei Yukawaca780952018-02-07 22:16:32 +0900645 Settings.Secure.ENABLED_INPUT_METHODS, // Intentionally removed in P
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000646 Settings.Secure.ENABLED_NOTIFICATION_ASSISTANT,
Julia Reynoldsb852e562017-06-06 16:14:18 -0400647 Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000648 Settings.Secure.ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES,
649 Settings.Secure.ENABLED_PRINT_SERVICES,
Aaron Heuckroth00ff1182019-05-03 11:19:13 -0400650 Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE,
Aran Ink93dd25c2019-05-09 14:42:14 -0400651 Settings.Secure.GLOBAL_ACTIONS_PANEL_DEBUG_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000652 Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS,
653 Settings.Secure.INCALL_BACK_BUTTON_BEHAVIOR,
654 Settings.Secure.INPUT_METHOD_SELECTOR_VISIBILITY,
655 Settings.Secure.INPUT_METHODS_SUBTYPE_HISTORY,
656 Settings.Secure.INSTALL_NON_MARKET_APPS,
657 Settings.Secure.LAST_SETUP_SHOWN,
Lifu Tang0cba58f2018-01-23 21:14:15 -0800658 Settings.Secure.LOCATION_CHANGER,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000659 Settings.Secure.LOCATION_MODE,
Philip P. Moltmanne5d998f2019-03-01 09:42:53 -0800660 Settings.Secure.LOCATION_PERMISSIONS_UPGRADE_TO_Q_MODE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000661 Settings.Secure.LOCK_SCREEN_ALLOW_REMOTE_INPUT, // Candidate?
662 Settings.Secure.LOCK_SCREEN_LOCK_AFTER_TIMEOUT,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000663 Settings.Secure.LOCK_TO_APP_EXIT_LOCKED,
664 Settings.Secure.MANAGED_PROFILE_CONTACT_REMOTE_SEARCH,
665 Settings.Secure.MULTI_PRESS_TIMEOUT,
666 Settings.Secure.NFC_PAYMENT_FOREGROUND,
Christine Franks0dbb39d2017-06-27 09:13:35 -0700667 Settings.Secure.NIGHT_DISPLAY_ACTIVATED,
668 Settings.Secure.NIGHT_DISPLAY_LAST_ACTIVATED_TIME,
Mike Digman50752642018-02-15 13:36:09 -0800669 Settings.Secure.NUM_ROTATION_SUGGESTIONS_ACCEPTED,
Anthony Tripaldid09fe312019-03-12 14:58:31 -0400670 Settings.Secure.ODI_CAPTIONS_ENABLED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000671 Settings.Secure.PARENTAL_CONTROL_LAST_UPDATE,
672 Settings.Secure.PAYMENT_SERVICE_SEARCH_URI,
673 Settings.Secure.PRINT_SERVICE_SEARCH_URI,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000674 Settings.Secure.SCREENSAVER_DEFAULT_COMPONENT, // Candidate?
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000675 Settings.Secure.SEARCH_GLOBAL_SEARCH_ACTIVITY,
676 Settings.Secure.SEARCH_MAX_RESULTS_PER_SOURCE,
677 Settings.Secure.SEARCH_MAX_RESULTS_TO_DISPLAY,
678 Settings.Secure.SEARCH_MAX_SHORTCUTS_RETURNED,
679 Settings.Secure.SEARCH_MAX_SOURCE_EVENT_AGE_MILLIS,
680 Settings.Secure.SEARCH_MAX_STAT_AGE_MILLIS,
681 Settings.Secure.SEARCH_MIN_CLICKS_FOR_SOURCE_RANKING,
682 Settings.Secure.SEARCH_MIN_IMPRESSIONS_FOR_SOURCE_RANKING,
683 Settings.Secure.SEARCH_NUM_PROMOTED_SOURCES,
684 Settings.Secure.SEARCH_PER_SOURCE_CONCURRENT_QUERY_LIMIT,
685 Settings.Secure.SEARCH_PREFILL_MILLIS,
686 Settings.Secure.SEARCH_PROMOTED_SOURCE_DEADLINE_MILLIS,
687 Settings.Secure.SEARCH_QUERY_THREAD_CORE_POOL_SIZE,
688 Settings.Secure.SEARCH_QUERY_THREAD_MAX_POOL_SIZE,
689 Settings.Secure.SEARCH_SHORTCUT_REFRESH_CORE_POOL_SIZE,
690 Settings.Secure.SEARCH_SHORTCUT_REFRESH_MAX_POOL_SIZE,
691 Settings.Secure.SEARCH_SOURCE_TIMEOUT_MILLIS,
692 Settings.Secure.SEARCH_THREAD_KEEPALIVE_SECONDS,
Simranjit Singh Kohli2cebd522019-11-21 17:54:55 -0800693 Settings.Secure.SECURE_FRP_MODE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000694 Settings.Secure.SEARCH_WEB_RESULTS_OVERRIDE_LIMIT,
695 Settings.Secure.SELECTED_INPUT_METHOD_SUBTYPE,
Yohei Yukawa1893bd12018-07-02 11:31:42 -0700696 Settings.Secure.SELECTED_SPELL_CHECKER, // Intentionally removed in Q
697 Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, // Intentionally removed in Q
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000698 Settings.Secure.SETTINGS_CLASSNAME,
699 Settings.Secure.SHOW_NOTE_ABOUT_NOTIFICATION_HIDING, // candidate?
Mike Digmane14e6632018-01-11 10:43:08 -0800700 Settings.Secure.SHOW_ROTATION_SUGGESTIONS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000701 Settings.Secure.SKIP_FIRST_USE_HINTS, // candidate?
Bernardo Rufino338832f2018-06-28 10:59:24 +0100702 Settings.Secure.SLEEP_TIMEOUT,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000703 Settings.Secure.SMS_DEFAULT_APPLICATION,
Yohei Yukawa1893bd12018-07-02 11:31:42 -0700704 Settings.Secure.SPELL_CHECKER_ENABLED, // Intentionally removed in Q
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000705 Settings.Secure.TRUST_AGENTS_INITIALIZED,
shubang3e32f592018-11-28 18:58:07 -0800706 Settings.Secure.TV_APP_USES_NON_SYSTEM_INPUTS,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000707 Settings.Secure.TV_INPUT_CUSTOM_LABELS,
708 Settings.Secure.TV_INPUT_HIDDEN_INPUTS,
Bryan Mawhinney99d89802017-06-28 16:22:39 +0100709 Settings.Secure.TV_USER_SETUP_COMPLETE,
Suprabh Shukla0b1356f2017-02-21 14:33:50 -0800710 Settings.Secure.UNKNOWN_SOURCES_DEFAULT_REVERSED,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000711 Settings.Secure.UNSAFE_VOLUME_MUSIC_ACTIVE_MS,
712 Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED,
713 Settings.Secure.USER_SETUP_COMPLETE,
Ajay Nadathur702fc642018-03-09 11:56:01 -0800714 Settings.Secure.USER_SETUP_PERSONALIZATION_STATE,
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000715 Settings.Secure.VOICE_INTERACTION_SERVICE,
716 Settings.Secure.VOICE_RECOGNITION_SERVICE,
Tim Zhengcc1e76a2017-08-30 17:46:19 -0700717 Settings.Secure.INSTANT_APPS_ENABLED,
Lucas Dupin6bd86012017-12-05 17:58:57 -0800718 Settings.Secure.BACKUP_MANAGER_CONSTANTS,
Bernardo Rufinoeaa78b92018-01-26 11:25:37 +0000719 Settings.Secure.BACKUP_LOCAL_TRANSPORT_PARAMETERS,
Michal Karpinski964943a2018-01-19 16:28:26 +0000720 Settings.Secure.KEYGUARD_SLICE_URI,
721 Settings.Secure.PARENTAL_CONTROL_ENABLED,
Daniel Nishi797641272018-01-02 16:48:33 -0800722 Settings.Secure.PARENTAL_CONTROL_REDIRECT_URL,
Makoto Onuki16a0dd22018-03-20 10:40:37 -0700723 Settings.Secure.BLUETOOTH_ON_WHILE_DRIVING,
724 Settings.Secure.LOW_POWER_MANUAL_ACTIVATION_COUNT,
Makoto Onuki52c62952018-03-22 10:43:03 -0700725 Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED,
Artem Iglikov5b538752018-03-27 15:12:18 +0100726 Settings.Secure.SUPPRESS_AUTO_BATTERY_SAVER_SUGGESTION,
Steven Wua680beb2018-05-23 20:04:58 -0400727 Settings.Secure.PACKAGES_TO_CLEAR_DATA_BEFORE_FULL_RESTORE,
728 Settings.Secure.FLASHLIGHT_AVAILABLE,
yuemingw4446ca62018-10-26 18:53:49 +0100729 Settings.Secure.FLASHLIGHT_ENABLED,
Philip P. Moltmannc9907ce2018-11-27 14:09:12 -0800730 Settings.Secure.CROSS_PROFILE_CALENDAR_ENABLED,
731 Settings.Secure.LOCATION_ACCESS_CHECK_INTERVAL_MILLIS,
Kevin Chyn4858da42019-04-11 13:02:56 -0700732 Settings.Secure.LOCATION_ACCESS_CHECK_DELAY_MILLIS,
Kevin Chync78071f2019-04-15 14:11:58 -0700733 Settings.Secure.BIOMETRIC_DEBUG_ENABLED,
734 Settings.Secure.FACE_UNLOCK_ATTENTION_REQUIRED,
joshmccloskey421e2692019-05-06 19:58:07 -0700735 Settings.Secure.FACE_UNLOCK_DIVERSITY_REQUIRED,
Kevin Chynde57cea2019-09-26 21:07:12 -0700736 Settings.Secure.MANAGED_PROVISIONING_DPC_DOWNLOADED,
Edgar Wanga6976a322019-10-05 20:12:03 +0800737 Settings.Secure.AWARE_ENABLED,
738 Settings.Secure.SKIP_GESTURE,
739 Settings.Secure.SILENCE_GESTURE,
740 Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE,
741 Settings.Secure.DOZE_WAKE_DISPLAY_GESTURE,
Edgar Wang32af83b2019-10-18 12:31:24 +0800742 Settings.Secure.FACE_UNLOCK_RE_ENROLL,
chaviw4ce1ddf2019-10-25 13:46:47 -0700743 Settings.Secure.TAP_GESTURE,
Dan Sandlere3d19932019-11-22 11:58:58 -0500744 Settings.Secure.NEARBY_SHARING_COMPONENT, // not user configurable
Rhed Jao129d4192019-11-28 17:28:53 +0800745 Settings.Secure.WINDOW_MAGNIFICATION,
Yogisha Dixit91009992020-01-14 13:31:40 +0000746 Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_MAGNIFICATION_CONTROLLER,
747 Settings.Secure.SUPPRESS_DOZE);
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000748
749 @Test
750 public void systemSettingsBackedUpOrBlacklisted() {
751 checkSettingsBackedUpOrBlacklisted(
752 getCandidateSettings(Settings.System.class),
Al Sutton0833b2e2019-08-22 16:21:30 +0100753 newHashSet(SystemSettings.SETTINGS_TO_BACKUP),
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000754 BACKUP_BLACKLISTED_SYSTEM_SETTINGS);
755 }
756
757 @Test
758 public void globalSettingsBackedUpOrBlacklisted() {
759 checkSettingsBackedUpOrBlacklisted(
Al Sutton0833b2e2019-08-22 16:21:30 +0100760 getCandidateSettings(Settings.Global.class),
761 newHashSet(GlobalSettings.SETTINGS_TO_BACKUP),
762 BACKUP_BLACKLISTED_GLOBAL_SETTINGS);
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000763 }
764
765 @Test
Hui Yu88910de2019-12-16 14:35:27 -0800766 @Suppress //("b/148236308")
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000767 public void secureSettingsBackedUpOrBlacklisted() {
Al Sutton71dc8ff2019-07-12 11:42:03 +0100768 HashSet<String> keys = new HashSet<String>();
Al Sutton0833b2e2019-08-22 16:21:30 +0100769 Collections.addAll(keys, SecureSettings.SETTINGS_TO_BACKUP);
Al Sutton66a3e012019-10-15 15:34:13 +0100770 Collections.addAll(keys, DEVICE_SPECIFIC_SETTINGS_TO_BACKUP);
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000771 checkSettingsBackedUpOrBlacklisted(
772 getCandidateSettings(Settings.Secure.class),
Al Sutton71dc8ff2019-07-12 11:42:03 +0100773 keys,
Al Sutton0833b2e2019-08-22 16:21:30 +0100774 BACKUP_BLACKLISTED_SECURE_SETTINGS);
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000775 }
776
777 private static void checkSettingsBackedUpOrBlacklisted(
778 Set<String> settings, Set<String> settingsToBackup, Set<String> blacklist) {
779 Set<String> settingsNotBackedUp = difference(settings, settingsToBackup);
780 Set<String> settingsNotBackedUpOrBlacklisted = difference(settingsNotBackedUp, blacklist);
Alan Stokes4e1a7422019-09-24 14:15:10 +0100781 assertWithMessage("Settings not backed up or blacklisted")
782 .that(settingsNotBackedUpOrBlacklisted).isEmpty();
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000783
Alan Stokes4e1a7422019-09-24 14:15:10 +0100784 assertWithMessage("blacklisted settings backed up")
785 .that(intersect(settingsToBackup, blacklist)).isEmpty();
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000786 }
787
Al Sutton0833b2e2019-08-22 16:21:30 +0100788 private static Set<String> getCandidateSettings(
789 Class<? extends Settings.NameValueTable> clazz) {
Bryan Mawhinney87b1aac2017-01-16 18:06:07 +0000790 HashSet<String> result = new HashSet<String>();
791 for (Field field : clazz.getDeclaredFields()) {
792 if (looksLikeValidSetting(field)) {
793 try {
794 result.add((String) field.get(null));
795 } catch (IllegalAccessException e) {
796 // Impossible for public fields
797 throw new RuntimeException(e);
798 }
799 }
800 }
801 return result;
802 }
803
804 private static boolean looksLikeValidSetting(Field field) {
805 int modifiers = field.getModifiers();
806 return isPublic(modifiers)
807 && isStatic(modifiers)
808 && isFinal(modifiers)
809 && field.getType() == String.class
810 && field.getAnnotation(Deprecated.class) == null;
811 }
812
813 private static <T> Set<T> difference(Set<T> s1, Set<T> s2) {
814 HashSet<T> result = new HashSet<T>(s1);
815 result.removeAll(s2);
816 return result;
817 }
818
819 private static <T> Set<T> intersect(Set<T> s1, Set<T> s2) {
820 HashSet<T> result = new HashSet<T>(s1);
821 result.retainAll(s2);
822 return result;
823 }
824
825}