不积跬步,无以至千里;

不积小流,无以成江海。

出自荀子《劝学篇》

1、概念解释

OTA是何物? 英文解释为 Over The Air,既空中下载的意思,具体指远程无线方式,OTA 技术可以理解为一种远程无线升级技术;

FOTA:Firmware OverThe Air/固件空中升级,通过云端为具有连网功能的设备:例如手机、平板电脑、移动互联网设备等提供固件升级服务,手机中的固件升级即可称为 FOTA;

在3G、4G网络普遍的今天,很多时候还是要考虑流量限制,如果步入5G时代,虽然流量已不在是瓶颈,但是因为功能小但是重要的版本升级相比整体固件升级来说还是相当不错的选择。

2、基础知识

做了有一段时间的OTA升级了,主要是基于Android的差分及全量升级,计划对当前掌握的知识在做一个系统的梳理与总结,在进行正式的流程讲解前我会先对OTA的一些原始包结构、目标包结构做详细说明,本节算是一个基础章节,为理解、消化后面的主要流程做铺垫。

包结构

制作升级包具有一定的格式,生成它需要原始包,原始包也有固定的格式,基本都是通过系统工程编译出来,结构如下:

目录说明

升级包结构

目录说明

生成升级包的工具

用于生成OTA差分包的需要使用到python脚本、C源码编译的可执行文件,这些都是开源的,如下

文件功能

ota_from_target_files:为一个python脚本,做包入口从这里开始,生成包的主要工作也是在这里完成。

bsddiff:此可执行文件主要用户计算非压缩的文件的差异,比如我们计算rootfs文件的差异,就使用的此脚本。

imgdiff:此可执行文件主要用户计算压缩文件的差异,支持的格式有*.gz,*.zip,*.apk,*.jar,*.img。

fs_config:此可执行文件主要用户计算原始文件的gid、uid、mode,但是此种方式有一个弊端就是,fs_config其实是硬编码的,如果我们新增一个文件,有可能在进行添加后,不能将其权限进行添加。

common.py:主要定义了一些公用的函数,如:获取分区类型、计算文件差分、生成patch文件等。

edify_generator.py:主要是生成updater-script文件的内容,还包括将文件添加到升级包中。

以上就是OTA升级所要了解的基本知识,下一章我会详细讲解如何由两个不同的基本包使用脚本生成差分升级包,敬请关注哦。

关注微信公众号【嵌入式C部落】,获取更多精华文章,海量编程资料,让我们一起进步,一起成长。

OTA升级详解(一)相关推荐

  1. OTA升级详解(二)

    青,取之于蓝,而青于蓝: 冰,水为之,而寒于水. 出自荀子<劝学篇> 本章说明       上篇 OTA升级详解(一)主要讲到OTA的一些基本知识,本篇主要内容为详解OTA升级包的制作过程 ...

  2. CISCO X8系列AP升级详解

    X8系列AP升级详解 准备工作 1.将AP连接到可获取IP地址的设备:交换机.家用路由或者猫等 2.用终端通过CONSOLE线连接AP,默认用户名为:cisco 密码为:Cisco 3.在AP获取到地 ...

  3. android studio gradle3.3,Android studio 3.2 升级详解及Gradle配置

    Android studio 3.2 升级详解及Gradle配置 发布时间:2018-09-29 15:36, 浏览次数:618 , 标签: Android studio Gradle 一直在使用An ...

  4. Mysql 8 逻辑升级详解

                               Mysql 8 逻辑升级8.0.21到8.0.23 升级准备 核对系统环境 操作系统环境:centOS 8 X86 64 数据库环境由mysql ...

  5. 基于Android SQLite的升级详解

    做Android应用,不可避免的会与SQLite打交道.随着应用的不断升级,原有的数据库结构可能已经不再适应新的功能,这时候,就需要对SQLite数据库的结构进行升级了. SQLite提供了ALTER ...

  6. STM32的ISP升级详解

    最近在做一个给STM32用ISP升级的项目,接触到STM32厂家烧录的Bootloader工作流程,具体官方文档稍后上传供大家参考,也可去ST官网下载文档.接下来针对文档中部分内容分析其工作过程: 一 ...

  7. 从1到N迈向从0到1:华为创新理念升级详解

    智能社会扑面而来,而作为基石的ICT技术在理论上.在工程上开始遭遇瓶颈与挑战.下一步应该如何突破?已经独自奔跑在"无人区"的华为选择升级创新理念,从创新1.0时代迈向创新2.0时代 ...

  8. Gerrit 服务搭建和升级详解(包括 H2 数据库迁移 MySQL 步骤)

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  9. python应用如何实现升级_基于esky实现python应用的自动升级详解

    基于 esky 实现 python 应用的自动升级 一. esky 介绍 Esky is an auto-update framework for frozen Python applications ...

最新文章

  1. php 获取对象中的元素个数组长度,php数组长度怎么获取
  2. HTML与XHTML的区别
  3. DNS术语,组件和概念介绍
  4. xshell搭建宝塔没有远程命令密码框框弹出来_服务器安装宝塔控制面板+wordpress搭建个人网站...
  5. iOS 10 (X8)上CoreData的使用(包含创建工程时未添加CoreData)
  6. SQL SERVER 使用订阅发布同步数据库(转)
  7. 眼控科技 实习算法工程师面试
  8. iOS之NSURLSessionDownloadTask下载
  9. 如何提高lstm的预测精度_如何提高失重秤的喂料精度?你需要了解这些!
  10. L1-011. A-B-PAT团体程序设计天梯赛(GPLT)
  11. 解析php变量,php使用parse_str实现查询字符串解析到变量中的方法
  12. 步进伺服控制程序 用三菱plc和威纶触摸屏编写
  13. NETCDF C and FORTRAN 4.2 安装笔记
  14. AH8691_POE交换机/分离器IC_30V-65V1A-3A_大电流POE管理芯片
  15. 基于RRT算法的路径规划实现(matlab)
  16. 图片格式转换 png,jpg,gif等格式 的python小程序
  17. 案例 | 巴别鸟为弘睿构建企业知识库
  18. Revit平台盗版软件的陷阱与风险
  19. 致江苏卫视《最强大脑第二季》节目组的一封信
  20. Window操作系统基本知识

热门文章

  1. 历时将近半年的春招,以拿到网易offer结束,在此分享一下我的面经!
  2. 乐观锁、悲观锁原理解析
  3. MarkDown转译字符
  4. 不止是产品经理(一)----作为刚入行产品经理,如何开展工作?
  5. 2022年苏州市重点软件企业和专精特新软件企业培育入库项目开始
  6. 从CES看PC趋势:英特尔AMD成盟友 显示器会更大
  7. JAVA程序设计课程考试试卷专升本考研期末考试真题参考题目(一)
  8. bert中的sep_一步步理解BERT
  9. 华为加码布局 VR/AR趁势启航
  10. java判断是否为文件夹_java怎么判断是否文件夹