Android 9.0 ota升级关于SettingsProvider新增和修改系统数据相关功能实现

2024-01-09

1. 前言

在9.0的系统rom定制化开发中,在进行ota升级的过程中,由于在SettingsProvider中新增了系统属性和修改某项系统属性值,但是在ota升级以后发现没有
更新,需要恢复出厂设置以后才会更改,但是恢复出厂设置 会丢掉一些数据,这是应为系统数据库没更新,所以需要在ota的时候同样升级系统数据库,
接下来看下如何实现相关的功能

2.ota升级关于SettingsProvider新增和修改系统数据相关功能实现的核心类

    \frameworks\base\services\java\com\android\server\SystemServer.java
    \frameworks\base\services\core\java\com\android\server\am\ActivityManagerService.java
    \frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\SettingsProvider.java
    \frameworks\base\packages\SettingsProvider\res\values\defaults.xml

3.ota升级关于SettingsProvider新增和修改系统数据相关功能实现的核心功能分析和实现

在系统中,SettingsProvider是系统设置的内容提供者。它将设置类型分为三种
Global,全局,对系统中所有用户公开,第三方App没有写权限
Secure,安全相关的用户偏好设置,第三方App没有写权限
System,用户偏好系统设置
SettingsProvider 顾名思义是一个提供设置数据共享的 P

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 9.0 ota升级关于SettingsProvider新增和修改系统数据相关功能实现 的相关文章

  • Android Room ORM:支持 SQLite 的自定义构建

    我需要使用 SQLite 的自定义构建 基于 sqlite org 版本https sqlite org android doc trunk www index wiki https sqlite org android doc trunk
  • 在 Android 中从麦克风录制 wav 文件 - 问题

    我需要能够使用 Android 中的麦克风创建 WAV 文件 目前 我遇到了很多麻烦 到目前为止 这就是我的情况 我正在使用 micDroid 项目代码的一部分来记录 read thread int sampleRate 44100 int
  • 如何解决:无法解析:com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0

    我在Android studio中尝试使用mapbox时遇到这个问题无法解析 com mapbox mapboxsdk mapbox android sdk 9 5 0 问题是什么 我的 build gradle 依赖项 dependenc
  • 如何在 M1 Mac 上运行的模拟器上运行旧版 Android 版本(例如 API 级别 21)?

    虽然现在有一个适用于 M1 mac 的 Android Studio 和支持arm架构的Android模拟器镜像 https stackoverflow com questions 64907154 android studio emula
  • android ndk 多点触控?

    我正在编写一个仅使用本机代码的应用程序 那么ndk中是否可以获取多点触控事件呢 我感觉我已经搜索了整个网络 但什么也没找到 有谁知道如何做到这一点 是的 您可以检查名为native activity查看如何获取输入事件 寻找engine h
  • 通过意图使用多个电话号码添加新联系人

    我想使用添加新联系人ContactsContract Intents Insert 但问题是我不知道可以有多少个电话号码 据我了解 我只能使用三个电话号码PHONE SECONDARY PHONE TERTIARY PHONE常数 有什么办
  • 多种语言的多种字体

    我最近在开发应用程序时遇到了一种情况 我必须在文本视图中显示不同的语言 目前我正在展示一些使用字体 字体像这样 Typeface tf Typeface createFromAsset this getAssets DroidHindi t
  • 在android中从JSON生成listview

    我对 Android 完全陌生 目前正在尝试从从我的服务器中提取的 JSON 数组生成列表视图 我已经阅读了很多教程 但没有运气 有一种独特的方法可以做到这一点 请您指出一些适合开始的资源 我读过了this http www josecgo
  • SQLite FTS4 使用特殊字符进行搜索

    我有一个 Android 应用程序 它使用 FTS4 虚拟表在 SQLite 数据库中搜索数据 它工作正常 但是当表中的数据包含特殊字符 如 或 时 SQLite MATCH 函数不会给出任何结果 我现在迷路了 谢谢 注意 默认的分词器真的
  • 是否可以将自定义属性添加到 Android 资源的样式中?

    我在我的项目中使用视图流组件 它允许开发人员覆盖一些属性 例如
  • 表面视图+gl表面视图+框架布局

    我是 java 和 OpenGL 的新手 我正在尝试获得一个相机预览屏幕 能够 同时显示 3D 对象 浏览完样本后 api 演示 我想结合示例的代码 api 演示就足够了 但不知何故它不起作用 迫使我 启动时关闭 错误被称为空指针 例外 有
  • 如何将设备屏幕位置转换为发送事件位置?

    我知道关于input tap x yshell 命令 但是 我想了解如何 使用执行单击sendevent命令 我能够通过以下命令实现它 sendevent dev input event5 3 53 X sendevent dev inpu
  • 带有 backstack Resume 的嵌套片段

    在我的应用程序中有几个fragments in an activity我正在维护一个backStack对于这些fragment 一切都很好 但其中有一个嵌套的片段 当我把它放入backStack然后再次按后退按钮恢复 该片段看起来与先前的内
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • 为什么 Google 建议将库复制到您的树中?

    谷歌的Play 服务 API 的使用说明 http developer android com google play services setup html 例如 说 将 extras google google play service
  • Android 4.4 Kitkat 自定义视图操作栏未填充整个宽度

    我试图拥有一个带有自定义视图的简单操作栏 但我得到以下结果 为了演示 我创建了一个带有黄色背景颜色的简单 xml 它应该占据整个宽度 这是 XML
  • Android TextureView 和硬件加速

    我正在尝试实现上所示的示例这一页 http developer android com reference android view TextureView html 我已经在运行 android 4 及以上版本的三种不同设备上进行了尝试
  • android系统用户和linux root用户有什么区别

    当我将手机连接到电脑并使用adb shell与我的手机通信并输入的命令ps命令输出当前在我的手机上运行的进程信息 我发现有两个特殊用户 一个是root 另一个是system 据我所知 Android是基于linux的 所以root用户是最大
  • Activity 暂停时调用 FragmentManager.popBackStack 是否安全

    的文档FragmentManager popBackStack https developer android com reference android app FragmentManager html popBackStack java
  • Android Espresso 单击按钮时出现错误

    我正在尝试使用 espresso 框架为 Android 应用程序编写一些 UI 测试 现在我只是检查启动屏幕上是否存在所有元素 然后尝试单击登录按钮 单击按钮时 测试由于错误而失败 我似乎无法理解为什么会发生这种情况 我的测试代码是 Ru

随机推荐

  • 处理不舒服的同事关系:实用建议与技巧

    处理不舒服的同事关系 实用建议与技巧 在工作中 我们难免会遇到一些与同事关系不和谐的情况 这些不舒服的关系可能会影响到我们的工作情绪和效率 那么 如何处理这些不舒服的同事关系呢 本文将为你提供一些实用的建议 一 保持冷静和理智 在处理同事关
  • creo老是卡住怎么办?如何解决Creo卡顿问题

    Creo PRO E 是美国PTC公司于2010年10月推出CAD设计软件包 Creo是整合了PTC公司的三个软件Pro Engineer的参数化技术 CoCreate的直接建模技术和ProductView的三维可视化技术的新型CAD设计软
  • 新导物联实验室设备定位管理系统

    新导物联实验室设备定位管理系统是一种用于实验室设备管理和定位的系统 它利用物联网技术和定位技术 帮助实验室管理人员实时了解实验室内设备的位置和状态 提高设备的利用率和管理效率 该系统使用传感器或标签对实验室设备进行标识和定位 每个设备都被配
  • Move 向未来,2024 开发者大会热潮涌动

    1 月 13 日至 14 日 2024 Move 开发者大会 Move 生态关键的一年 将于上海举办 本次大会由 MoveFuns OpenBuild 和 MoveBit 主办 Rooch AptosGlobal alcove zkMove
  • go-carbon v2.3.4 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库

    carbon 是一个轻量级 语义化 对开发者友好的 golang 时间处理库 支持链式调用 目前已被 awesome go 收录 如果您觉得不错 请给个 star 吧 github com golang module carbon gite
  • mybatis 增删改查

    MyBatis 是一种持久化框架 主要用于简化数据库访问代码的编写 它允许开发者使用 XML 或注解来配置 SQL 映射 并提供了自动将数据库操作映射到 Java 对象的功能 以下是 MyBatis 中的基本增删改查操作的示例 1 增加 I
  • Spark 中 BroadCast 导致的内存溢出(SparkFatalException)

    背景 本文基于 Spark 3 1 1 open jdk 1 8 0 352 目前在排查 Spark 任务的时候 遇到了一个很奇怪的问题 在此记录一下 现象描述 一个 Spark Application Driver端的内存为 5GB 一直
  • 服务器超线程的好处

    服务器超线程的好处 1 提高性能 超线程通过提高整体系统吞吐量显着提高服务器性能 通过允许多个线程在单个物理内核上同时执行 超线程减少了空闲时间并最大限度地利用了可用资源 这会加快任务执行速度并缩短应用程序的响应时间 尤其是在多线程工作负载
  • Uservisual studio winform界面切换成设计器模式,按钮移动一个位置,但是很多的designer.cs代码都变化

    当你在 Visual Studio 中通过设计器模式移动 WinForms 界面上的控件 例如按钮 实际上是在进行图形化的布局更改 这会导致设计器生成的 designer cs 文件中的相应代码也发生变化 以下是一些可能导致代码变化的情况
  • 智能访客定位在实际生活的应用

    随着科技的发展 定位技术在我们的生活中扮演着越来越重要的角色 如今 智能访客定位系统已经成为了各大企业单位办公的标配 在这个万物互联 信息数据大爆发 移动互联网普及的时代 基于物联网技术的智能访客定位系统可以说是 无处不在 它的作用不仅仅是
  • 改善python程序的91建议记录

    使用else子句简化循环 异常处理 案例1 执行sql异常时处理 def save db obj try save attr1 db execute a sql stmt obj attr1 save attr2 db execute an
  • DD小桔高级数分 2面挂

    偏业务分析一点 注重AB实验在实际业务中的操作 业务方交流方式 一面 同事面 中规中矩 面试内容偏简单 不知道是不是因为晚8点面试的原因项目没有进行深究 自我介绍 项目介绍 1 你在实际项目中是怎么设计AB实验 2 你在实际业务场景中是怎么
  • K8S部署pod状态CreateContainerConfigError问题解决

    天行健 君子以自强不息 地势坤 君子以厚德载物 每个人都有惰性 但不断学习是好好生活的根本 共勉 文章均为学习整理笔记 分享记录为主 如有错误请指正 共同学习进步 文章目录 场景 问题 解决 场景 在k8s中部署gitlab后查看状态并非R
  • 安达发|基于APS排程系统的PDM功能

    APS系统 Advanced Planning and Scheduling 先进计划与排程 是一种基于APS系统 Advanced Planning and Scheduling 先进计划与排程 是一种基于供应链管理和生产管理的综合性软件
  • Firefox浏览器-渗透测试插件推荐

    在日常工作中可能需要一些浏览器插件辅助我们做工作 下面是比较好的 当然不一定对你有用 找到适合自己的即可 FoxyProxy FoxyProxy是一个高级的代理管理工具 它完全替代了Firefox有限的代理功能 它提供比SwitchProx
  • 如何进行文本的全局搜索/替换?

    如果您经常处理大量文本 需要搜索和替换特定的词语或其他内容 HelpLook则通过其搜索 替换功能提供了一个方便的解决方案 通过使用搜索 替换功能 您可以在文章中快速找到特定的单词 并用新的文本替换它们 这对于处理大型文档或者需要大量更新的
  • 开关电源测试方法:怎么测试开关电源输入电压跌落和输出动态负载?

    开关电源输入电压跌落与输出动态负载测试 电压跌落是指开关电源电压突然从额定值降到某一电势点 从而引起用电设备线路电流突然变化 形成电势冲击造成损坏 在电源使用过程中 当输入电压跌落时 开关电源突加负载的情况是可能发生的 此时功率器件 磁性元
  • 更改本地NuGet包的存储位置

    如果你想更改NuGet本地包的默认存储位置 你可以按照以下步骤进行 更改本地NuGet包的存储位置 1 打开 Visual Studio 并进入 Tools 菜单 2 选择 Options 3 在弹出的对话框中 展开 NuGet Packa
  • 安达发APS排产软件之PDM产品工艺数据管理

    PDM Product Data Management 产品数据管理 是一种用于管理产品全生命周期内所有与产品相关的信息和数据的技术 在制造业中 PDM系统被广泛应用于产品工艺数据管理 以提高生产效率 降低成本 保证产品质量和缩短产品上市时
  • Android 9.0 ota升级关于SettingsProvider新增和修改系统数据相关功能实现

    1 前言 在9 0的系统rom定制化开发中 在进行ota升级的过程中 由于在SettingsProvider中新增了系统属性和修改某项系统属性值 但是在ota升级以后发现没有 更新 需要恢复出厂设置以后才会更改 但是恢复出厂设置 会丢掉一些