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

RK3308嵌入式系统使用Recovery模式升级的流程 一、Recovery升级概述 在嵌入式Linux系统开发中,对终端设备升级的方式有很多种,主要包括:1,SD卡或U盘启动烧写;2,OTA(空间下载技术)升级;3,远程在线烧录;4,文件拷贝的方式升级。本文主要介绍的是OTA技术升级时下载升级包到设备端后,再采用的Recovery模式对指定的分区进行烧写的升级流程。 ... 阅读详情

软件架构

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。
android动态分区AB升级,具有动态分区的 A/B 设备的 OTA Android 10 支持动态分区,这是一种可以在无线下载 (OTA) 更新期间创建和销毁分区以及调整分区大小的用户空间分区系统。本页介绍了如何在搭载动态分区支持的 A/B 设备更新期间调整动态分区的大小(针对搭载 Android 9 及更低版本的设备)。背景设备上有一个 super 分区。此分区没有槽后缀。块设备必须与 fstab 中 /misc 的 blk_device 条目一起存在。例如,如... 阅读详情

相关推荐

高通AB分区改成单分区

高通默认AB分区,改成单分区关于这一点,高通有一个文档《kba-181128215921_6_[master]_how_to_disable_a_b.pdf》说明 但是这个文档介绍的并不详细一、CP侧 (一)首先要修改分区表 就是修改platform/amss/common/config/ufs/partition_deg.xml,platform/amss/common/config/ufs/partition_factory.xml platfor...

qq_39695119的博客 1882

OTA A/B 分区升级 update_engine简介

现将其主要逻辑做简单整理归纳。cmd参数就是一开始传过来的command,这里用到了brillo/process.cc来执行命令,这里不再继续跟进了,update_engine大致的升级流程到这里就完成了,但还是有很多方面暂时没有涉及,一些详细的过程也没有去更进一步的去分析跟进,留待以后有时间或者遇到相关问题再去做进一步分析。整个升级的执行过程都在ApplyPayload方法中进行了,先是检查了参数和当前升级状态,然后构建了install_plan_,它的作用就是打印信息,将。

Venus 的博客 6184

Recovery系统升级(3)---软件流程

本章节结合源码剖析Recovery系统升级流程,从APP下载升级包后触发升级直到设备完成更新启动到Launcher的整个过程。

关于 arm,linux 相关的一些知识 2万+

Android - app实现 A/B 升级

官网介绍如下:A/B 系统更新(也称为无缝更新)的目标是确保在期间在磁盘上保留一个可正常启动和使用的系统。采用这种方式可以降低更新之后设备无法启动的可能性,这意味着用户需要将设备送到维修和保修中心进行更换和刷机的情况将会减少。

感觉不怎么会的博客 2925

OTA和Recovery系统升级流程介绍

本文介绍了Android原生OTA和Recovery升级过程步骤.进入升级- 1.1 正常启动和进入Recovery的区别下面给出了升级流程的简单示意图。 上图中的上下两个部分,上面一部分是正常的启动模式,下面一部分为Recovery模式。正常的启动模式是从boot.img启动系统(Main System),而recovery模式则是从reovery.img启动系统;(reovery.img只

DavenCheung 1万+

Recovery系统升级(1)--- 前言

对于手机等消费电子来说存储空间同时存在两套system、vendor以及一些oem分区,存储空间(RMB)实在浪费,因此目前还没有广泛使用。文章将基于Android R 源码详细介绍Recovery系统升级原理。Android系统升级目前有两套机制:AB系统 和 Reocvery。......

关于 arm,linux 相关的一些知识 475

Recovery.img-系统升级

Recovery.img-系统升级在V12bn 的机器上按住电源键+音量up 就可以进入Recovery 模式从上图中我们也可以看出来恢复出厂设置有如下选项:1)、Reboot system now: 重启手机2)、Reboot to bootloader:重启到Recovery 模式3)、Apply update from ADB:从ADB 进行更新4)、Apply update from ...

Toc_SunWinner的博客 6211

RTAB-map:实时高效的SLAM库

Real‐time appearance‐based mapping (RTAB‐Map)是一种基于外观的闭环检测方法,具有良好的内存管理,以满足处理大场景和在线长周期管理要求。RTAB‐Map集成了视觉和激光雷达SLAM方案,并支持目前绝大多数的传感器 是一个强大的、开源的Simultaneous Localization and Mapping(SLAM)库,专为机器人和无人驾驶领域设计。它提供了一套完整的解决方案,用于构建三维地图,并在未知环境中进行实时定位与导航。 github项目地址 RTAB-

weixin_45761399的博客 1万+

OTA常见方案分析(差分升级 全量升级 AB面升级 Recovery系统升级)

1.全量升级:   完整的下载新版本固件,下载完成后将固件搬运到APP程序运行的位置。(一般来说是将APP从片外flash搬运到片内flash上)。搬运完成后校验通过后重启APP。 2.差分升级:   利用算法,做出原版APP和新版APP程序的差分包,将差分包下载到flash,内部的BootLoader程序在利用算法将新版APP合成,合成后在搬运,搬运后校验,重启。   一般制作出来的差分包只有原包的5%左右。省空间! 服务器端: 生成差分包,bsdiff算法 1.对old文件中所有子字符串形成一个字典

qlexcel的专栏 2万+

从FrSky到TBS:深度解析航模2.4G遥控协议江湖史(附ELRS高频头改装指南)

本文深度解析了航模2.4G遥控协议的技术演进史,从FrSky ACCST的兴衰到TBS Crossfire的崛起,再到开源协议ExpressLRS的革命性突破。文章不仅对比了各协议在延迟、距离与抗干扰能力上的技术内核,还提供了为多协议遥控器加装TBS Crossfire高频头的实战改装指南,帮助玩家打通协议壁垒,提升飞行体验。

weixin_29193259的博客 736

ESP8266+ITR8307实战:如何用反射式光电管实现5cm远距离检测(附避坑指南)

本文详细介绍了如何利用ESP8266的ADC功能与ITR8307反射式光电管,通过调制解调、硬件电路优化及软件同步采样策略,实现5cm稳定远距离检测。文章提供了完整的硬件设计、代码实现与调优避坑指南,有效解决了环境光干扰与信号衰减难题,适用于智能车、自动化等需要可靠非接触检测的项目。

rgv234567的博客 262

Android系统升级 Recovery模式(02)Recovery升级过程

系列文章解读&说明: Android系统升级 Recovery模式的分析主要分为以下部分: Android系统升级 Recovery模式(01)Recovery模式启动 Android系统升级 Recovery模式(02)Recovery升级过程 Android系统升级 Recovery模式(03)update-binary模块 本模块分享的内容:Recovery升级过程 本章...

wangdsh的博客 4298

双目相机标定理论与编程实现

双目相机标定是计算机视觉中的重要任务,通过确定双目相机的内参和外参,可以实现立体视觉的深度感知和三维重建。通过使用OpenCV库提供的函数,我们可以方便地进行双目相机的标定工作。双目相机标定是计算机视觉中的重要任务,用于确定双目相机的内参和外参,以实现立体视觉的深度感知和三维重建。通过上述代码,我们可以获得左右相机的内参矩阵、畸变系数、旋转矩阵和平移矩阵等参数,从而完成双目相机的标定过程。使用双目相机采集一系列左右相机的图像,确保标定板在不同位置和角度下都能被双目相机拍摄到。函数来检测标定板的角点。

ByteKnight的博客 322

Android Recovery OTA升级(二)—— Recovery源码解析

目录目录 Recovery源码分析 概述 main函数 输出重定向 填充fstab结构体 挂载cache分区 获取Recovery命令参数 分析recovery命令 install_package load_keys加载公钥原文件 verify_file对升级包进行签名校验 mzOpenZipArchive-打开升级包获取相关信息 try_update_binary-ota真正执行的地方Recove

小一的专栏 1万+

微信小程序:errno: 600001, errMsg: “uploadFile:fail errcode:-101 cronet_error_code:-10001 error_msg:net::E

微信小程序报错uploadFile:fail errcode:-101 cronet_error_code:-10001 error_msg:net::ERR_CONNECTION_RESET, custum ip is invalid, didn't find user's ip,wx.uploadFile errno: 600001 errcode:-101 ?微信小程序wx.uploadFile错误,wx.uploadFile 在真机上报下面的错误,调试工具里没有问题,其它接口在真机/调试工具都正常,

✅ 精选推荐文章 4257

AUTOSAR进阶图解==>AUTOSAR_SWS_CANNetworkManagement

本文介绍了AUTOSAR架构中的CAN网络管理(CanNm)模块,主要内容包括: 模块概述:CanNm是协调CAN网络节点状态转换的基础组件,采用去中心化设计,通过周期性发送网络管理PDU保持网络活跃状态,支持网络唤醒、睡眠和部分网络功能。 架构设计:CanNm位于AUTOSAR中间层,连接上层通信管理器(ComM)和底层CAN接口(CanIf),包含状态管理、PDU处理和定时器管理等子组件。 状态机设计:定义了三种主要模式(总线睡眠、准备睡眠和网络模式)及其转换逻辑,网络模式又包含重复消息、正常操作和准备

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 2037

Recovery流程梳理

文章目录1. Recovery介绍2. Framework recovery 分析2.1 Framework Recovery流程2.2 Framework Recovery 分析3. Recovery分析3.1 Recovery流程3.2 Recovery源码分析4. 升级的执行者 Updater分析5. OTA 目录结构6. 涉及到的其它内容 1. Recovery介绍 1.进入方式:rese...

li_liuliu的博客 3309

Python基础语法与最佳实践【python基础篇】

本文全面介绍了Python基础语法与最佳实践,涵盖变量与数据类型、控制流、函数、模块与包等核心概念。通过实际代码示例展示了条件语句、循环结构、函数定义及模块导入的基本用法。在最佳实践部分,重点讲解了PEP 8代码风格规范、异常处理技巧、列表推导式、上下文管理器、文档字符串编写以及enumerate和zip的高效使用。这些内容既适合Python初学者掌握基础语法,也能帮助有经验的开发者编写更规范、高效、可维护的代码。文章强调遵循Python官方推荐实践,通过合理运用语言特性提升代码质量。

博客 1975

Android系统升级 Recovery模式(01)Recovery模式启动

系列文章解读&说明: Android系统升级 Recovery模式的分析主要分为以下部分: Android系统升级 Recovery模式(01)Recovery模式启动 Android系统升级 Recovery模式(02)Recovery升级过程 Android系统升级 Recovery模式(03)update-binary模块 本模块分享的内容:Recovery模式启动 本章...

wangdsh的博客 5361

从扩散到流匹配:具身智能中的生成模型原理与实现细节(具身智能/VLA/机器人面试常考)

本文探讨了生成模型在具身智能中的应用,重点对比了扩散模型和流匹配(Flow Matching)两种方法。扩散模型通过逐步加噪和去噪过程学习数据分布,建模能力强但采样速度慢;而Flow Matching直接学习连续向量场,更适合实时轨迹规划等需要快速连续生成的任务。文章还分析了自注意力机制的优势、ROS1/ROS2通信架构差异,并提供了Flow Matching的PyTorch实现代码。这些生成模型使机器人系统能够处理不确定性、多模态信息和连续控制问题,从传统的确定解转向更灵活的分布建模范式。

m0_51738372的博客 235

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android Recovery

转自:http://www.codingguy.net/?p=49 Android Recovery Android Recovery Android Recovery: 功能简介 Android支持Recovery模式。在某些操作之后,系统会自动重启并进入到Recovery模式,用户按组合键开机(HOME+POWER),也可进入Recovery模式。该模式提供如下功能: 1、擦

WGS_007的专栏 1637

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android系统升级全流程

Recovery模块总结(正常模式下,升级的处理流程) 前段时间负责公司项目的系统升级模块开发,在开发过程中,对整个升级流程有个基本的了解,现在此做一个阶段性的总结,方便日后查阅。项目基于高通Android 7.0.1实现, 主要有以下内容: 正常模式下,升级的处理流程 Recovery模式下,升级处理流程 完整包与增量包的制作 其他模块的升级(单片机) Recovery的UI显示 基本概念 ...

变 7706

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: Recovery系统升级(1)--- 前言
下一篇: Recovery系统升级(3)---软件流程
zs.w
博客等级 码龄4年 133粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zs.w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值