一种OTA升级包的配置方法及装置与流程

文档序号:12161652阅读:183来源:国知局
一种OTA升级包的配置方法及装置与流程

本发明涉及移动通信技术领域,尤其涉及一种OTA升级包的配置方法及装置。



背景技术:

空中下载(英文:Over the Air,简称:OTA)技术是一种通过无线网络进行数据下载的技术,其通常被应用于手机、平板电脑等终端设备的系统软件固定版本的升级过程中。目前的升级方法中主要采用的是单包升级策略,具体为,终端设备发起一次软件版本检测,服务器向该终端设备返回一个下载路径,以便终端设备根据该下载路径获得一个OTA升级包,进而根据该OTA升级包进行版本升级。并且,为了节省服务器的存储资源和终端设备下载OTA升级包的时间,且降低开发成本,所述的OTA升级包通常为相邻两个版本之间的差分文件。这样,当采用单包升级策略进行系统软件升级,且终端设备安装的软件的当前版本为Vm,服务器上发布的该软件的最新版本为Vn(其中,m、n均为正整数,且n-m≥2)时,会由于终端设备发起一次软件版本检测,仅可以获得一个基于当前版本的差分文件,导致终端设备需要发起多次软件版本检测才能将软件从当前版本升级到最新版本。

为了能够减少终端设备发起新版本检测的次数,现有技术提出了一种OTA多包连续升级的技术,具体方案是,终端设备发起一次软件版本检测,服务器可以根据软件在终端设备的当前版本以及在本地的最新版本,获取由当前版本升级到最新版本所需的所有差分文件,并标注各个差分文件的升级顺序和保存路径,然后将各个差分文件同时返回给终端设备,以便终端设备根据各个差分文件的升级顺序和保存路径获得多个差分文件,进而根据多个差分文件将软件从当前版本升级到最新版本。

而在实际应用过程中,出于升级风险控制的目的,某些OTA升级包可能具有特殊性。例如,某软件发布的所有版本分别为V1、V2、V3、V4,且,服务器中配置的OTA升级包分别为差分文件V2-V1、完整包V3、差分文件V4-V3,但是,差分文件V4-V3是针对北京用户的升级包,即仅有北京用户能够从V3升级到V4。在这种情况下,若服务器 需要配置更高的版本V5,且该版本V5是针对所有用户的,那么,为了能够让所有用户(包括北京用户和非北京用户)升级到最高版本,现有的做法是在服务器中配置两种升级文件,如这两种升级文件分别为差分文件V5-V4以及差分文件V5-V3。基于以上,假设,某终端设备发起了软件版本检测,且其安装的该软件的当前版本为V1,此时在采用上述OTA多包连续升级的技术时,服务器会获得两个升级文件链(升级文件链包括由当前版本升级到最新版本所需的所有升级文件),分别为:升级文件链1:差分文件V2-V1、完整包V3、差分文件V4-V3以及差分文件V5-V4,升级文件链2:差分文件V2-V1、完整包V3以及差分文件V5-V3,这样服务器便无法获知向终端设备返回哪个升级文件链,从而导致无法成功升级。



技术实现要素:

本发明提供一种OTA升级包的配置方法及装置,解决了由于服务器获得的由当前版本升级到最新版本所需升级文件链不唯一,导致的终端设备无法将软件从当前版本成功升级最新版本的问题。

为达到上述目的,本发明采用如下技术方案:

本发明的第一方面,提供一种OTA升级包的配置方法,应用于服务器,所述服务器配置有至少一个OTA升级包,所述方法包括:

检测第一OTA升级包是否为特殊升级包;其中,所述第一OTA升级包包括软件在所述服务器的当前最新版本与第一版本之间的差分文件,或者所述第一OTA升级包包括所述软件的所述当前最新版本的完整包,所述第一版本比所述当前最新版本的低一个版本;所述特殊升级包是指用于部分终端设备将所述软件升级到所述当前最新版本的OTA升级包;

当所述第一OTA升级包为所述特殊升级包时,判断所述第一OTA升级包保持所述特殊升级包的时长是否大于或等于预设阈值;

当所述第一OTA升级包保持所述特殊升级包的时长大于或等于所述预设阈值时,将所述第一OTA升级包配置为普通升级包,以便在所述软件需要升级到第二版本时,在所述服务器上配置第二OTA升级包;其中,所述普通升级包是指用于所有终端设备将所述软件升级到所述当前最新版本的OTA升级包;所述第二OTA升级包包括所述第二版本与所述当前最新版本之间的差分文件,或者所述第二OTA升级包包 括所述软件的所述第二版本的完整包,所述第二版本为需要配置的最新版本。

结合第一方面,在第一种可能的实现方式中,还包括:

当所述第一OTA升级包保持所述特殊升级包的时长小于所述预设阈值时,判断是否需要将所述软件升级到所述第二版本;

当需要将所述软件升级到所述第二版本时,将所述第一OTA升级包配置为所述普通升级包,以便在所述服务器上配置所述第二OTA升级包。

结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述将所述第一OTA升级包配置为普通升级包之后,还包括:

判断所述至少一个OTA升级包中是否包含自动升级包;其中,所述自动升级包是指在未接收到终端设备的版本检测请求时,需将所述软件进行升级的OTA升级包;

当所述至少一个OTA升级包中包含所述自动升级包时,将所述自动升级包和处于所述自动升级包之前的所有OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述自动升级包和处于所述自动升级包之前的所有OTA升级包。

结合第一方面或第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述将所述第一OTA升级包配置为普通升级包之后,还包括:

接收终端设备发送的版本检测请求;其中,所述版本检测请求包括所述软件在所述终端设备的当前版本的版本号;

当由所述当前版本升级到所述当前最新版本所需的OTA升级包的个数大于预设的最大链长时,根据所述当前版本的版本号,从所述至少一个OTA升级包中获取与所述最大链长相等个数的OTA升级包;其中,所述与所述最大链长相等个数的OTA升级包中的所有OTA升级包连续,且第一个OTA升级包包括所述当前版本与第三版本之间的差分文件,或者所述第一个OTA升级包包括所述软件的所述第三版本的完整包,所述第三版本比所述当前版本高一个版本;

将所述与所述最大链长相等个数的OTA升级包中每个OTA升级 包的下载路径发送至所述终端设备,以便所述终端设备下载所述每个OTA升级包。

结合第一方面或第一方面的第一种可能的实现方式,在第四种可能的实现方式中,在所述将所述第一OTA升级包配置为普通升级包之后,还包括:

接收终端设备发送的版本检测请求;其中,所述版本检测请求包括所述软件在所述终端设备的当前版本的版本号和所述终端设备的产品型号;

根据所述产品型号获取第三OTA升级包;其中,所述第三OTA升级包包括所述当前版本与第三版本之间的差分文件,或者所述第三OTA升级包包括所述软件的所述第三版本的完整包,所述第三版本比所述当前版本高一个版本;

根据所述第三OTA升级包的配置参数,确定所述终端设备支持多包连续升级;

获取OTA升级包集合,并将所述OTA升级包集合中所有OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述OTA升级包集合;其中,所述OTA升级包集合中包括由所述当前版本升级到所述当前最新版本所需的OTA升级包。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述获取OTA升级包集合,包括:

获取由所述当前版本到所述当前最新版本的所有OTA升级包,得到OTA升级包的第一集合;

判断所述第一集合包含的OTA升级包中是否存在包括所述软件的对应版本的完整包的OTA升级包;

当存在所述包括所述软件的对应版本的完整包的OTA升级包时,将处于所述包括所述软件的对应版本的完整包的OTA升级包之后的所有OTA升级包和包括所述软件的对应版本的完整包的OTA升级包组成所述OTA升级包集合。

本发明的第二方面,提供一种OTA升级包的配置装置,应用于服务器,所述服务器配置有至少一个OTA升级包,所述装置包括:

检测单元,用于检测第一OTA升级包是否为特殊升级包;其中, 所述第一OTA升级包包括软件在所述服务器的当前最新版本与第一版本之间的差分文件,或者所述第一OTA升级包包括所述软件的所述当前最新版本的完整包,所述第一版本比所述当前最新版本的低一个版本;所述特殊升级包是指用于部分终端设备将所述软件升级到所述当前最新版本的OTA升级包;

判断单元,用于当所述检测单元检测到所述第一OTA升级包为所述特殊升级包时,判断所述第一OTA升级包保持所述特殊升级包的时长是否大于或等于预设阈值;

配置单元,用于当所述判断单元判断得到所述第一OTA升级包保持所述特殊升级包的时长大于或等于所述预设阈值时,将所述第一OTA升级包配置为普通升级包,以便在所述软件需要升级到第二版本时,在所述服务器上配置第二OTA升级包;其中,所述普通升级包是指用于所有终端设备将所述软件升级到所述当前最新版本的OTA升级包;所述第二OTA升级包包括所述第二版本与所述当前最新版本之间的差分文件,或者所述第二OTA升级包包括所述软件的所述第二版本的完整包,所述第二版本为需要配置的最新版本。

结合第二方面,在第一种可能的实现方式中,

所述判断单元,还用于当所述第一OTA升级包保持所述特殊升级包的时长小于所述预设阈值时,判断是否需要将所述软件升级到所述第二版本;

所述配置单元,还用于当所述判断单元判断得到需要将所述软件升级到所述第二版本时,将所述第一OTA升级包配置为所述普通升级包,以便在所述服务器上配置所述第二OTA升级包。

结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,

所述判断单元,还用于在所述配置单元将所述第一OTA升级包配置为普通升级包之后,判断所述至少一个OTA升级包中是否包含自动升级包;其中,所述自动升级包是指在未接收到终端设备的版本检测请求时,需将所述软件进行升级的OTA升级包;

所述装置还包括:

发送单元,用于当所述判断单元判断得到所述至少一个OTA升级 包中包含所述自动升级包时,将所述自动升级包和处于所述自动升级包之前的所有OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述自动升级包和处于所述自动升级包之前的所有OTA升级包。

结合第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括:

接收单元,用于在所述配置单元将所述第一OTA升级包配置为普通升级包之后,接收终端设备发送的版本检测请求;其中,所述版本检测请求包括所述软件在所述终端设备的当前版本的版本号;

获取单元,用于当由所述当前版本升级到所述当前最新版本所需的OTA升级包的个数大于预设的最大链长时,根据所述当前版本的版本号,从所述至少一个OTA升级包中获取与所述最大链长相等个数的OTA升级包;其中,所述与所述最大链长相等个数的OTA升级包中的所有OTA升级包连续,且第一个OTA升级包包括所述当前版本与第三版本之间的差分文件,或者所述第一个OTA升级包包括所述软件的所述第三版本的完整包,所述第三版本比所述当前版本高一个版本;

发送单元,用于将所述获取单元获取到的所述与所述最大链长相等个数的OTA升级包中每个OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述每个OTA升级包。

结合第二方面或第二方面的第一种可能的实现方式,在第四种可能的实现方式中,还包括:

接收单元,用于在所述配置单元将所述第一OTA升级包配置为普通升级包之后,接收终端设备发送的版本检测请求;其中,所述版本检测请求包括所述软件在所述终端设备的当前版本的版本号和所述终端设备的产品型号;

获取单元,用于根据所述接收单元接收到的所述产品型号获取第三OTA升级包;其中,所述第三OTA升级包包括所述当前版本与第三版本之间的差分文件,或者所述第三OTA升级包包括所述软件的所述第三版本的完整包,所述第三版本比所述当前版本高一个版本;

确定单元,用于根据所述获取单元获取到的所述第三OTA升级包的配置参数,确定所述终端设备支持多包连续升级;

所述获取单元,还用于获取OTA升级包集合;其中,所述OTA升级包集合中包括由所述当前版本升级到所述当前最新版本所需的OTA升级包;

发送单元,用于将所述获取单元获取到的所述OTA升级包集合中所有OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述OTA升级包集合。

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述获取单元,具体用于:

获取由所述当前版本到所述当前最新版本的所有OTA升级包,得到OTA升级包的第一集合;

判断所述第一集合包含的OTA升级包中是否存在包括所述软件的对应版本的完整包的OTA升级包;

当存在所述包括所述软件的对应版本的完整包的OTA升级包时,将处于所述包括所述软件的对应版本的完整包的OTA升级包之后的所有OTA升级包和包括所述软件的对应版本的完整包的OTA升级包组成所述OTA升级包集合。

本发明提供的OTA升级包的配置方法及装置,服务器首先检测第一OTA升级包是否为仅能够用于部分终端设备将软件升级到当前最新版本的特殊升级包,并在检测到第一OTA升级包为特殊升级包时,继续判断该第一OTA升级包保持特殊升级包的时长是否大于或等于预设阈值,然后在确定第一OTA升级包保持特殊升级包的时长大于或等于预设阈值时,将该第一OTA升级包配置为能够用于所有终端设备将软件升级到当前最新版本的普通升级包。这样,相对于现有技术,服务器通过在第一OTA升级包为特殊升级包,且保持特殊升级包的时长大于或等于预设阈值时,将该第一OTA升级包配置为普通升级包,使得在软件需要配置高版本时,服务器无需配置与该需要配置的高版本对应的多种OTA升级包,进而避免了服务器在接收到终端设备的软件版本检测时,获取到的由软件在终端设备的当前版本升级到最新版本所需升级文件链不唯一的问题出现,从而确保了终端设备能够将软件从当前版本升级到最新版本,提高了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种OTA升级包的配置方法流程图;

图2为本发明一实施例提供的另一种OTA升级包的配置方法流程图;

图3为本发明一实施例提供的又一种OTA升级包的配置方法流程图;

图4为本发明一实施例提供的再一种OTA升级包的配置方法流程图;

图5为本发明另一实施例提供的一种OTA升级包的配置装置组成示意图;

图6为本发明另一实施例提供的另一种OTA升级包的配置装置组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明一实施例提供一种OTA升级包的配置方法,应用于服务器,该服务器配置有至少一个OTA升级包,如图1所示,该方法可以包括:

101、服务器检测第一OTA升级包是否为特殊升级包。

其中,第一OTA升级包包括软件在服务器的当前最新版本与第一版本之间的差分文件,或者第一OTA升级包包括软件的当前最新版本的完整包,第一版本比当前最新版本的低一个版本。所述的特殊升级包是指用于部分终端设备将软件升级到当前最新版本的OTA升级包。

具体的,出于升级风险控制的目的,在某些应用场景下,运行维护人员在服务器中配置OTA升级包时,会将某些OTA升级包配置为 用于部分终端设备将软件升级到最新版本的特殊升级包,例如,在按照区域进行升级的场景下,将某些OTA升级包配置为用于某一特定地区的终端设备将软件升级为当前最新的版本的升级包,这样,在终端设备发起软件版本检测时,仅有处于该特定地区的终端设备才可以检测到该OTA升级包,而未处于该特定地区的终端设备便检测不到。但是,为了避免在软件需要配置高版本时,服务器配置多种与该需要配置的高版本对应的OTA升级包,而导致的由软件在终端设备的当前版本升级到最新版本所需升级文件链不唯一的情况出现,服务器需要检测包括软件在服务器的当前最新版本与第一版本之间的差分文件,或者包括软件的当前最新版本的完整包的第一OTA升级包(即服务器检测自身配置的至少一个OTA升级包中的最后一个OTA升级包)是否为特殊升级包。

102、当第一OTA升级包为特殊升级包时,服务器判断第一OTA升级包保持特殊升级包的时长是否大于或等于预设阈值。

其中,当服务器检测到第一OTA升级包为特殊升级包时,可以继续判断该第一OTA升级包保持特殊升级包的时长是否大于或等于预设阈值。示例性的,该预设阈值可以是预先设定并配置在该第一OTA升级包中的一个时效性属性。

需要说明的是,本发明实施例中所述的预设阈值可以根据实际应用场景的需求进行设置,本发明实施例在此对预设阈值的具体取值不做具体限制。

103、当第一OTA升级包保持特殊升级包的时长大于或等于预设阈值时,服务器将第一OTA升级包配置为普通升级包,以便在软件需要升级到第二版本时,在服务器上配置第二OTA升级包。

其中,普通升级包是指用于所有终端设备将软件升级到当前最新版本的OTA升级包。第二OTA升级包包括第二版本与当前最新版本之间的差分文件,或者第二OTA升级包包括软件的第二版本的完整包,第二版本为需要配置的最新版本。

具体的,为了能够在软件需要升级到第二版本时,无需在服务器上配置多种与该第二版本对应的OTA升级包,当服务器确定第一OTA升级包保持特殊升级包的时长大于或等于预设阈值时,便可以将该第一OTA升级包配置为能够用于所有终端设备将软件升级到当前最新版 本的普通升级包,这样,在软件需要升级到第二版本时,运行维护人员便只需在服务器上配置一种与该第二版本对应的OTA升级包,即,在服务器上配置一个第二OTA升级包即可。

示例性的,假设某软件发布的所有版本分别为:V1、V2、V3、V4、V5。相应的,服务器上配置的OTA升级包分别为差分文件V2-V1、差分文件V3-V2、差分文件V4-V3、差分文件V5-V4,且差分文件V5-V4是只针对青岛用户的特殊升级包,也就是说,仅有青岛用户对应的终端设备在发起软件版本检测时,才能检测到当前最新版本V5,对于非青岛用户对应的终端设备,只能检测到版本V4。此时服务器可以检测到差分文件V5-V4为特殊升级包,并继续判断该差分文件V5-V4保持特殊升级包的时长是否大于或等于预设阈值(假设,该差分文件V5-V4中包含时效性属性,该时效性属性对应的值为1天,即预设阈值为1天),假设该差分文件V5-V4保持特殊升级包的时长为1天零1小时,那么,此时服务器可以确定差分文件V5-V4保持特殊升级包的时长已大于预设阈值,这样,服务器便可以将差分文件V5-V4配置为普通升级包,进而,当软件需要升级到V6时,运行维护人员便可以直接在服务器上配置一种与V6对应的OTA升级包,如配置差分文件V6-V5。

在本发明实施例中,进一步的,该OTA升级包的配置方法还可以包括:当第一OTA升级包保持特殊升级包的时长小于预设阈值时,服务器判断是否需要将软件升级到第二版本。

当需要将软件升级到第二版本时,服务器将第一OTA升级包配置为普通升级包,以便在服务器上配置第二OTA升级包。

其中,为了在仅需配置一种与该第二版本对应的OTA升级包的情况下,确保所有终端设备可以检测到最高版本,当服务器确定第一OTA升级包保持特殊升级包的时长小于预设阈值时,服务器可以继续判断是否有配置高版本的需求,即判断是否需要将软件升级到第二版本(即需要配置的最新版本),并在确定需要将软件升级到第二版本时,服务器便可以将第一OTA升级包配置为普通升级包,以便于运行维护人员只需在服务器上配置一种与该第二版本对应的OTA升级包,即,在服务器上配置一个第二OTA升级包即可。

在第一种可能的应用场景中,当软件出现某些漏洞时,需要在用户不知情的情况下对软件进行自动升级,因此,在本发明实施例中, 进一步的,如图2所示,在步骤103之后,该OTA升级包的配置方法还可以包括以下步骤104-步骤105:

104、服务器判断至少一个OTA升级包中是否包含自动升级包。

其中,所述的自动升级包是指在未接收到终端设备的版本检测请求时,需将软件进行升级的OTA升级包。

105、当至少一个OTA升级包中包含自动升级包时,服务器将自动升级包和处于自动升级包之前的所有OTA升级包的下载路径发送至终端设备,以便终端设备下载自动升级包和处于自动升级包之前的所有OTA升级包。

其中,对于需自动升级的场景,服务器可以判断自身配置的至少一个OTA升级包中是否包含在未接收到终端设备的版本检测请求时,需将软件进行升级的OTA升级包,即判断至少一个OTA升级包中是否包含自动升级包,并在确定至少一个OTA升级包中包含自动升级包时,将该自动升级包之前的所有OTA升级包也变为“自动升级包”,对于该自动升级包之后的OTA升级包可以不强制终端设备进行升级。

示例性的,假设服务器上配置某软件的OTA升级包分别为差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4,并假设差分文件V4-V3为是为了修复某些漏洞而配置的自动升级包,那么服务器在检测到差分文件V4-V3为自动升级包之后,将差分文件V2-V1、完整包V3以及差分文件V4-V3的下载路径发送至终端设备,以便终端设备可以根据差分文件V2-V1、完整包V3以及差分文件V4-V3的下载路径下载差分文件V2-V1、完整包V3以及差分文件V4-V3,进而完成自动升级。

并且,当至少一个OTA升级包中包含多个自动升级包时,服务器可以将多个自动升级包中距离当前最新版本最近的自动升级包和该自动升级包之前的所有OTA升级包的下载路径发送至终端设备,以便终端设备下载多个自动升级包中距离当前最新版本最近的自动升级包和处于该自动升级包之前的所有OTA升级包。

在第二种可能的应用场景中,在多包连续升级的机制下,对于终端设备上安装的软件的当前版本较低,而服务器上发布的最新版本较高的情况,客户端检测到的OTA升级包的个数可能会非常多,这样,若终端设备的存储空间不足和/或电量不足时,终端设备会出现升级失 败的情况,因此,为了能够避免这种情况的出现,在本发明实施例中,进一步的,如图3所示,在步骤103之后,该OTA升级包的配置方法还可以包括以下步骤106-步骤108:

106、服务器接收终端设备发送的版本检测请求。

其中,所述的版本检测请求包括软件在终端设备的当前版本的版本号。

107、当由当前版本升级到当前最新版本所需的OTA升级包的个数大于预设的最大链长时,服务器根据当前版本的版本号,从至少一个OTA升级包中获取与最大链长相等个数的OTA升级包。

其中,所述的与最大链长相等个数的OTA升级包中的所有OTA升级包连续,且第一个OTA升级包包括当前版本与第三版本之间的差分文件,或者第一个OTA升级包包括软件的第三版本的完整包,第三版本比当前版本高一个版本。

具体的,当服务器接收到终端设备发送的包括软件在终端设备的当前版本的版本号的版本检测请求之后,服务器可以先根据软件在终端设备的当前版本的版本号和本地的当前最新版本的版本号,确定由当前版本升级到最新版本所需的OTA升级包的个数是否大于预设的最大链长,并在确定由当前版本升级到最新版本所需的OTA升级包的个数大于最大链长时,服务器可以根据当前版本的版本号,从当前版本开始,从至少一个OTA升级包中获取OTA升级包,直到获取到的OTA升级包的个数与最大链长相等。

需要说明的是,在本发明实施例中,所述的最大链长可以根据实际应用场景的需求进行设置,本发明实施例在此对最大链长的具体取值并不做具体限制。

108、服务器将与最大链长相等个数的OTA升级包中每个OTA升级包的下载路径发送至终端设备,以便终端设备下载每个OTA升级包。

其中,在服务器从至少一个OTA升级包中获取到与最大链长相等个数的OTA升级包之后,便可以将与最大链长相等个数的OTA升级包中的每个OTA升级包的下载路径发送至终端设备,这样,终端设备可以根据接收到的下载路径,下载与最大链长相等个数的OTA升级包中每个OTA升级包。进一步的,在终端设备下载到与最大链长相等个数的OTA升级包中每个OTA升级包,并完成此次升级之后,终端设 备可以继续向服务器发送版本检测请求,进一步的获取OTA升级包,直到将软件升级到服务器上配置的当前最新版本为止。

示例性的,假设服务器上配置的OTA升级包的总个数为20个,即由最低版本升级到最高版本所需的OTA升级包的个数为20个,某个终端设备安装的该软件的当前版本为最低版本,且预设的最大链长为6,那么当该终端设备向服务器发起版本检测请求之后,服务器根据软件在该终端设备的当前版本和服务器上配置的当前最新版本,确定的由当前版本升级到当前最新版本所需的OTA升级包的个数为20,且大于预设的最大链长6,那么服务器此时便可以将OTA升级包中的前6个OTA升级包的下载路径返回给终端设备,以便终端设备先根据该6个OTA升级包的下载路径进行升级,并可以继续向服务器发送版本检测请求,知道升级到最高版本为止。

在第三种可能的应用场景中,为了能够兼容现有技术中的单包升级策略,可以将终端设备分为支持多包连续升级的终端设备和支持单包升级的终端设备,那么,在本发明实施例中,进一步的,如图4所示,在步骤103之后,该OTA升级包的配置方法还可以包括以下步骤109-步骤112:

109、服务器接收终端设备发送的版本检测请求。

其中,所述的版本检测请求包括软件在终端设备的当前版本的版本号和终端设备的产品型号。

110、服务器根据产品型号获取第三OTA升级包。

其中,第三OTA升级包包括当前版本与第三版本之间的差分文件,或者第三OTA升级包包括软件的第三版本的完整包,第三版本比当前版本高一个版本。

具体的,当服务器接收到终端设备发送的版本检测请求时,可以根据该版本检测请求中包含的终端设备的产品型号,获取包括当前版本与比当前版本高一个版本的第三版本之间的差分文件,或者包括软件的比当前版本高一个版本的第三版本的完整包的第三OTA升级包。

111、服务器根据第三OTA升级包的配置参数,确定终端设备支持多包连续升级。

其中,服务器在获取到第三OTA升级包之后,可以根据该第三 OTA升级包中的配置参数,确定该终端设备是支持多包连续升级的终端设备,还是支持单包升级的终端设备,并在确定终端设备支持多包连续升级,即确定终端设备是支持多包连续升级的终端设备时,执行以下步骤112。若服务器确定终端设备支持单包升级,即确定终端设备是支持单包升级的终端设备时,可以直接将第三OTA升级包的下载路径返回给终端设备,以便终端设备根据将第三OTA升级包的下载路径下载第三OTA升级包,并进行升级。

示例性的,可以预先在终端设备对应的OTA升级包中配置不同的升级模式(该升级模式即为配置参数),升级模式可以包括单包升级和多包连续升级,并且对于一个OTA升级包,仅能够支持一种升级模式,即,对于终端设备为支持多包连续升级的终端设备,其对应的OTA升级包中均包含具体值为多包连续升级的配置参数,而对于终端设备为支持单包升级的终端设备,其对应的OTA升级包中均包含具体值为单包升级的配置参数,以便服务器判断该终端设备是支持多包连续升级的终端设备,还是支持单包升级的终端设备。

112、服务器获取OTA升级包集合,并将OTA升级包集合中所有OTA升级包的下载路径发送至终端设备,以便终端设备下载OTA升级包集合。

其中,OTA升级包集合中包括由当前版本升级到当前最新版本所需的OTA升级包。在服务器确定终端设备支持多包连续升级时,便可以继续获取OTA升级包,以获得包括由当前版本升级到当前最新版本所需的OTA升级包的OTA升级包集合,并在获取到OTA升级包集合之后,将该OTA升级包集合中所有OTA升级包的下载路径发送至终端设备,以便终端设备下载OTA升级包集合,进而将软件从当前版本升级到当前最新版本。

在本发明实施例中,为了能够在确保成功升级的前提下,减少发送至终端设备的OTA升级包的个数,步骤112中所述的获取OTA升级包集合具体的可以包括:

服务器获取由当前版本到当前最新版本的所有OTA升级包,得到OTA升级包的第一集合,并判断第一集合包含的OTA升级包中是否存在包括软件的对应版本的完整包的OTA升级包;当存在包括软件的对应版本的完整包的OTA升级包时,将处于包括软件的对应版本的完整 包的OTA升级包之后的所有OTA升级包和包括软件的对应版本的完整包的OTA升级包组成所述OTA升级包集合。

并且,针对第一集合中包含有多个包括软件的对应版本的完整包的OTA升级包的情况,可以将这多个包括软件的对应版本的完整包的OTA升级包中距离当前最新版本最近的OTA升级包之后的所有OTA升级包和该距离当前最新版本最近的OTA升级包组成所述OTA升级包集合。例如,OTA升级包分别为差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4、完整包V6、差分文件V7-V6、差分文件V8-V7,那么最终确定的第一集合为完整包V6、差分文件V7-V6、差分文件V8-V7。

示例性的,假设服务器上配置某软件的OTA升级包分别为差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4,且服务器接收到的终端设备发送的版本检测请求中包括的软件在终端设备的当前版本的版本号为V1,那么服务器可以先获取由当前版本V1到当前最新版本V5的所有OTA升级包,得到OTA升级包的第一集合,该第一集合包括差分文件V2-V1、完整包V3、差分文件V4-V3、差分文件V5-V4,然后,判断该第一集合中是否存在包括软件的对应版本的完整包的OTA升级包,即软件的某个版本的全包,可以确定第一集合中存在包括软件的对应版本的完整包的OTA升级包,即完整包V3,那么服务器便可以仅将完整包V3、差分文件V4-V3、差分文件V5-V4的下载路径发送至终端设备即可。

并且,在一种可能的应用场景中,为了避免采用差分文件升级出现升级失败的情况发生,某些情况下,除了在服务器中配置差分文件之外,还可能在服务器中配置软件对应的某些版本的完整包,此时,在该版本既配置了完整包又配置了差分文件的情况下,优先向终端设备返回包含该版本的差分文件的升级文件链。

为了便于本领域技术人员的理解,针对上述所有可能的存在的应用场景,对本发明实施例在此对本发明的具体实现过程进行举例说明。

例如,服务器上发布的某软件的所有版本为A、B、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q,且服务器上配置的OTA升级包分别为:差分文件A-B、完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H、完整包H、差分文件 H-I、完整包J、差分文件J-K、差分文件K-L、差分文件L-M、差分文件M-N、差分文件N-O、差分文件O-P、差分文件P-Q,该软件在终端设备的当前版本为A,预设的最大链长为7,其中,差分文件P-Q为只针对上海用户的特殊升级包。

服务器先检测差分文件P-Q是否为特殊升级包,然后,在确定差分文件P-Q为特殊升级包之后,判断差分文件P-Q保持特殊升级包的时长是否大于或等于预设阈值,假设,差分文件P-Q保持特殊升级包的时长大于预设阈值,那么服务器便可以将该差分文件P-Q配置为普通升级包,以便于所有的终端设备可以升级到最高版本Q。

进一步的,服务器可以检测所有的OTA升级包中是否存在自动升级包,假设所有的OTA升级包中不存在自动升级包,那么此时服务器不做任何处理,假设OTA升级包中的差分文件F-G为自动升级包,那么此时,服务器可以将差分文件A-B、完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G的下载路径发送至终端设备,以便终端设备将软件升级到版本G。当然,服务器还可以进一步的确定需返回的OTA升级包中包含完整包C,此时可以舍弃完整包之前的OTA升级包,也就是说,服务器最终可以向终端设备返回完整包C、差分文件C-D、差分文件D-E、差分文件E-F以及差分文件F-G的下载路径即可。

进一步的,服务器接收终端设备发送的版本检测请求,并包含软件在终端设备的当前版本的版本号A,此时服务器可以先获取差分文件A-B,并根据该差分文件A-B的配置参数判断该终端设备是否支持多包连续升级。若确定该终端设备支持多包连续升级,再判断由当前版本A升级到最高版本Q所需的OTA升级包的个数是否大于最大链长7,可以确定出由当前版本A升级到最高版本Q所需的OTA升级包的个数17大于最大链长7,那么服务器可以获取7个OTA升级包,且这7个OTA升级包连续,第一个OTA升级包必须为差分文件A-B。这样,获得的7个OTA升级包分别为差分文件A-B、完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H。另外,服务器还检测到服务器中配置了完整包H,由于差分文件的大小小于完整包,因此,为了减少终端设备下载升级包的时长并节省终端设备的电量,可以优先选择返回差分文件A-B、完整包C、差分文件 C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H。然后服务器还确定出7个OTA升级包中存在完整包C,此时可以舍弃完整包之前的OTA升级包,也就是说,最终确定的向终端设备返回的OTA升级包包括:完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H。这样服务器便可以将完整包C、差分文件C-D、差分文件D-E、差分文件E-F、差分文件F-G、差分文件G-H的下载路径发送至终端设备,以便终端设备下载OTA升级包并完成此次升级。进一步的,终端设备还可以再次发起版本检测请求,并由服务器重复上述过程,以便最终将软件升级到最高版本Q。

本发明提供的OTA升级包的配置方法,服务器首先检测第一OTA升级包是否为仅能够用于部分终端设备将软件升级到当前最新版本的特殊升级包,并在检测到第一OTA升级包为特殊升级包时,继续判断该第一OTA升级包保持特殊升级包的时长是否大于或等于预设阈值,然后在确定第一OTA升级包保持特殊升级包的时长大于或等于预设阈值时,将该第一OTA升级包配置为能够用于所有终端设备将软件升级到当前最新版本的普通升级包。这样,相对于现有技术,服务器通过在第一OTA升级包为特殊升级包,且保持特殊升级包的时长大于或等于预设阈值时,将该第一OTA升级包配置为普通升级包,使得在软件需要配置高版本时,服务器无需配置多种与该需要配置的高版本对应的OTA升级包,进而避免了服务器在接收到终端设备的软件版本检测时,获取到的由软件在终端设备的当前版本升级到最新版本所需升级文件链不唯一的问题出现,从而确保了终端设备能够将软件从当前版本升级到最新版本,提高了用户体验。

并且,通过设置最大链长,使得在终端设备的当前版本较低时,可以先从服务器获取部分OTA升级包,避免了一次性获取所有OTA升级包可能导致的升级失败的情况发生,从而减小了升级失败的风险,进一步提高了用户体验。通过在OTA升级包中配置升级方式,使得可以对支持多包连续升级的终端设备返回多个OTA升级包,实现了和现有单包升级策略的兼容。

本发明另一实施例提供一种OTA升级包的配置装置,应用于服务器,所述服务器配置有至少一个OTA升级包,如图5所示,该OTA升级包的配置装置可以包括:检测单元21、判断单元22、配置单元23。

检测单元21,用于检测第一OTA升级包是否为特殊升级包;其中,所述第一OTA升级包包括软件在所述服务器的当前最新版本与第一版本之间的差分文件,或者所述第一OTA升级包包括所述软件的所述当前最新版本的完整包,所述第一版本比所述当前最新版本的低一个版本;所述特殊升级包是指用于部分终端设备将所述软件升级到所述当前最新版本的OTA升级包。

判断单元22,用于当所述检测单元21检测到所述第一OTA升级包为所述特殊升级包时,判断所述第一OTA升级包保持所述特殊升级包的时长是否大于或等于预设阈值。

配置单元23,用于当所述判断单元22判断得到所述第一OTA升级包保持所述特殊升级包的时长大于或等于所述预设阈值时,将所述第一OTA升级包配置为普通升级包,以便在所述软件需要升级到第二版本时,在所述服务器上配置第二OTA升级包;其中,所述普通升级包是指用于所有终端设备将所述软件升级到所述当前最新版本的OTA升级包;所述第二OTA升级包包括所述第二版本与所述当前最新版本之间的差分文件,或者所述第二OTA升级包包括所述软件的所述第二版本的完整包,所述第二版本为需要配置的最新版本。

在本发明实施例中,进一步的,所述判断单元22,还用于当所述第一OTA升级包保持所述特殊升级包的时长小于所述预设阈值时,判断是否需要将所述软件升级到所述第二版本。

所述配置单元23,还用于当所述判断单元22判断得到需要将所述软件升级到所述第二版本时,将所述第一OTA升级包配置为所述普通升级包,以便在所述服务器上配置所述第二OTA升级包。

在本发明实施例中,进一步的,所述判断单元22,还用于在所述配置单元23将所述第一OTA升级包配置为普通升级包之后,判断所述至少一个OTA升级包中是否包含自动升级包;其中,所述自动升级包是指在未接收到终端设备的版本检测请求时,需将所述软件进行升级的OTA升级包。

如图6所示,所述的装置还可以包括:发送单元24。

发送单元24,用于当所述判断单元22判断得到所述至少一个OTA升级包中包含所述自动升级包时,将所述自动升级包和处于所述自动升级包之前的所有OTA升级包的下载路径发送至所述终端设备,以便 所述终端设备下载所述自动升级包和处于所述自动升级包之前的所有OTA升级包。

在本发明实施例中,进一步的,该装置还可以包括:接收单元25、获取单元26。

接收单元25,用于在所述配置单元23将所述第一OTA升级包配置为普通升级包之后,接收终端设备发送的版本检测请求;其中,所述版本检测请求包括所述软件在所述终端设备的当前版本的版本号。

获取单元26,用于当由所述当前版本升级到所述当前最新版本所需的OTA升级包的个数大于预设的最大链长时,根据所述当前版本的版本号,从所述至少一个OTA升级包中获取与所述最大链长相等个数的OTA升级包;其中,所述与所述最大链长相等个数的OTA升级包中的所有OTA升级包连续,且第一个OTA升级包包括所述当前版本与第三版本之间的差分文件,或者所述第一个OTA升级包包括所述软件的所述第三版本的完整包,所述第三版本比所述当前版本高一个版本。

发送单元24,用于将所述获取单元26获取到的所述与所述最大链长相等个数的OTA升级包中每个OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述每个OTA升级包。

在本发明实施例中,进一步的,该装置还可以包括:确定单元27。

接收单元25,用于在所述配置单元23将所述第一OTA升级包配置为普通升级包之后,接收终端设备发送的版本检测请求;其中,所述版本检测请求包括所述软件在所述终端设备的当前版本的版本号和所述终端设备的产品型号。

获取单元26,用于根据所述接收单元25接收到的所述产品型号获取第三OTA升级包;其中,所述第三OTA升级包包括所述当前版本与第三版本之间的差分文件,或者所述第三OTA升级包包括所述软件的所述第三版本的完整包,所述第三版本比所述当前版本高一个版本。

确定单元27,用于根据所述获取单元26获取到的所述第三OTA升级包的配置参数,确定所述终端设备支持多包连续升级。

所述获取单元26,还用于获取OTA升级包集合;其中,所述OTA升级包集合中包括由所述当前版本升级到所述当前最新版本所需的 OTA升级包。

发送单元24,用于将所述获取单元26获取到的所述OTA升级包集合中所有OTA升级包的下载路径发送至所述终端设备,以便所述终端设备下载所述OTA升级包集合。

在本发明实施例中,进一步的,所述获取单元26,具体用于获取由所述当前版本到所述当前最新版本的所有OTA升级包,得到OTA升级包的第一集合;判断所述第一集合包含的OTA升级包中是否存在包括所述软件的对应版本的完整包的OTA升级包;当存在所述包括所述软件的对应版本的完整包的OTA升级包时,将处于所述包括所述软件的对应版本的完整包的OTA升级包之后的所有OTA升级包和包括所述软件的对应版本的完整包的OTA升级包组成所述OTA升级包集合。

需要说明的是,本发明实施例提供的OTA升级包的配置装置中各功能模块的具体工作过程可以参考方法实施例中对应过程的具体描述,本发明实施例在此不再详细赘述。

本发明提供的OTA升级包的配置装置,首先检测第一OTA升级包是否为仅能够用于部分终端设备将软件升级到当前最新版本的特殊升级包,并在检测到第一OTA升级包为特殊升级包时,继续判断该第一OTA升级包保持特殊升级包的时长是否大于或等于预设阈值,然后在确定第一OTA升级包保持特殊升级包的时长大于或等于预设阈值时,将该第一OTA升级包配置为能够用于所有终端设备将软件升级到当前最新版本的普通升级包。这样,相对于现有技术,服务器通过在第一OTA升级包为特殊升级包,且保持特殊升级包的时长大于或等于预设阈值时,将该第一OTA升级包配置为普通升级包,使得在软件需要配置高版本时,服务器无需配置多种与该需要配置的高版本对应的OTA升级包,进而避免了服务器在接收到终端设备的软件版本检测时,获取到的由软件在终端设备的当前版本升级到最新版本所需升级文件链不唯一的问题出现,从而确保了终端设备能够将软件从当前版本升级到最新版本,提高了用户体验。

并且,通过设置最大链长,使得在终端设备的当前版本较低时,可以先从服务器获取部分OTA升级包,避免了一次性获取所有OTA升级包可能导致的升级失败的情况发生,从而减小了升级失败的风险, 进一步提高了用户体验。通过在OTA升级包中配置升级方式,使得可以对支持多包连续升级的终端设备返回多个OTA升级包,实现了和现有单包升级策略的兼容。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储 器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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