Android13 通过OTA升级更新系统默认设置

系统进行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的更新

猜你喜欢

转载自blog.csdn.net/u010345983/article/details/143116592