首页 > 其他分享 >Android13 通过OTA升级更新系统默认设置

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

时间:2024-10-29 11:45:15浏览次数:8  
标签:默认设置 settings Android13 OTA frameworks base java packages SettingsProvider

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

标签:默认设置,settings,Android13,OTA,frameworks,base,java,packages,SettingsProvider
From: https://blog.csdn.net/u010345983/article/details/143116592

相关文章

  • supervision KeyPoints类及其Annotator类 Day(4)
    上一次学习完了Detection和segmentation中的Utils,今天学习关键点检测相关的方法和类KeyPoints类用于图像关键点检测的一个类,使用方法与Detection类相似,对于不同的视觉库,提供了多种讲检测结果转为KeyPoints类的方法属性:xy:形状为(n,m,2)的数组,n表示检测到n个对象,m表示该对象由m......
  • 【从零开始的LeetCode-算法】649. Dota2 参议院
    Dota2的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2参议院由来自两派的参议员组成。现在参议院希望对一个Dota2游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位......
  • 计算机视觉库supervision学习-day(3)-各种Annotator
    上一次学习了supervision库的Detections类,按照官方文档,接下来学习的是各种Annotator标注器类,我主要学习几个我感兴趣的、有意思的Annotator类型一、Annotator所有的XxxAnnotator类都是继承自BaseAnnotator类,并重写了其中的annotator方法(注:由于几乎大部分的XxxAnnotator类的构......
  • mysql 1206 - The total number of locks exceeds the lock table size
    由于数据量过大导致报错:Thetotalnumberoflocksexceedsthelocktablesize解决方法:输入查询:showvariableslike"%_buffer%";找到对应的 innodb_buffer_pool_size 默认值是8388608  8兆将这个数值设置的大一点,比如1G1G=1024*1024*1024=1073741824 setGLOB......
  • Android13冻结进程分析:如何提高设备性能和用户体验
    本文介绍了Android13中的冻结进程功能,它是一种重要的资源管理策略,可以提高系统性能和稳定性,同时最大限度地节省设备的资源和电池消耗。文章讨论了如何合理分配资源,包括CPU、内存等,以提高设备性能和用户体验。此外,文章还提到了冻结进程对应用程序线程的影响,并介绍了Android13与An......
  • 项目-STM32F765VIT6+W5500 使用单片机串口发送命令实现OTA远程升级单片机程序测试说明
       测试1,单片机通过SPI1和模块通信; 单片机PA8引脚作为复位模组使用;串口1做日志打印(115200); 2,打开例程 3,使用下载器先下载BootLoader,然后再下载用户程序   4,在网站的根目录建几个文件夹  目录要和mcu_project程序里面的目录一致 ......
  • 设置显示或者隐藏MasterSeeker和Total Commander主窗口的快捷键的AutoHotkey脚本2024.
    设置显示或者隐藏MasterSeeker和TotalCommander主窗口的快捷键的AutoHotkey脚本2024.10.21=========  ;========设置显示或者隐藏MasterSeeker和TotalCommander主窗口的快捷键的AutoHotkey脚本2024.10.21=========;此脚本从此行开始;D:\app\RegHotkey\RegHotkey.a......
  • 英伟达开源新王登基!70B刷爆SOTA,击败GPT-4o只服OpenAI o1
    以下是关于英伟达开源新成果相关的技术详解:一、模型架构与规模1.规模庞大   英伟达推出的70B模型是一个具有相当大规模的语言模型。70B(700亿参数)的量级在开源领域是非常突出的。相比许多现有的开源模型,它在参数数量上占据优势,这通常意味着它有更强的表示能力。2.架......
  • C - Word Ladder (Toyota Programming Contest 2024#9 (AtCoder Beginner Contest 370)
    题目链接:C-WordLadder题目:样例:分析:不要被题目所吓到,一切长题目都是纸老虎。题目大意就是给你两个字符串s和t,一次只能更换一个字母,求s变到t更换的次数,并输出每次更换一个字母后的最小字典序字符串。题意好理解,可以直接暴力,大力出奇迹。但是有没有更好的方法呢?既然问了......
  • [ABC375C] Spiral Rotation
    [ABC375C]SpiralRotation题意给出一个边长为偶数\(n\)的只由#和.组成的矩阵。你需要按顺序对于\(i=1,2,\cdots,\frac{n}{2}\)将满足\(i\lex,y\len+1-i\)的单元格\((y,n+1−x)\)替换成单元格\((x,y)\)的字符,问操作完后的矩阵。\(2\len\le3000\)。思路C题......