高通OTA升级非常规分区方法

高通OTA升级非常规分区方法

  • 1. 高通LE OTA背景
  • 2. 高通LE OTA升级方案
    • 2.1 SDX12 OTA方案
    • 2.2 OTA升级TZ/RPM/Aboot

OTA是一个通用述语,常见的解释为over the air。通过这一解释,OTA最开始的概念,是空中升级。后来,又衍生出了FOTA,FOAT的概念。

FOTA可以理解为Firmware Over The Air,即在线升级,是指通过模块的数据通道完成升级包的下载和安装。此外,FOAT,是模块项目实践运用中,发展出来的另一种升级方式,可描述为通过本地升级工具对模块进行软件更新的过程。FOAT与FOTA的不同是,升级包的导入方式上的不同。FOAT是通过串口传输导入,没有无线部分的介入。所以两者只是升级包导入的方式上的不同。在升级包导入到设备后,升级包的安装更新,都归为模块自身的基本升级功能,由Recovery系统来完成。

综上,在模块项目中OTA调试,可分为三大块,即:
在这里插入图片描述

1. 高通LE OTA背景

高通MDM、MSM平台提供了基本的升级功能,大概都以开源的Android升级设计实现作为基础,对其代码进行移植,适配到自身平台上。从差分包制作工具,升级过程,都有一套完整的方案,并且所涉及到的工具和代码均完全开放,因此该方案的可塑性也更大。其中包括统一的用于安装升级包的Recovery系统,编译OTA底包专属框架,和处理底包制作升级包的脚本和工具等。

由于该方案中各个文件的PATCH 基于文件系统而来,因此很难在bootloader 阶段实现(无法挂载文件系统),所以在分区设计上,除了预留存放差分包,备份文件的空间外,还需要添加专门的分区(kernel, bootloader,filesystem)以供FOTA 使用,而该分区必须独立于正常运行时的分区。这也就导致了该方案在硬件(FLASH,DDR)要求比较高。

在LE 的FOTA 方案中,升级程序作为一个应用程序运行,升级包则是一个标准的zip 文件(命名为ota 文件),升级过程则是解析升级包中指定的脚本文件,并根据解析到的内容引用对应的功能模块,从而完成整个升级过程。

2. 高通LE OTA升级方案

下面主要介绍基于高通LE OTA方案,SDX12做的一些改进,以及如何在SDX12上完成 tz、rpm、appsboot等非常规镜像或分区的OTA升级。

2.1 SDX12 OTA方案

X12 OTA升级使用的是高通平台通用的FOTA方案,基本可以总结以下几个步骤:

  1. 本地制作差分包,并上传到远端OTA服务器
  2. x12启动OTA client线程去在固定间隔时间访问OTA服务器
  3. 当OTA服务器上有可用OTA 包,则校验包是否完整、版本号是否符合预期
  4. 若(3)中校验OK,则下载OTA包到本地
  5. 下载完成后重启进入recovery模式
  6. recovery模式启动后会先检测是否存在OTA包,存在则解压包并使用包中的工具打patch
  7. 升级完成后设置成功标记并重启进入boot模式
  8. 升级完成

流程图如下:
在这里插入图片描述

高通LE平台是多个子系统构成,其中boot、system这两个子系统属于HLOS镜像,其他如tz、rpm、appsboot、modem等均为non-HLOS镜像。

虽然NAND设备 (例如SDX12) 支持non-hlos镜像的OTA升级,但电源中断安全升级机制仅适用于system、boot和modem镜像。启动关键映像 (如tz、rpm、appsboot等) 可以升级,但如果在升级的很短时间内发生电源中断 (通常为毫秒),设备将处于砖砌状态。

因此默认OTA方案通常仅建议升级boot、system和modem镜像,其中boot镜像是以全包的方式、system镜像以文件patch方式、modem以压缩拆分后的patch方式:
在这里插入图片描述
但由于boot镜像占用较大的空间,对于硬件(FLASH,DDR)要求比较高。很多时候无法满足,因此我们在高通LE OTA升级方案上做出如下优化:将boot镜像也以patch的方式进行升级,这样就可以减少对于硬件(FLASH,DDR)要求,满足低存储空间的场景。
在这里插入图片描述

2.2 OTA升级TZ/RPM/Aboot

但是还存在客户想OTA升级启动关键映像 (如tz、rpm、appsboot等),如客户有屏幕的场景,想更新开机动画,而开机动画在sbl阶段就已经开始,因此就需要去升级appsboot镜像。虽然启动关键映像 (如tz、rpm、appsboot等) 可以升级,但如果在升级的很短时间内发生电源中断 (通常为毫秒),设备将处于砖砌状态。但高通针对这种情况,也是提供了对应的升级方案,但不建议使用,下面我们将简单介绍如何去OTA升级这些非常规的分区。

根据高通文档80-16206-49 AA,我们可以看到如我们想升级non-hlos镜像,只需将这些镜像打包在OTA目标版本底包的RADIO目录下即可。

在这里插入图片描述
按照上述方法,我们手动将appsboot镜像打包到RADIO目录下:

在这里插入图片描述
然后使用OTA差分制作工具制作差分包,就可以在OTA差分包firmware目录下看到appsboot镜像,当升级时就会按照patch脚本去打patch升级appsboot镜像:

在这里插入图片描述
在差分包的patch脚本META-INF\com\google\android\updater-script中也确实可以看到appsboot镜像将以raw镜像的方式升级:

在这里插入图片描述

但上面这种方式需要手动打包tz、rpm、appsboot等镜像到OTA目标版本底包中,这样是非常不便利的,因此修改ota底包制作流程,将tz、rpm、appsboot等镜像按需打包进OTA底包中:

在这里插入图片描述

但如果我们在目标和当前版本OTA底包中都放上tz、rpm、appsboot等镜像,又会导致他们会以patch的方式升级,而tz、rpm、appsboot等镜像本身就只有不到1M的空间,因此完全无需patch方式,因此修改差分包制作工具,判断当文件为tz、rpm、appsboot等镜像时,无需制作patch,直接拷贝目标镜像即可。

在这里插入图片描述
通过上述这些修改,就可以完成OTA升级tz、rpm、appsboot等非常规分区。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/181123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Confluence Server Webwork 预身份验证 OGNL 注入 (CVE-2021-26084)

漏洞描述 Confluence 是由澳大利亚软件公司 Atlassian 开发的基于 Web 的企业 wiki。 存在一个 OGNL 注入漏洞,允许未经身份验证的攻击者在 Confluence Server 或 Data Center 实例上执行任意代码。 漏洞环境及利用 搭建docker环境 Confluence搭建见前文 Atlas…

每日一题:LeetCode-105.从前序遍历与中序遍历构造二叉树

每日一题系列(day 02) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

配置华为云镜像加速器

登录华为云官网,点击控制台 在服务列表里面寻找swr服务 点击镜像中心,点击镜像加速器 {"registry-mirrors": [ "https://301dc05233c6419b810bdb22135af9eb.mirror.swr.myhuaweicloud.com" ]}配置镜像加速器 vim /etc/docker…

数据中心运维管理:从人工到智能需要走几步?

一切的变化来自于数据中心规模、复杂度、设备多样性的挑战,将运维平台的重要性推向历史高点。 此外,基于业务连续性方面的考虑,分布式数据中心成为越来越多客户的选择。 一、数据中心面临的挑战 运维管理分散,缺乏统一的管理 I…

基于C#实现赫夫曼树

赫夫曼树又称最优二叉树,也就是带权路径最短的树,对于赫夫曼树,我想大家对它是非常的熟悉,也知道它的应用场景,但是有没有自己亲手写过,这个我就不清楚了,不管以前写没写,这一篇我们…

Idea如何使用git将代码上传到多个远程仓库

废话不多说了,看图指南吧;大佬勿喷哈 打开你的项目找到你要上传代码到另外库中的代码,找到git把图中地址跟链接名称写完就可以进行上传时候的选择了最后就可以进行提交了,提交都一样

万宾科技智能井盖传感器使用方式,具有什么效果?

有问题的井盖可能导致人们在行走或驾驶时不经意地踩中或碰到,从而导致摔倒、扭伤或交通事故等安全事故。有问题的井盖可能会破坏井盖和下方污水管道之间的密封性,导致污水泄漏。这不仅会对环境造成污染,还可能对公共卫生和健康构成威胁。 将智…

csapp 深入理解计算机系统 bomb lab(2)phase_2

bomblab及phase_1 同phase_1可以查看phase_2的汇编代 call 40145c <read_six_numbers>可以看出phase_2调用了read_six_numbers&#xff0c;然后把1和 (%rsp)比较&#xff0c;如果不是1&#xff0c;就会调用<explode_bomb>函数。 %rsp 存放地址&#xff0c;(%r…

获取ip属地(ip2region本地离线包-超简单)

背景 最近有涉及要显示ip属地&#xff0c;但我想白嫖&#xff0c;结果就是白嫖的api接口太慢了&#xff0c;要延迟3到4秒左右&#xff0c;很影响体验&#xff0c;而且不一定稳定。 结果突然看到了这个【ip2region】开源项目&#xff0c;离线识别ip属地&#xff0c;精度自己测…

字符串匹配算法——KMP

有文本串aabaabaaf&#xff0c;模式串aabaaf问文本串中是否出现过模式串 暴力解法 最不用动脑子的&#xff0c;直接两层for循环&#xff0c;逐个匹配&#xff0c;匹配到不相等的值时把文本串后移一位&#xff0c;再重新比较。这种方法的复杂度是O(mn)&#xff0c;该方法低效的…

java--static的应用知识:单例设计模式

1.什么是设计模式(Design pattern) ①一个问题通常有n中解法&#xff0c;其中肯定有一种解法最优的&#xff0c;这个最优的解法被人总结出来了&#xff0c;称之为设计模式。 ②设计模式有20多种&#xff0c;对应20多种软件开发中会遇到的问题。 2.单例设计模式 确保一个类只…

【史上最细教程】服务器MySQL数据库完成主从复制

文章目录 MySQL完成主从复制教程准备&#xff1a;原理&#xff1a;步骤&#xff1a; 推荐文章 MySQL完成主从复制教程 主从复制&#xff08;也称 AB 复制&#xff09;就是将一个服务器&#xff08;主服务器&#xff09;的数据复制到一个或多个MySQL数据库服务器&#xff08;从…

windows根据已有的安卓签名文件获取MD5签名

windows根据已有的安卓签名文件获取MD5签名 0 现状 uniapp 本机号码一键登录需要MD5的&#xff0c;现有的签名文件但是只有SHA1和SHA256 查看SHA1和SHA256 keytool -list -v -keystore [你的.keystore文件]1 前提 已有生成签名文件的环境 搭建Openssl环境&#xff0c;设置…

Spring框架学习 -- 读取和存储Bean对象

目录 &#x1f680;&#x1f680; 回顾 getBean()方法的使用 根据name来获取对象 再谈getBean() (1) 配置扫描路径 (2) 添加注解 ① spring注解简介 ② 对类注解的使用 ③ 注解Bean对象的命名问题 ④ 方法加Bean注解 (3) Bean 注解的重命名 (4) 获取Bean对象 -- …

Linux---常用命令汇总

文章目录 关于目录操作的命令ls/llcdpwdmkdir 关于文件操作的命令touchechocatrmmvcpvim 关于查询操作的命令greppsnetstat 关于目录操作的命令 ls/ll ls : 列出当前目录下的目录和文件&#xff08;以行的展示形式&#xff09; ll &#xff1a; 列出当前目录下的目录和文件&…

如何正确接入API接口通过淘宝商品ID和sku ID获取到淘宝商品SKU信息接口,可获取sku价格,sku销量,sku图片及sku库存参数等

接入API接口的正确方式可能因API的具体要求而有所不同&#xff0c;但一般来说&#xff0c;以下是一些通用的步骤&#xff1a; 获取API文档&#xff1a;API文档通常包括API的请求方式、请求参数、响应格式等信息。您需要仔细阅读文档&#xff0c;了解API的具体要求和使用方式。…

构建个性化预约服务:预约上门服务系统源码解读与实战

随着社会的发展&#xff0c;预约上门服务系统在满足用户需求、提升服务效率方面发挥着越来越重要的作用。在本文中&#xff0c;我们将深入研究预约上门服务系统的源码&#xff0c;通过实际的技术代码示例&#xff0c;揭示系统内部的关键机制&#xff0c;以及如何在实际项目中应…

mybatis 语法使用各种踩坑(持续更新中。。。)

1、大小写命名&#xff1a;这个别说了&#xff0c;都是泪。 2、联表查询查询&#xff0c;多条合成一条&#xff0c;不生效的原因 博主各种检查关联关系和字段大小写&#xff0c;本来是4条数据最后合成一条数据&#xff0c;死活给你直接返回了4条数据&#xff0c;而且每个类似p…

四肽-3——增加皮肤光滑度、紧致度,让肌肤看起来更年轻

Caprooyl四肽-3&#xff0c;也称为KGHK Caproic acid&#xff0c;是一种基于TGF-&#xff08;转化生长因子β&#xff09;的仿生脂肽结构&#xff0c;在细胞外基质成分的自然产生中发挥重要作用。肽序列是Lys-Gly-His-Lys。它可以减少细纹和皱纹的出现&#xff0c;提高皮肤弹性…

万宾科技智能井盖传感器效果,特点有哪些?

现在城市发展越来越好&#xff0c;对基础设施的改造越来越多&#xff0c;比如修路搭桥、整改生态等都是为民服务的好工程。平时走在路上我们享受着平整的路面&#xff0c;井然有序的交通也为我们带来很大的方便。但是一个又一个的井盖看起来无关紧要&#xff0c;实际上如果路上…