OTA升级详解(一)
不积跬步,无以至千里;
不积小流,无以成江海。
出自荀子《劝学篇》
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升级详解(一)的更多相关文章
- OTA升级详解(三)
君子知夫不全不粹之不足以为美也, 故诵数以贯之, 思索以通之, 为其人以处之, 除其害者以持养之: 出自荀子<劝学篇> 终于OTA的升级过程的详解来了,之前的两篇文章OTA升级详解(一)与 ...
- STM32 IAP 在线升级详解(转)
源:http://blog.csdn.net/yx_l128125/article/details/12992773 (扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP ...
- 【转载】STM32 IAP 在线升级详解
(扩展-IAP主要用于产品出厂后应用程序的更新作用,考虑到出厂时要先烧写IAP 再烧写APP应用程序要烧写2次增加工人劳动力基础上写了“STM32 IAP+APP ==>双剑合一”链接稍后 ...
- STM32 Bootloader基于ymodem传输协议串口IAP升级详解
硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 1 预备知识 2 Bootloader 2.1 启动流程 2.2 校验跳转地址是否有效 ...
- Gerrit 服务搭建和升级详解(包括 H2 数据库迁移 MySQL 步骤)
1. 安装Gerrit-2.9.5版本(Ubuntu) Gerrit版本:Gerrit-2.9.5.war 操作系统:Ubuntu 16.04.3 JAVA环境:java version " ...
- CentOS6.9 内核升级详解
内核进行的是应用软件和计算机硬件的交互工作在计算机科学中,内核(英语:kernel)又称核心,是一个计算机程序,用来管理软件发出的数据I/O(输入与输出)要求,将这些要求转译为数据处理的指令,交由中央 ...
- 【直播预告】云栖直播:阿里热修复产品HotFix2.0升级详解
全面——你知道吗?1891年,卡尔森纳做出的第一把瑞士军刀,只有螺丝刀和开罐器.经过一代又一代能工巧匠的打磨,这把刀陆续增加了锯子.剪刀.镊子.放大镜.改锥,甚至内藏激光.LED手电筒.USB记忆碟等 ...
- nrf52——DFU升级OTA升级方式详解(基于SDK开发例程)
在我们开始前,默认你已经安装好了一些基础工具,如nrfutil,如果你没有安装过请根据官方中文博客去安装好这些基础工具,连接如下:Nordic nRF5 SDK开发环境搭建(nRF51/nRF52芯片 ...
- nRF Connect SDK(NCS)/Zephyr固件升级详解 – 重点讲述MCUboot和蓝牙空中升级
如何在nRF Connect SDK(NCS)中实现蓝牙空中升级?MCUboot和B0两个Bootloader有什么区别?MCUboot升级使用的image格式是怎么样的?什么是SMP协议?CBOR编 ...
随机推荐
- 转:查看oracle数据库允许的最大连接数和当前连接数
在查看数据的连接情况很有用,写完程序一边测试代码一边查看数据库连接的释放情况有助于分析优化出一个健壮的系统程序来. 1.查看当前的数据库连接数 select count(*) from v$proce ...
- 为elastic的索引做快照并恢复快照到新集群
1. 为指定的所有做快照 curl -XPUT "192.168.1.1:9200/_snapshot/my_backup/testindex_20170803?wait_for_compl ...
- Build a Contest-创建比赛 CodeForce1100B
题目链接:Build a Contest 题目原文 Arkady coordinates rounds on some not really famous competitive programmin ...
- 工厂模式(整理自李建忠<C++设计模式>视频)
整理自李建忠<C++设计模式>视频 一.导入:"对象创建"模式和工厂模式 工厂模式只是该模式下的一种. 二.举例说明 有这样一个场景:需要在MainForm中设计一个按 ...
- Spring 梳理-启用MVC
启用注解启动的Spring MVC xml <mvc:annotation-dirven> <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置 ...
- 读《深入理解Elasticsearch》点滴-改善查询相关性
1.标准查询 query match _all query:"搜索字符串" operator:or 2.多匹配查询+区分权重 query multi_match "que ...
- Linux 部署vsftp服务及详解
一.FTP服务概述: FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP(File Transf ...
- tomcat设置指定jdk版本
windows 1.解压下载的tomcat; 2.找到bin下的setclasspath.bat文件:在文件的开始出添加如下代码来设定JAVA_HOME和JRE_HOME的路径: set JAVA_H ...
- setfacl、getfacl
当用户访问一个文件时,权限匹配的顺序为owner--->group--->other.当设置访问控制列表后,owner--->facl_user--->group---> ...
- web前端之移动端:知识汇
移动前端自适应适配方法总结 移动端前端适配方案(总结) -- 面试重点 不要再问我移动适配的问题了 一.响应式布局: // Extra small devices (portrait phones, ...