CN109905430A - 一种软件升级方法与系统 - Google Patents
一种软件升级方法与系统 Download PDFInfo
- Publication number
- CN109905430A CN109905430A CN201711296041.XA CN201711296041A CN109905430A CN 109905430 A CN109905430 A CN 109905430A CN 201711296041 A CN201711296041 A CN 201711296041A CN 109905430 A CN109905430 A CN 109905430A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- difference
- software
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种软件升级方法和软件升级系统。该软件升级方法包括下载阶段和升级阶段。在下载升级包的同时进行升级包的分包处理,直接基于所接收的升级包的数据包产生用于升级的差分包。升级阶段直接使用所述差分包进行升级。下载阶段具体包括:接收升级包的数据包,所述数据包包括头信息和/或数据;根据所述头信息获取差分包信息;根据所述头信息、差分包信息、所述数据的偏移位置,解析出所述数据的归属;根据所述数据的归属,直接将所述数据存储到对应的文件的对应位置。所述下载阶段的接收过程具有缓冲机制用于缓冲所接收的头信息,还包括断点续传机制。本发明适用于OMADM协议的软件升级,本发明降低了升级过程中对客户端设备的空用空间的需求。
Description
技术领域
本发明涉及软件升级,尤其涉及软件升级方法和软件升级系统。本说明书与权利要求书 中,“软件”为广义的软件,包括固件、操作系统、驱动程序、系统软件、应用软件等。
背景技术
OMA DM(开放移动联盟设备管理)协议得到了大量运营商以及厂商的广泛支持。其中 DM FOTA(无线固件)功能成为DM协议中应用最多的一种技术,它可以有效的对软件和固件的缺陷进行升级,加快设备厂商的产品上市时间,减少设备出现故障通过售后或其它方 式维护带来的花费。
版本升级在针对移动终端进行升级时需要针对设备flash(刷新)的不同划分,分别采用 文件系统的更新方式以及固件的更新方式来进行升级。一个版本的更新可能包含有文件系统 的更新,可能仅仅是固件侧的更新,也可能两者的更新皆有。
参考图1,标准DM协议的FOTA升级方式在获取新版本后只下载一个升级包文件;这就需将前述的固件差分包和文件系统差分包进行包装加入一定的文件头以及格式定义后合成 一个文件也就是所谓的组包过程,在下载后需要对应的分包动作来将固件差分包和文件系统 差分包合成的文件分离成独立的两部分,再由相应的更新程序去读取完成各自的升级。
随着FOTA功能的不断完善以及智能移动设备时代操作系统演进的不断加速,版本升级 不再只停留在小的软件调整上,有可能一次版本升级会提升操作系统的版本,导致升级包的 大小超越百兆级别。
由于下载后还要分包,分包产生的差分包大小等同于下载的更新包大小;实际更新一个 升级版本,消耗的设备存储空间将为升级包大小的2倍,当升级包很大时,对存储空间过多 的消耗就更容易暴露出来。
由此将导致升级包虽然下载成功但是在分包阶段因为没有足够空间而无法完成最终的版 本升级。
因此,亟需一种改进的升级方法和升级系统。
发明内容
本发明的一方面,提供一种节省客户端设备可用空间的软件升级方法,所述软件升级方 法包括下载阶段和升级阶段。所述下载阶段在下载升级包的同时进行升级包的分包处理,直 接基于所接收的升级包的数据包产生用于升级的差分包,即,不需要像传统的升级方法那样 先组包在分包。所述升级阶段直接使用所述差分包进行升级,即,不需要像传统的升级方法 那样先组包后分包。
在一个优选实施例中,所述下载阶段具体包括:接收升级包的数据包,所述数据包包括 头信息和/或数据;根据所述头信息获取差分包信息;根据所述头信息、差分包信息、所述 数据的偏移位置,解析出所述数据的归属;根据所述数据的归属,直接将所述数据存储到对 应的文件的对应位置。
在一个优选实施例中,所述下载阶段的接收过程具有缓冲机制,用于缓冲所接收的头信 息。
在一个优选实施例中,所述下载阶段包括断点续传机制,所述断点续传机制包括缓存已 接收的头信息。
在一个优选实施例中,所述软件升级方法为基于OMA DM协议的软件升级方法,所述 差分包包括固件差分包、系统软件差分包和/或应用程序差分包。
在一个优选实施例中,所述软件升级方法还包括下载流程判定步骤,所述下载流程判断 步骤用于判断是否需要在所述下载阶段在下载升级包的同时进行升级包的分包处理。
本发明的另一方面,提供一种节省客户端设备可用空间的软件升级系统。该软件升级系 统包括下载模块和升级模块。所述下载模块包括数据接收模块、数据解析模块和数据存储模 块。所述接收模块用于接收升级包的数据包。所述数据解析模块和数据存储模块用于分包处 理,直接基于所接收的升级包的数据包产生用于升级的差分包。所述升级模块直接使用所述 差分包进行升级。
在一个优选实施例中,所述数据包包括头信息和/或数据。所述数据解析模块与数据接 收模块连接,根据所述头信息获取差分包信息,根据所述头信息、差分包信息、所述数据的 偏移位置,解析出所述数据的归属。所述数据存储模块根据所述数据的归属,直接将所述数 据存储到对应的文件的对应位置。
在一个优选实施例中,所述数据接收模块具有缓冲机制,用于缓冲所接收的头信息;所 述下载模块还具有包头缓存模块,用于缓存已接收的头信息以实现断点续传。
在一个优选实施例中,所述软件升级系统为基于OMA DM协议的软件升级系统,所述 差分包包括固件差分包、系统软件差分包和/或应用程序差分包。
实施本发明,在下载阶段就完成了升级包的分包处理,不需要像传统的升级方法那样, 先组包再分包,降低了对客户端设备的空用空间的需求。
附图说明
图1为现有标准升级包下载安装的流程示意图;
图2为复合升级包结构图;
图3为单独升级包结构图;
图4为本发明的下载处理的流程示意图;
图5为本发明的升级包下载安装的流程示意图。
具体实施方式
下面详细阐述本发明的工作方式。
本发明针对的是进行FOTA升级的移动终端设备,这类设备包含智能手机、智能平板、 便携式Mp3、Mp4播放器等产品。本实例中以智能手机为例进行描述。
为便于理解,先介绍如图1所示的现有标准升级流程。进行版本升级先要发起DM的会 话,发起过程根据DM协议的定义可以由服务器端通过推送(wap push)通知也可以由客户 端主动发起。
服务器端进行相关的鉴权,判断连接的终端设备是否合法。
鉴权成功,下一步设备端发送自己的版本,产品型号,厂商名称等信息给服务器端,服 务器根据这些信息对比服务器上升级包的版本检查是否有合适对应机型的升级包,如果有会 通知终端设备允许下载。
如果没有有效升级包则通知终端设备没有对应的更新版本。
步骤S101:设备接到通知有更新包,下载前会判断当前设备的剩余空间是否满足下载 要求。
步骤S102:此处判断满足后即会进入下载流程,完成下载完毕。
步骤S103:分包模块需对升级包文件解析并分离出对应的文件系统差分包和固件差分 包;如果没有足够的空间供分包模块使用,则这一步将直接导致整个升级流程的失败。
步骤S104:上面分包动作成功则进入升级。
为克服现有升级方法的不足,本发明的软件升级方法,包括下载阶段和升级阶段。所述 下载阶段在下载升级包的同时进行升级包的分包处理,直接基于所接收的升级包的数据包产 生用于升级的差分包,不像传统的升级方法那样先组包在分包。这样,升级阶段就可以直接 使用所述差分包进行升级。实施本发明,可以节省客户端的存储空间,避免因为空间不足而 导致升级流程失败。
软件目的升级包分为复合升级包和单独升级包两类。这两种升级包的结构稍有不同,下 面分别描述:
如图2即为复合升级包的结构,复合升级包头标志、差分包标志、差分包1大小、差分 包2大小这四个连续的部分组成了复合升级包的包头。复合升级包头标志是一个4字节的数 据0x0A022400;差分包标志用于标识差分包1的类型是4字节长度的数据(0x00000001代 表文件系统类型;0x00000000代表固件类型);差分包1大小是个4字节数据记录了第一个差分包的数据大小;差分包2大小也是个4字节数据记录了第二个差分包的数据大小。
如图3即为单独升级包的结构,单独升级包头标志、包类型标志、差分包大小这三个连 续的部分组成了单独升级包的包头。单独升级包标志是一个4字节的数据0x0A011800;差分 包标志用于标识差分包的类型是4字节长度的数据;差分包大小是个4字节数据记录了差分 包的数据大小。
因此,本发明需要正确识别升级包的类型,以实现在下载阶段进行分包处理,以得到升 级所需的差分包。
本实施例的下载模块,下载阶段由下载模块完成。下载模块包含数据接收模块601、数 据解析模块602、包头缓存模块603、数据存储模块604。
数据接收模块601,基于超文本传输协议(http)栈实现接收数据内容供数据解析模块处 理。
数据解析模块602,拿到数据后需区分数据属于哪一部分,包头部分交给包头缓存模块 603,差分包内容部分交给数据存储模块604,下面详细介绍过程。
首先获取文件头信息,由于单独升级包和复合升级包的文件格式有所区别,所以需要先 通过头信息确定是什么样的升级包;由于下载数据受当时网络状况影响很大,头信息不一定 在收到第一组数据时就已经齐备,需要数据接收模块601加入缓冲机制,当接收到的数据达 到文件头信息长度时通知数据解析模块602,从头信息中解析升级包的格式;未接收完成前 等待接收剩余的文件头信息直到完毕。
数据解析模块602当头信息接收完毕后,通过比较文件头4字节判断出升级包是哪种更 新包(单独升级包或是复合升级包),由此确定包头属于哪种类型,以相应类型的格式分别读 取出差分包类型,差分包1大小,差分包2大小这些信息。
包头缓存模块603然后将其保存在设备flash中,包头缓存模块603的作用是当终端在 下载过程中发生中断,再次下载升级包时头信息不会重传,通过缓存的信息内容从而实现断 点续传,识别当前升级包的格式。
数据解析模块602通过头信息和接收数据的偏移位置,计算出当前数据属于哪一部分, 将数据交给数据存储模块并告知其对应保存的文件名。
下面介绍下复合升级包和单独升级包,通过数据偏移位置,如何定位对应当前接收数据 属于什么内容复合升级包的定位如下所述(参考图2):复合升级包包头大小=复合升级包 头标志字段+差分包标志字段+差分包1大小字段+差分包2大小字段。假设差分包标志字段值为0x00000001则差分包1是文件系统类型,差分包2是固件类型。
若数据偏移位置<复合升级包包头大小,此数据属于包头部分的数据;若数据偏移位 置>复合升级包包头大小&&数据偏移位置<(复合升级包包头大小+差分包1大小), 此数据属于文件系统差分包的数据。
若数据偏移位置>(复合升级包包头大小+差分包1大小),此数据属于固件差分包的 数据。
单独升级包的定位如下所述(参考图3):单独升级包包头大小=单独升级包头标志字 段+差分包标志字段+差分包大小字段。
假设差分包标志字段值为0x00000000则差分包是固件类型。
若数据偏移位置<单独升级包包头大小,此数据属于包头部分的数据;若数据偏移位 置>单独升级包包头大小,此数据属于固件差分包的数据。
数据存储模块604将数据存储在终端的存储设备中,在存储时判断要存储的文件是否存 在,不存在的话新建文件,否则通过附加(append)的方式增加数据到对应文件,这样,就 是本发明所述的“直接基于所接收的数据分包生成了差分包”,不需要像传统的升级方法一 样先组包在分包。
这样,在升级阶段,就可以直接使用所述差分包进行升级,不需要先组包在分包,降低 了对客户端可用存储空间的需求。
参考图5,本发明一个实施例中,软件升级的步骤包括:步骤S501:开始操作后先记录 下载流程的标记用于后续进入下载处理流程来判别下载类型。DM协议用于设备管理,其中 包含很多功能点例如软件模块升级、远端参数配置、版本升级等等,版本升级只是用到下载 功能的其中一个模块,也就是说本实施例的下载功能能够兼容其它多种应用模式。步骤 S502:此处依然需要判断设备剩余空间大小,如果客户端设备空间不足,则升级过程提前结 束。否则,流程进入步骤S503。
步骤S503:下载处理流程会鉴别不同的下载需求选择合适的方式,如果是软件升级, 则在下载阶段进行分包处理,直接基于所接收的数据包生成用于升级的差分包。
步骤S504:当所有数据传输完毕时,进入进行升级阶段,此处对设备存储空间已无过 多要求,将直接进行升级。至此整个更新流程已经跑完。
参考图4在进入下载流程前步骤S401:需要判别当前下载流程的标记,通过读取存储 在终端设备内存的标志获取。
步骤S402:比较得出当前的下载类型。
步骤S403:如果符合版本升级类型需要进入版本升级的下载分包流程中,然后流程结 束。否则,流程进入步骤S404。
步骤S404:采用标准流程;然后继续流程直到下载完成。
本发明升级下载升级包流程及所依赖的服务器皆实现于OMA DM协议基础之上与标准 DM协议兼容,其它基于DM协议的设备皆可移植此功能提高下载升级包的效率。
本发明提出的DM下载流程扩展方式,可针对不同的下载场景定义不同的下载流程,最 大限度的满足各应用模式的特殊需求,增加定制化的能力本发明所述的升级包格式仅是其中 一种可能的组包实施方案,在不脱离本发明构思的前提与之有类似组包形式的升级包在下载 过程中进行分包的处理,均包括在本发明的专利保护范围内。
对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形 和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为 准。
Claims (10)
1.一种软件升级方法,包括下载阶段和升级阶段,其特征在于:
所述下载阶段在下载升级包的同时进行升级包的分包处理,直接基于所接收的升级包的数据包产生用于升级的差分包;所述升级阶段直接使用所述差分包进行升级。
2.根据权利要求1所述的软件升级方法,其特征在于,所述下载阶段包括:接收升级包的数据包,所述数据包包括头信息和/或数据;
根据所述头信息获取差分包信息;
根据所述头信息、差分包信息、所述数据的偏移位置,解析出所述数据的归属;
根据所述数据的归属,直接将所述数据存储到对应的文件的对应位置。
3.根据权利要求2所述的软件升级方法,其特征在于,所述下载阶段的接收过程具有缓冲机制,用于缓冲所接收的头信息。
4.根据权利要求2所述的软件升级方法,其特征在于,所述下载阶段包括断点续传机制,所述断点续传机制包括缓存已接收的头信息。
5.根据权利要求1至4中任意一项所述的软件升级方法,其特征在于,所述软件升级方法为基于OMA DM协议的软件升级方法,所述差分包包括固件差分包、系统软件差分包和/或应用程序差分包。
6.根据权利要求5所述的软件升级方法,其特征在于,所述软件升级方法还包括下载流程判定步骤,所述下载流程判断步骤用于判断是否需要在所述下载阶段在下载升级包的同时进行升级包的分包处理。
7.一种软件升级系统,包括下载模块和升级模块,其特征在于:所述下载模块包括数据接收模块、数据解析模块和数据存储模块;所述接收模块用于接收升级包的数据包;所述数据解析模块和数据存储模块用于分包处理,直接基于所接收的升级包的数据包产生用于升级的差分包;所述升级模块直接使用所述差分包进行升级。
8.根据权利要求7所述的软件升级系统,其特征在于:
所述数据包包括头信息和/或数据;
所述数据解析模块与数据接收模块连接,根据所述头信息获取差分包信息,根据所述头信息、差分包信息、所述数据的偏移位置,解析出所述数据的归属;
所述数据存储模块根据所述数据的归属,直接将所述数据存储到对应的文件的对应位置。
9.根据权利要求8所述的软件升级系统,其特征在于:
所述数据接收模块具有缓冲机制,用于缓冲所接收的头信息;
所述下载模块还具有包头缓存模块,用于缓存已接收的头信息以实现断点续传。
10.根据权利要求7至9中任意一项所述的软件升级系统,其特征在于,所述软件升级系统为基于OMA DM协议的软件升级系统,所述差分包包括固件差分包、系统软件差分包和/或应用程序差分包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711296041.XA CN109905430A (zh) | 2017-12-08 | 2017-12-08 | 一种软件升级方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711296041.XA CN109905430A (zh) | 2017-12-08 | 2017-12-08 | 一种软件升级方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109905430A true CN109905430A (zh) | 2019-06-18 |
Family
ID=66940576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711296041.XA Withdrawn CN109905430A (zh) | 2017-12-08 | 2017-12-08 | 一种软件升级方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109905430A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111263354A (zh) * | 2020-01-08 | 2020-06-09 | 苏宁智能终端有限公司 | 一种ota差分升级方法及装置 |
CN111726247A (zh) * | 2020-05-29 | 2020-09-29 | 惠州拓邦电气技术有限公司 | 一种电子锁固件的更新方法、装置、电子锁及存储介质 |
CN112286565A (zh) * | 2020-10-30 | 2021-01-29 | 浙江正泰中自控制工程有限公司 | 一种基于存储容器的嵌入式系统差分升级方法 |
-
2017
- 2017-12-08 CN CN201711296041.XA patent/CN109905430A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111263354A (zh) * | 2020-01-08 | 2020-06-09 | 苏宁智能终端有限公司 | 一种ota差分升级方法及装置 |
CN111263354B (zh) * | 2020-01-08 | 2023-04-21 | 苏宁智能终端有限公司 | 一种ota差分升级方法及装置 |
CN111726247A (zh) * | 2020-05-29 | 2020-09-29 | 惠州拓邦电气技术有限公司 | 一种电子锁固件的更新方法、装置、电子锁及存储介质 |
CN112286565A (zh) * | 2020-10-30 | 2021-01-29 | 浙江正泰中自控制工程有限公司 | 一种基于存储容器的嵌入式系统差分升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577202B (zh) | 软件升级方法与系统 | |
CN103678319B (zh) | 资源文件更新方法、装置和系统及服务器 | |
US20150381737A1 (en) | Gateway device and a gateway system for an internet-of-things environment | |
CN101795392B (zh) | 下载应用数据的方法、数字电视接收终端及系统 | |
CN101216834B (zh) | 一种文件下载方法、系统、装置与服务器 | |
CN101694622A (zh) | 一种多设备组合装置的固件远程升级方法及系统 | |
CN104123149B (zh) | 软件升级方法、装置、客户端及系统 | |
EP3977269B1 (en) | Enabling upgrading firmware of a target device | |
CN109905430A (zh) | 一种软件升级方法与系统 | |
US8626931B2 (en) | Media transport protocol extensions for system information exchange, and applications thereof | |
CN111142905B (zh) | 一种ota升级方法、ota服务器及ota升级系统 | |
CN104410665A (zh) | 一种更新包的下载方法及设备 | |
CN112328293A (zh) | 一种嵌入式设备的差分升级方法及相关组件 | |
CN102063321B (zh) | 终端软件的安装方法、装置和系统 | |
CN112565334A (zh) | 物联网设备的接入方法、装置及mqtt网关 | |
CN116088901A (zh) | 一种固件升级的方法、装置、电子设备及计算机存储介质 | |
CN106020917B (zh) | 一种软件安装方法及装置、用户终端 | |
CN102377793A (zh) | 基于移动通讯设备终端的Flash交互方法及装置 | |
CN101938765B (zh) | 一种网管和网元自动适配的方法和系统 | |
CN103491057A (zh) | 一种共享会话数据的方法、系统及装置 | |
WO2022227615A1 (zh) | 数据升级方法、数据升级装置和可读存储介质 | |
CN102137058B (zh) | 一种基于tab页的页面访问方法和装置 | |
AU2018373682B2 (en) | Method for remote management of a device connected to a residential gateway | |
CN118193022B (zh) | 版本定制数据管理方法及平台 | |
CN109426509A (zh) | 资源处理方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190618 |