Recovery系统升级(2)--- 软件架构

2023-11-18

软件架构

Recovery升级系统原理:

  1. Main System下载新版本升级包到设备存储;
  2. 重启进入Recovery System;
  3. Recovery从设备存储load升级包并升级Main System;
  4. 最后重启回到Main System。

与之对应的软件架构如下图所示:
在这里插入图片描述

  • Main System
    由五个软件层级组成,自下而上依次是:BootLoader、Kernel、Native、Framework、Application。
  • Recovery System
    由三个软件层级组成:BootLoader、Kernel、Native。

从图中可以看出Main System和Recovery System启动过程中共用一个BootLoader,BootLoader决定启动到哪个目标系统,然后从不同的分区加载软件镜像到内存中并跳转执行。

  • BootLoader
    比如高通平台使用UEFI作为BootLoader,从abl分区加载运行(MTK平台使用LK,从lk分区加载运行)。至于谁加载BootLoader并跳转到BootLoader运行?读者可以认为是固化在CPU上的一段代码完成的(实际上要比这复杂的多,但是原理一致)。
  • Kernel
    Main System和Recovery System的kernel是独立的(虽然内容一模一样,但根据传递的cmdline部分软件流程有差异)。都是BootLoader从指定分区load到固定的内存区域并调转运行的(Main System是从boot分区加载,Recovery System从recovery分区加载)。
  • Native
    Main System的Native层比较复杂,主要是从system和vendor分区加载的Android C/C++软件运行环境;
    Recovery System的Native层相较就简单很多,是从recovery分区加载的ramdisk提供的简单C/C++软件运行环境;
  • Framework
    简单理解为Android java软件运行环境即可。
  • Application
    出厂预转或者用户安装的app。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Recovery系统升级(2)--- 软件架构 的相关文章

  • 如何获取之前的碎片?

    为了在我的应用程序中重用某些片段 我需要知道哪个片段是返回堆栈上的第二个片段 为了做到这一点 我正在使用getFragmentManager getFragments 显示以下错误 但有效 FragmentManager getFragme
  • Android webview 滚动不起作用

    我正在尝试在网络视图中向下滚动到页面底部 我正在使用谷歌在其教程中提供的网络视图示例 我正在使用这行代码来尝试滚动 但它不起作用 mWebView pageDown true 关于如何使其以编程方式滚动有什么建议吗 谢谢 public cl
  • Twitter 登录说明

    我想在 Android 中创建一个 Twitter 应用程序 为此 我想创建一个登录页面并登录到 Twitter 为此 我们需要消费者密钥和消费者密钥 这是什么意思 要创建此登录页面 除了 Twitter 帐户之外 我们还需要其他任何东西吗
  • Android 上的 SVG 支持

    Android 支持 SVG 吗 有什么例子吗 最完整的答案是这样的 Android 2 x 默认浏览器本身不支持 SVG Android 3 默认浏览器支持 SVG 要将 SVG 支持添加到 2 x 版本的平台 您有两个基本选择 安装功能
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • Camera.open()返回NULL Android开发

    我正在按照构建相机应用程序的教程进行操作http developer android com tools device html http developer android com tools device html我对 Camera o
  • Android onChange 事件未在 android 5 (Lollipop) 上的 chrome 历史记录的 contentObserver 中触发

    我注意到我的 chrome 历史记录和书签的 contentObservers 在 android lolipop 上不再触发 该代码在旧版本的 android 上完美运行 无论 chrome 版本如何 但在 Lollipop 上它不再运行
  • 如何检查用户在EditText中输入自己的电话号码?

    用户将在我的 Android 应用程序的注册页面上的编辑文本中输入手机号码 如何检查用户输入的是他 她的手机号码而不是其他人的 我试过这个 TelephonyManager tMgr TelephonyManager mAppContext
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 菜单在片段的 onCreateOptionsMenu 处多次膨胀调用

    我使用 Fragments 当我切换到嵌套 Fragment 时 它实现了public void onCreateOptionsMenu Menu menu MenuInflater inflater 当我到达该嵌套片段时 我的菜单会多次膨
  • 在 React Native 中调试应用程序崩溃

    我是 React Native 新手 我正在尝试安装 React Native Facebook SDK 以便我可以使用我的应用程序进行 Facebook 登录 我按照此处列出的步骤操作 https tylermcginnis com in
  • HERE 地图:更改路线已行驶部分的颜色

    导航时可以改变路线的颜色吗 具体来说 我希望路线中已行驶的部分的颜色与即将行驶的部分的颜色不同 现在都是同一个颜色 将 MapRoute 对象的 TravelColor 变量设置为透明对我来说很有效 mapRoute color Resou
  • 模块中的类无法加载

    我正在开发一个 2D Unity android 游戏 其中我最近添加了 Firebase Beta SDK 但添加后FirebaseAnalytics unitypackage我面临的错误是 无法加载模块中的类 当我删除文件夹时Fireb
  • 错误:无法创建新会话,因为找不到需要 HttpClient、InputStream 和 long 的“createSession”

    我正在尝试自动化 Android 混合应用程序 但出现以下错误 1 线程 main org openqa selenium WebDriverException中出现异常 无法创建新会话 因为未找到需要 HttpClient InputSt
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • Android:AsyncTask ProgressDialog 将不会在 ActivityGroup 中打开

    我试图在轮询我的服务器时打开一个进度对话框 该类是一个 ActivityGroup 因为它嵌套在选项卡栏中 为了将视图保持在框架内 需要 ActivityGroup 这是我的 ActivityGroup 类的声明 public class
  • 单元测试时 Android Studio 2.0 中测试状态终止且没有任何失败消息

    Issue 我昨天在 Ubuntu 上从 1 5 升级到了 Android Studio 2 0 当我在 Android Studio 2 0 中进行单元测试时 即使所有测试都已通过 它也会显示 终止测试 状态 有时它只显示部分测试通过 我
  • Android 中带有组的列表视图

    我有一个列表视图 每行都有一些日期和文本 我可以像 iPhone 中那样将这个 listView 分组 组之间有标题吗 在 android 中是否可能 请帮忙 即 我需要在 Listview 行之间有标题栏 以便如果我使用日期对其进行分组

随机推荐

  • 小滴课堂-新版JavaWeb零基础到实战专题课程-19

    目录 前言 第十九章 javaweb项目实战之小滴课堂开发者论坛数据库设计 第1集 小滴课堂开发者论坛数据库ER关系图设计 第2集 小滴课堂开发者论坛Mysql相关表录入 前言 小滴课堂 旨在让编程不在难学 让技术与生活更加有趣 随着互联网
  • 转」最佳方案:迭代式开发

    前言 Fred Brooks 在 25 年前就曾写到 不要指望一次成功 无论如何你都要这样 敏捷开发 小步快跑 持续迭代 不断改进 产品升级 在用例需要之前 不要添加数据成员 在代码之前编写测试 过早的优化时万恶之源 不要过度强调代码的通用
  • 一文读懂网联-网联的业务方案和技术实现(1)

    支付产品设计必知的支付底层逻辑 网联平台全业务功能详解 2 我想 银联 大家都不陌生 我们用的银行卡基本都是银联卡 而网联想必很多人并不清楚 其实网联和银联在一个职能上平分秋色 电子支付的清算机构 我们国家并驾齐驱的2家清算机构 网联与银联
  • python学习基础(3)—循环、数据结构及函数

    循环 数据结构及函数 循环 for循环及循环嵌套 break及continue命令 while循环 列表 元组结构及字典结构 高级列表操作 高级字典操作 函数 自定义函数 系统内置函数 导入包 循环 python循环命令有两个 for循环用
  • DirectShow中H.264 SourceFilter的Pin配置

    对DirectShow SourceFilter 要在Pin上输出H 264码流 需要注意如下设置 majortype MEDIATYPE Video 73646976 0000 0010 8000 00AA00389B71 subtype
  • UNet 浅析

    文章目录 1 UNet 简介 2 UNet 详解 3 代码实例 医学图像分割 ISBI数据集 参考 1 UNet 简介 UNet 属于 FCN 的一种变体 它可以说是最常用 最简单的一种分割模型 它简单 高效 易懂 容易构建 且可以从小数据
  • 【白嫖系列】永久免费域名申请教程 eu.org

    Welcome to Aedream同学 s blog 文章目录 eu org 注册 激活注册 域名解析 eu org eu org 一个从1996开始提供免费域名的组织 其官网地址是 https nic eu org 他帮助学生 爱好者或
  • Unity的Animator与Animation之间的简单区别

    一 Animator 1 动画控制器 实现控制多个动画的播放 切换及叠加系列复杂的效果 相当于一个动画状态机 生成动画的时候不仅有动画文件 还会生成相应的 controller文件 因此占用的资源比较大 2 Animator组件介绍 Con
  • Mysql(一)三大范式、数据类型、常用函数、事务

    文章目录 一 SQL基础 1 1 SQL通用语法 1 2 SQL分类 1 2 1 DDL语句 1 2 2 DML语句 1 3 HAVNG子句和WHERE的异同点 1 4 SELECT 和 SELECT 全部字段 的写法对比 1 5 三大范式
  • C# Winform中窗体的美化—— 用IrisSkin轻松实现换肤功能

    今天经前辈提醒才知道winform窗体还有美化工具 呵呵 不得不说 孤陋寡闻了 下面总结一下irisskin2的使用步骤和遇到的问题及解决办法 1 网址 http www pc6 com softview SoftView 70918 ht
  • 解决OpenCV在Cmake时,因网络问题无法下载部分所需文件

    解决OpenCV在Cmake时 因网络问题无法下载部分所需文件 在安装CUDA Opecv进行Cmake的过程中 因为网络问题很多文件都无法下载 可以在你的opencv cache下可以看到 很多文件都是0kb的 这样肯定是不行的 我们要保
  • 6款字体转换工具网站,一键生成想要字体!

    第一字体 https www diyiziti com 图文图文吗 有图无文怎么行 平时没事儿咱也喜欢舞文弄墨一番 不过茶壶儿这书法比起名仕还是自叹不如哈 然而不得不说中国文字真的是博大精深 各种字体就像人生一样充满奇妙 第一字体网就为您提
  • postgresql 数据库版本升级 11.5升级14

    postgresql 数据库版本升级 11 5升级14 文章目录 postgresql 数据库版本升级 11 5升级14 前言 一 漏洞详情 二 版本升级 1 pg upgrade的用法 2 2 安装pg14 版本升级 后记 前言 最近因为
  • 算法_选择排序

    选择排序 选择排序的思想 对于一个给定的具有n个数的数组 从中依次找出最小 或最大 的元素 并且将它依次放到序列的起始位置 例如 4 2 7 8 10 1 5 第一次排序 1 2 7 8 10 4 5 第二次排序 1 2 7 8 10 4
  • Doris--基础--10--数据模型

    Doris 基础 10 数据模型 1 基本概念 在 Doris 中 数据以表 Table 的形式进行逻辑上的描述 一张表包括行 Row 和列 Column Row 用户的一行数据 Column 用于描述一行数据中不同的字段 1 1 Colu
  • 关于uniapp小程序端提示v-for 暂不支持循环数据问题的解决方案

    关于uniapp小程序端提示v for 暂不支持循环数据问题解决方案 需求描述 在uniapp小程序此项目中使用多层for循环时 小程序端提示 uniapp v for 暂不支持循环数据 以至于获取不到循环的数据 解决方案
  • JAVA的并发编程(八):Disruptor并发框架

    目录 一 Disruptor并发框架 1 介绍 2 关键知识点 3 实现方法 1 RingBuffer Disruptor 单线程 2 RingBuffer Squencebarrier BatchEventprocessor 多线程 单生
  • 杭电OJ 1002 A + B Problem II

    A B Problem II 页面数据来自 this page from http acm hdu edu cn showproblem php pid 1002 Time Limit 2000 1000 MS Java Others Me
  • linux EXPECT

    expect 概念 Expect除支持Unix Linux平台外 它还支持Windows平台 用过secureCRT的人应该知道有个自动登录的设置 那就是利用expect实现的 expect 安装需要那些包支持 tcl包和tk包 linux
  • Recovery系统升级(2)--- 软件架构

    软件架构 Recovery升级系统原理 Main System下载新版本升级包到设备存储 重启进入Recovery System Recovery从设备存储load升级包并升级Main System 最后重启回到Main System 与之