防出错OTA升级方法、装置、计算机设备及存储介质与流程

文档序号:20203106发布日期:2020-03-27 20:50阅读:99来源:国知局
防出错OTA升级方法、装置、计算机设备及存储介质与流程

本发明涉及ota升级领域,尤其涉及一种防出错ota升级方法、装置、计算机设备及存储介质。



背景技术:

在工业系统应用中,常见一些产品在使用一段时间后,需要进行功能增加或bug修复操作。通常,采用ota(over-the-airtechnology,空间下载技术)升级方式对产品进行升级,从而实现功能增加或bug修复。ota升级主要是指一种通过空中接口远程管理,更新终端设备中固件的方法,目前ota升级主要是通过通信协议(如wi-fi、4g)自动下载ota升级包进行升级。

然而,ota升级作为一种重要的后期维护手段,同时也具有很大的危险性,一旦升级过程发生故障,可能会导致产品崩溃。现有的防出错方式主要通过在传输升级文件包时使用通信协议自带的校验规则进行校验,具体包含帧校验和文件包整包校验,以减少出错率。然而,这样的防出错方式完全依赖于通信协议,对于某些协议受限制的产品,无法进行整包校验。



技术实现要素:

针对上述现有技术的不足,本发明的目的在于提供一种通用的防出错ota升级方法、装置、计算机设备及存储介质。

为了实现上述目的,本发明提供一种防出错ota升级方法,包括:

根据预先编写的新版本代码生成镜像文件;

根据所述镜像文件生成对应的升级包,其中,所述升级包具有一包头,所述包头中包含所述镜像文件的文件名、文件校验码和文件大小;

将所述升级包下发到目标终端,以便所述目标终端对所述升级包进行校验处理,并在校验成功后,基于所述升级包进行升级,其中,所述目标终端进行的校验处理包括对所述升级包的包头中的所述文件名、文件校验码和文件大小进行校验。

在本发明一个优选实施例中,所述新版本代码中声明有升级信息,所述镜像文件的文件名包含所述升级信息以及升级包标识,所述目标终端进行的校验处理还包括:从所述升级包中获取所述升级信息,并检验获取到的升级信息与所述文件名中包含的升级信息是否匹配。

在本发明一个优选实施例中,所述根据所述镜像文件生成对应的升级包,包括:

获取所述镜像文件的文件名和文件大小;

生成所述镜像文件的文件校验码;

根据所述镜像文件的文件名、文件校验码和文件大小,生成所述包头;

将所述镜像文件和所述包头封装成所述升级包。

在本发明一个优选实施例中,所述升级信息包含预设的产品型号和版本信息。

为了实现上述目的,本发明还提供一种防出错ota升级装置,包括:

镜像文件生成模块,用于根据预先编写的新版本代码生成镜像文件;

升级包生成模块,用于根据所述镜像文件生成对应的升级包,其中,所述升级包具有一包头,所述包头中包含所述镜像文件的文件名、文件校验码和文件大小;

升级包下发模块,用于将所述升级包下发到目标终端,以便所述目标终端对所述升级包进行校验处理,并在校验成功后,基于所述升级包进行升级,其中,所述目标终端进行的校验处理包括对所述升级包的包头中的所述文件名、文件校验码和文件大小进行校验。

在本发明一个优选实施例中,所述新版本代码中声明有升级信息,所述镜像文件的文件名包含所述升级信息以及升级包标识,所述目标终端进行的校验处理还包括:从所述升级包中获取所述升级信息,并检验获取到的升级信息与所述文件名中包含的升级信息是否匹配。

在本发明一个优选实施例中,所述升级包生成模块包括:

文件名获取单元,用于获取所述镜像文件的文件名;

文件大小获取单元,用于获取所述镜像文件的文件大小;

校验码生成单元,用于生成所述镜像文件的文件校验码;

包头生成单元,用于根据所述镜像文件的文件名、文件校验码和文件大小,生成所述包头;

封装单元,用于将所述镜像文件和所述包头封装成所述升级包。

在本发明一个优选实施例中,所述升级信息包含预设的产品型号和版本信息。

为了实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述方法的步骤。

为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述的步骤。

通过采用上述技术方案,本发明具有如下有益效果:

本发明在升级包的包头中设置了镜像文件的文件名、文件校验码和文件大小,使得目标终端在升级之前,可以对所述文件名、文件校验码和文件大小进行验证,从而避免因为文件选择错误、文件发生改变、文件过大带来的升级问题,防止出错,而且本发明的防止出错方式不依赖于通信协议,可以通用。

附图说明

图1为本发明防出错ota升级方法的一个实施例的流程图;

图2为本发明防出错ota升级装置的一个实施例的结构框图;

图3为本发明计算机设备的硬件架构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

实施例一

本实施例提供一种通用的防出错ota升级方法,如图1所示,该方法包括以下步骤:

s1,根据预先编写的新版本代码生成镜像文件。

具体来说,当某产品需升级时,首先由程序员根据升级需求编写对应的新版本代码;而后,对编写完成的新版本代码进行编译,以生成对应的镜像文件(如bin文件)。优选地,新版本代码中声明有对应的升级信息,并且生成的镜像文件的文件名中包含升级包标识以及前述升级信息,其中,该升级信息包含待升级产品的产品型号以及新版本代码的版本信息,以便后续目标终端验证接收到的升级文件的文件名与内部升级内容是否匹配。

s2,根据所述镜像文件生成对应的升级包,具体过程如下:首先,获取所述镜像文件的文件名和文件大小;而后,按照预设的校验码生成算法对所述镜像文件进行处理,以生成所述镜像文件的文件校验码,该文件校验码可以是镜像文件的md5码、sha1码或crc32码等;而后,将镜像文件的文件名、文件校验码和文件大小拼接生成包头;最后,将所述镜像文件和所述包头封装成所述升级包。

s3、采用预设的通信协议将所述升级包下发到目标终端,所述目标终端接收到升级包后,首先对升级包进行一系列校验处理,若校验全部通过,则基于所述升级包进行升级操作,否则,不予升级。

其中,目标终端执行的校验处理包括:对所述升级包的包头中的所述文件名、文件校验码和文件大小进行校验,从而避免因为文件选择错误、文件发生改变、文件过大带来的升级问题,防止出错,而且本发明的防止出错方式不依赖于通信协议,可以通用。具体地,对文件名进行校验包括:将包头的文件名与本地预存的文件名进行匹配,若两者所包含的升级包标识和产品型号匹配,而版本号不匹配(版本号匹配说明并未更新)时,则判定文件名校验通过。对文件校验码对行校验包括:采用前述校验码生成算法对升级包中的镜像文件进行处理,并将得到的结果与包头中的文件校验码进行匹配,若匹配,则判定文件校验码校验通过。对文件大小进行校验包括:判定包头中的文件大小是否小于本地剩余空间,若是,则判定文件大小校验通过。优选地,目标终端执行的校验处理还可以包括:从所述升级包中获取前述于固定地址中声明的升级信息,并校验获取到的升级信息与所述文件名中包含的升级信息是否匹配,若匹配,则验证通过,从而避免升级包中镜像文件的文件名与文件内容不符带来的升级问题,进一步防止出错。

此外,应该理解,在对文件名、文件校验码和文件大小进行校验之前,目标终端还会基于通信协议自带的校验规则对升级包进行校验,包括帧校验和整包校验,由于基于通信协议的校验为现有技术,在此不再赘述。

本实施方法的执行主体可以是网页升级平台或者上位机等。

需要说明的是,对于本实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。

实施例二

本实施例提供一种通用的防出错ota升级装置10,如图2所示,该装置包括:

镜像文件生成模块11,用于根据预先编写的新版本代码生成镜像文件。

具体来说,当某产品需升级时,首先由程序员根据升级需求编写对应的新版本代码;而后,通过镜像文件生成模块11对编写完成的新版本代码进行编译,以生成对应的镜像文件(如bin文件)。优选地,新版本代码中声明有对应的升级信息,并且生成的镜像文件的文件名中包含升级包标识以及前述升级信息,其中,该升级信息包含待升级产品的产品型号以及新版本代码的版本信息,以便后续目标终端验证接收到的升级文件的文件名与内部升级内容是否匹配。

升级包生成模块12,用于根据所述镜像文件生成对应的升级包。升级包生成模块12具包括:文件名获取单元,用于获取所述镜像文件的文件名;文件大小获取单元,用于获取所述镜像文件的文件大小;校验码生成单元,用于生成所述镜像文件的文件校验码;包头生成单元,用于根据所述镜像文件的文件名、文件校验码和文件大小,生成所述包头;封装单元,用于将所述镜像文件和所述包头封装成所述升级包。

升级包下发模块13,用于采用预设的通信协议将所述升级包下发到目标终端,所述目标终端接收到升级包后,首先对升级包进行一系列校验处理,若验证全部通过,则基于所述升级包进行升级操作,否则,不予升级。

其中,目标终端执行的校验处理包括:对所述升级包的包头中的所述文件名、文件校验码和文件大小进行校验,从而避免因为文件选择错误、文件发生改变、文件过大带来的升级问题,防止出错,并且本发明的防止出错方式不依赖于通信协议,可以通用。

此外,目标终端执行的校验处理还可以包括:从所述升级包中获取前述于固定地址中声明的升级信息,并校验获取到的升级信息与所述文件名中包含的升级信息是否匹配,若匹配,则验证通过,从而避免升级包中镜像文件的文件名与文件内容不符带来的升级问题,进一步防止出错。

本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的模块作并不一定是本发明所必须的。

实施例三

本发明还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如实施例二的防出错ota升级装置10的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器22在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行防出错ota升级装置10,以实现实施例一的防出错ota升级方法。

实施例四

本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储防出错ota升级装置10,被处理器执行时实现实施例一的防出错ota升级装置10。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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