一种无线终端版本升级系统及方法与流程

文档序号:17048463发布日期:2019-03-05 19:47阅读:188来源:国知局
一种无线终端版本升级系统及方法与流程

本发明涉及固件空中升级技术领域,特别是涉及一种无线终端版本升级系统及方法。



背景技术:

fota(firmwareover-the-air)固件空中升级技术,是指通过云端升级技术,为具有连网功能的终端设备(无线终端),例如手机、电脑、平板等提供固件升级服务。终端设备通过网络获取升级包,进行云端升级,完成系统的修复和优化。

目前无线终端进行版本升级时,通常会采用fota技术进行版本升级。图1为现有技术中采用fota技术进行版本升级的系统架构图,图2为现有技术中采用fota技术进行版本升级的过程场景图,如图1-2所示,现有技术中采用fota技术进行版本升级的过程大致如下:

假设终端1、终端2、终端3至终端n均需进行版本升级,则首先需要分别制作并上传每个终端的版本(版本100b01p01、版本100b01p02、版本100b01p03至版本100b01p0n)与待升级的版本100b02的差分包到服务器,然后终端1、终端2、终端3至终端n再从服务器下载对应的差分包,进行版本升级。

在上述过程中,对于终端的每个版本与预升级的版本的差异都需要单独制作差分包,差分包的数量取决于终端对外发布的正式版本和补丁版本的数量。

假设终端对外发布的版本有n个,若要升级到最新的版本,则需要制作n个差分包。并且若在升级的过程中,终端的每个版本并不直接升级到最新版本,而是从第一个版本开始,按照版本顺序依次进行升级直到升级到最新版本,则需要制作n-1阶乘个差分包。

因此采用现有的fota技术进行版本升级,会产生出数量众多的差分包,而数量众多的差分包管理起来十分困难,极易出错,给版本升级过程带来不便,并且在升级过程中,数量众多的差分包还会占用巨大的内存开销。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种无线终端版本升级系统及方法,在版本升级的过程中,能够避免管理数量众多的差分包,并且还能够降低升级时内存占用的空间开销。

为实现上述目的,本发明提供的无线终端版本升级系统,包括:版本升级服务器和无线终端,其中,

所述版本升级服务器,其将终端版本文件进行分割、校验,生成终端版本校验值文件,将终端版本校验值文件保存到所述无线终端;将用户上传的新版本文件进行分割、校验,生成新版本校验值文件;将新版本校验值文件与终端版本校验值文件进行差异比较,动态生成升级包;

所述无线终端,其将终端版本校验值文件上传到所述版本升级服务器,并从所述版本升级服务器下载升级包进行版本升级。

进一步地,所述版本升级服务器,其根据设定的块长,将终端版本文件分割成一组不重叠的、长度固定的多个数据块,并对每个数据块进行md4强校验,生成终端版本校验值文件保存到所述无线终端。

进一步地,所述版本升级服务器,其对分割后的终端版本文件的最后一个数据块,补入字节0或1进行占位,使最后一个数据块的长度与设定的块长相同。

进一步地,所述版本升级服务器,其将新版本校验值文件的校验值从0开始按照固定长度与终端版本校验值文件的校验值比较,校验值相同则跳过固定长度,采用新版本校验值文件的下一个校验值继续比较;校验值不相同则将新版本校验值文件的校验值偏移1个字节和终端版本校验值文件的校验值重新比较,将所有不相同的校验值对应的数据块记作差异点,生成升级包。

更进一步地,所述无线终端,其从所述版本升级服务器下载并存储新版本校验值文件,替换掉已有的终端版本校验值文件,作为下次版本升级的终端版本校验值文件。

为实现上述目的,本发明提供的无线终端版本升级方法,包括以下步骤:

1)对终端版本文件进行分割、校验,生成终端版本校验值文件并保存到无线终端;

2)检测到有版本升级请求时,将终端版本校验值文件上传到版本升级服务器;

3)对新版本文件进行分割、校验,生成新版本校验值文件;

4)对新版本校验值文件与终端版本校验值文件进行比较,生成升级包发送给所述无线终端进行版本升级;

5)将新版本校验值文件保存到无线终端,替换掉原始存储在无线终端中的终端版本校验值文件,作为下次版本升级时的终端版本校验值文件使用;

6)重复执行上述步骤2)至步骤5),对所述无线终端进行再次版本升级。

进一步地,所述对终端版本文件进行分割、校验,生成终端校验值文件的步骤,进一步包括:

根据设定的块长,将终端版本文件分割成一组不重叠的、块长固定的多个数据块;

对每个数据块进行md4强校验,生成终端版本校验值文件。

进一步地,对于终端版本文件分割后的最后一个数据块,补入字节0或1进行占位,使其长度与设定的块长相同。

进一步地,所述对新版本校验值文件与终端版本校验值文件进行比较,生成升级包发送给无线终端进行版本升级的步骤,进一步包括:

无线终端在检测的升级请求时,根据版本升级服务器的请求,将终端版本校验值文件发送给版本升级服务器;

版本升级服务器根据设定的块长,将用户上传的新版本文件分割成一组不重叠的、块长固定的多个数据块,并对每个数据块进行md4强校验,生成新版本校验值文件;

将新版本校验值文件与终端校验值文件进行比较,动态生成升级包;

将升级包发送给无线终端进行版本升级。

更进一步地,所述将新版本校验值文件与终端校验值文件进行比较,动态生成升级包的步骤,进一步包括:

将新版本校验值文件的校验值从0开始按照固定长度与终端版本校验值文件的校验值比较;

校验值相同则跳过固定长度,采用新版本校验值文件的下一个校验值继续比较;

校验值不相同则将新版本校验值文件的校验值偏移1个字节和终端版本校验值文件的校验值重新比较;

将所有不相同的校验值对应的数据块记作差异点,生成升级包。

本发明的无线终端版本升级系统及方法,通过新版本校验值文件与现有的终端版本校验值文件的比对,生成差异版本文件(升级包),从而在对现有版本文件进行升级的过程中,不再依赖数量众多的差分包,进而避免管理数量众多的差分包带来的麻烦,并且还能够降低升级时内存占用的空间开销。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为现有技术中采用fota技术进行版本升级的系统架构图;

图2为现有技术中采用fota技术进行版本升级的过程场景图;

图3为根据本发明的无线终端版本升级系统架构图;

图4为根据本发明的无线终端版本升级过程场景图;

图5为根据本发明的无线终端版本升级方法流程图;

图6为根据本发明的新版本校验值文件与终端版本校验值文件比较的过程示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图3为根据本发明的无线终端版本升级系统架构图,图4为根据本发明的无线终端版本升级过程场景图,如图3-4所示,本发明的无线终端版本升级的系统,包括:版本升级服务器10,以及多个无线终端20,其中,

版本升级服务器10,其将终端版本文件,根据设定的块长(字节数),分割成一组不重叠的、多个长度固定的数据块;对分割得到的每个数据块进行校验,并生成终端版本校验值文件(bin文件),将分割后的终端版本文件与终端版本校验值文件保存到无线终端20;将用户上传的新版本文件,根据设定的块长(字节数),分割成一组不重叠的、多个长度固定的数据块;对分割得到的每个数据块进行校验,并生成新版本校验值文件(bin文件);将新版本校验值文件与终端版本校验值文件相比较,动态生成升级包并发送给无线终端10进行版本升级,同时将新版本校验值文件发送给无线终端10;版本升级服务器10,其将生成的升级包保存后,供其它相同版本的无线终端20进行版本升级使用。

本发明的版本升级服务器10,在对终端版本文件或用户上传的新版本文件进行分割时,最后一个数据块的长度会比设定的块长小,本发明的版本升级服务器10在最后一个数据块中补入字节0或字节1进行占位,使最后一个数据块的长度与设定的块长相同。对每个数据块的校验算法采用md4强校验算法,生成终端版本校验值文件或新版本校验值文件。

无线终端20,其将版本升级服务器10分割后的终端版本文件与终端版本校验值文件保存到flash中;无线终端20在检测到升级请求时,根据版本升级服务器10的请求将终端版本校验值文件发送给版本升级服务器10,并接收版本升级服务器10发送的升级包进行版本升级,同时还接收版本升级服务器10发送来的新版本校验值文件保存到flash中,替换掉flash中已有的终端版本校验值文件,作为下次版本升级的终端版本校验值文件。

本发明版本升级服务器10在进行新版本校验值文件与终端版本校验值文件比较、动态生成升级包过程中,采用定长分块策略检测两个版本校验值文件的差异和重复数据。首先,将a版本文件按固定块大小切分,计算校验值,然后,在b版本文件中遍历,计算所有相同块大小的校验值,相同即一致,不同即差异。例如:

假设版本文件size=100m,分块size=1kb,

a版本文件切分,计算[0]~[1023],[1024]~[2047],[2048]~[3071]...的校验值,输出一张a表。b版本文件遍历,计算[0]~[1023],[1]~[1024],[2]~[1025],...的校验值,在a表中遍历比对,相同即重复,不同即差异。不足1kb的数据,rsync补齐0再计算校验值,与b版本文件遍历计算比对。rsync不计算,直接将之存入a表末尾,当作差异。

在上述实施例中,版本升级服务器10通过比较新版本校验值文件与终端版本校验值文件的差异,生成升级包,可以避免制作不同版本之间的差分包,使升级过程不再依赖差分包,从而减少频繁地制作和管理数量众多的差分包。

优选地,本发明的无线终端版本升级系统,存储升级包,并记录升级包对应的无线终端版本文件的版本号,为其他含有相同版本号的无线终端提供版本升级服务,无需再次制作相同的升级包。

图5为根据本发明的无线终端版本升级方法流程图,下面将参考图5,对本发明的无线终端版本升级方法进行详细描述。

首先,在步骤501,将无线终端的终端版本文件,根据设定的数据块长度(字节数),分割成一组不重叠的、多个长度固定的数据块;

该步骤中,版本升级服务器10将终端版本文件分割成一组不重叠的、块长固定的n个数据块,前n-1个数据块的字节数相同均为s字节,且不小于第n个数据块的字节数,若第n个数据块的字节数小于s,则补入字节0(也可是字节1)进行占位,使第n个数据块的字节数等于s。

在步骤502,对分割得到的n个数据块进行md4强校验,生成终端版本校验值文件(bin文件)。

在步骤503,将终端版本校验值文件存储到无线终端20的flash上;无线终端20的flash存储的终端版本校验值文件,对应的是无线终端当前安装的版本。

在步骤504,无线终端20检测是否有升级请求,当检测到有升级请求时,根据版本升级服务器10的请求将终端版本校验值文件发给版本升级服务器10。

在步骤505,版本升级服务器10将用户上传的新版本文件,采用与步骤501相同的方法进行分割、md4强校验,生成新版本校验值文件。

在步骤506,将新版本校验值文件与终端版本校验值文件进行比较,相同:偏移加s,不相同:偏移加1;通过遍历得到哪些块和终端版本中相同,哪些块和终端版本中不同,动态生成升级包;

该步骤中,版本升级服务器10依次取出新版本校验值文件中的校验值将新版本校验值文件的校验值从0开始按照固定长度与终端版本校验值文件中的校验值进行遍历比对,校验值相同则跳过固定长度,采用新版本校验值文件的下一个校验值继续比较,校验值不相同则服务器的新版本校验值文件的校验值偏移1个字节和当前的终端的版本校验值文件的校验值重新比较,所有不相同的校验值对应的数据块记作差异点,动态生成升级包。

在步骤507,版本升级服务器10将升级包发送给无线终端20进行版本升级,同时将新版本校验值文件保存到无线终端20的flash上,替换掉flash中已有的终端版本校验值文件,作为下次版本升级的终端版本校验值文件。

在步骤508,版本升级服务器10保存动态生成的升级包,供后续其它相同版本的无线终端20进行版本升级使用。

在步骤509,重复执行上述步骤504-步骤508,对无线终端版本进行再次升级。

图6为根据本发明的新版本校验值文件与终端版本校验值文件比较的过程示意图,如图6所示,无线终端的终端版本文件,按照固定长度切割成n块后,生成终端版本校验值文件;版本升级服务器的新版本文件按照固定长度生成新版本校验值文件,将新版本校验值文件的校验值从0开始按照固定长度和终端版本校验值文件的校验值比较,校验值相同则跳过固定长度,采用新版本校验值文件的下一个校验值继续比较,校验值不相同则服务器的新版本校验值文件的校验值偏移1个字节和终端版本校验值文件的校验值重新比较,所有不相同的校验值对应的数据块记作差异点,用于生成差异版本文件(升级包)。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1