系统进行OTA升级时更改默认设置的详细步骤
在进行系统的OTA(Over-The-Air)升级过程中,如果需要对系统默认设置进行更改,以确保升级后的系统能够应用新的默认配置,那么需要执行一系列关键步骤。以下是详细的操作指南:
修改设备Overlay资源
首先,需要定位到设备特定的Overlay资源文件。这些资源文件通常包含了针对特定设备或品牌定制的UI元素和默认设置。
根据需要,对这些Overlay资源进行相应的修改,以反映新的默认设置。
更新defaults.xml文件
接下来,需要进入frameworks/base/packages/SettingsProvider/res/values/目录。
找到defaults.xml文件,并使用文本编辑器打开。
在该文件中,找到需要更改的默认设置项,并更新其值以匹配新的默认配置。
保存并关闭文件。
更新SettingsProvider.java中的SETTINGS_VERSION
然后,需要进入frameworks/base/packages/SettingsProvider/目录。
找到并打开SettingsProvider.java文件。
在该文件中,定位到SETTINGS_VERSION的定义。这个常量用于标识当前系统默认设置的版本。
每当默认设置有重大更改时,都应该递增这个版本的数值。
更新SETTINGS_VERSION的值,以确保系统能够识别并应用新的默认设置。
保存并关闭文件。
示例
修改默认值(双击电源键打开相机功能默认关闭)
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 5cb4c404e09..c1e220b614a 100755
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -82,7 +82,9 @@
<integer name="def_max_sound_trigger_detection_service_ops_per_day" translatable="false">1000</integer>
<integer name="def_sound_trigger_detection_service_op_timeout" translatable="false">15000</integer>
+ <!-- Create by yeruilai 2024-10-11 10:19:02 Double click the power button to start the camera -->
+ <integer name="def_camera_double_tap">1</integer>
+
</resources>
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 53eef230cac..a3c96455cfa 100755
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2448,8 +2448,13 @@ class DatabaseHelper extends SQLiteOpenHelper {
/*
* IMPORTANT: Do not add any more upgrade steps here as the global,
* secure, and system settings are no longer stored in a database
@@ -2457,6 +2462,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
*
* See: SettingsProvider.UpgradeController#onUpgradeLocked
*/
+
+ // Create by yeruilai 2024-10-11 10:19:02 Double click the power button to start the camera
+ loadIntegerSetting(stmt,Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, R.integer.def_camera_double_tap);
} finally {
if (stmt != null) stmt.close();
}
frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 4694f965905..b13e42287c8 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -3653,7 +3653,9 @@ public class SettingsProvider extends ContentProvider {
}
private final class UpgradeController {
- private static final int SETTINGS_VERSION = 210;
+ // Create by yeruilai 2024-10-14 11:47:55 Update default value
+ // private static final int SETTINGS_VERSION = 210;
+ private static final int SETTINGS_VERSION = 211;
private final int mUserId;
@@ -5549,6 +5551,11 @@ public class SettingsProvider extends ContentProvider {
// removed now that feature is enabled for everyone
currentVersion = 210;
}
+ // Create by yeruilai 2024-10-14 11:47:55 Update default value
+ if (currentVersion == 210) {
+ // removed now that feature is enabled for everyone
+ currentVersion = 211;
+ }
// vXXX: Add new settings above this point.
注意事项:
如果在OTA升级过程中忽略了更新SettingsProvider.java中的SETTINGS_VERSION,那么即使defaults.xml和设备Overlay资源已经被更新,升级后的系统也可能不会应用这些新的默认设置。
因此,为了确保升级后的系统能够正确应用新的默认配置,务必按照上述步骤操作,并特别注意SETTINGS_VERSION的更新