CN111857790A - 一种固件升级方法、装置及计算机设备 - Google Patents

一种固件升级方法、装置及计算机设备 Download PDF

Info

Publication number
CN111857790A
CN111857790A CN202010720051.7A CN202010720051A CN111857790A CN 111857790 A CN111857790 A CN 111857790A CN 202010720051 A CN202010720051 A CN 202010720051A CN 111857790 A CN111857790 A CN 111857790A
Authority
CN
China
Prior art keywords
firmware
differential
file
new
packet
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.)
Pending
Application number
CN202010720051.7A
Other languages
English (en)
Inventor
董海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ziroom Information Technology Co Ltd
Original Assignee
Beijing Ziroom Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ziroom Information Technology Co Ltd filed Critical Beijing Ziroom Information Technology Co Ltd
Priority to CN202010720051.7A priority Critical patent/CN111857790A/zh
Publication of CN111857790A publication Critical patent/CN111857790A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种固件升级方法、装置及计算机设备,其中,该方法包括:接收客户端设备的当前固件版本号;根据当前固件版本号确定对应的新固件版本号;根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件;根据新固件文件和旧固件文件得到原始差分固件文件;对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件;根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包;根据固件差分包生成差分升级镜像。本发明通过差分文件对客户端设备的固件进行更新,节省了固件升级时间;通过对差分文件进行切割,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。

Description

一种固件升级方法、装置及计算机设备
技术领域
本发明涉及移动通信技术领域,具体涉及一种固件升级方法、装置及计算机设备。
背景技术
固件升级是目前物联网设备的一项基本功能,指的是对音乐播放机等便携式机器的内嵌固件进行升级。通过固件升级可以完善机器功能、增强机器稳定性、修补机器漏洞。常见的固件升级方式有:整包升级和差分升级。虽然整包升级方式可以实现物联网设备固件升级,但是对于一些低速无线通信的设备(比如ZigBee设备)来说,整包升级需要的时间较长。
相对地,差分升级在缩短升级时间上就有明显的优势。但是传统的差分升级方式,是对整个差分文件进行操作,需要的RAM较大,无法在STM32等资源受限型的MCU上实现。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中对整个差分文件进行操作需要的RAM较大的缺陷,从而提供一种固件升级方法、装置及计算机设备。
根据第一方面,本发明实施例公开了一种固件升级方法,应用于服务器,包括如下步骤:接收客户端设备的当前固件版本号;根据当前固件版本号确定对应的新固件版本号;根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件;根据新固件文件和旧固件文件得到原始差分固件文件;对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件;根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包;根据固件差分包生成差分升级镜像。
优选地,根据新固件文件和旧固件文件得到原始差分固件文件,包括:对旧固件文件的字符串进行排序,形成字典序;根据字典序和新固件文件得到差异字符串和附加字符串;根据附加字符串和差异字符串得到原始差分固件文件。
优选地,方法还包括:获取新固件文件对应的新固件文件校验值和固件差分包对应的固件差分包校验值;根据固件差分包生成差分升级镜像,包括:将固件差分包、新固件文件校验值与固件差分包校验值打包,生成差分升级镜像。
根据第二方面,本发明实施例公开了一种固件升级方法,应用于客户端设备,包括如下步骤:向服务器发送当前固件版本号;接收服务器发送的差分升级镜像;差分升级镜像包括:固件差分包;根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件;根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;根据原始差分固件文件得到新固件文件;根据新固件文件进行升级。
优选地,差分升级镜像还包括:固件差分包对应的固件差分包校验值、新固件文件对应的新固件文件校验值;在根据差分升级镜像得到固件差分包之后,方法还包括:计算固件差分包对应的校验和;当固件差分包对应的校验和与固件差分包对应的固件差分包校验值相同时,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;在根据原始差分固件文件得到新固件文件之后,方法还包括:计算新固件文件对应的校验和;当新固件文件对应的校验和与新固件文件对应的新固件文件校验值相同时,根据新固件文件进行升级。
优选地,根据原始差分固件文件得到新固件文件,包括:解压原始差分文件得到差异字符串和附加字符串;根据所述附加字符串和差异字符串进行还原,得到新固件文件。
根据第三方面,本发明实施例公开了一种固件升级装置,应用于服务器,包括:第一接收模块,用于接收客户端设备的当前固件版本号;第一确定模块,用于根据当前固件版本号确定对应的新固件版本号;新/旧固件文件获得模块,用于根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件;原始差分固件文件获得模块,用于根据新固件文件和旧固件文件得到原始差分固件文件;切割模块,用于对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件;第一固件差分包获得模块,用于根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包;生成模块,用于根据固件差分包生成差分升级镜像。
根据第四方面,本发明实施例公开了一种固件升级装置,应用于客户端设备,包括:发送模块,用于向服务器发送当前固件版本号;第二接收模块,用于接收服务器发送的差分升级镜像;差分升级镜像包括:固件差分包;第二固件差分包获得模块,用于根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件;第一解压模块,用于根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;新固件文件获得模块,用于根据原始差分固件文件得到新固件文件;升级模块,用于根据新固件文件进行升级。
根据第五方面,本发明实施例还公开了一种计算机设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面或第一方面任一优选实施方式或如第二方面或第二方面任一优选实施方式的固件升级方法的步骤。
根据第六方面,本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面或第一方面任一优选实施方式或如第二方面或第二方面任一优选实施方式的固件升级方法的步骤。
本发明技术方案,具有如下优点:
1.本发明提供的固件升级方法及装置,通过接收客户端设备的当前固件版本号,根据当前固件版本号确定对应的新固件版本号,根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件,根据新固件文件和旧固件文件得到原始差分固件文件,对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件,根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包,根据固件差分包生成差分升级镜像。本发明通过差分文件对客户端设备的固件进行更新,节省了固件升级时间,提高了运维效率;通过对差分文件进行切割,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
2.本发明提供的固件升级方法及装置,通过向服务器发送当前固件版本号,接收服务器发送的差分升级镜像,差分升级镜像包括:固件差分包,根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件,根据原始差分固件文件得到新固件文件,根据新固件文件进行升级。本发明通过切割后的差分文件对客户端设备的固件进行更新,节省了固件升级时间,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中固件升级方法的一个具体示例的流程图;
图2为本发明实施例中固件升级方法的另一个具体示例的流程图;
图3为本发明实施例中固件升级系统的一个具体示例图;
图4为本发明实施例中固件升级装置的一个具体示例的原理框图;
图5为本发明实施例中固件升级装置的另一个具体示例的原理框图;
图6为本发明实施例中计算机设备的一个具体示例图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明实施例公开了一种固件升级方法,应用于服务器,如图1所示,包括如下步骤:
S11:接收客户端设备的当前固件版本号。
示例性地,接收客户端设备的当前固件版本号的接收方式可以是通过无线网络从客户端直接接收,也可以是通过无线方式从中间设备接收。接收到的当前固件版本号可以是加密的当前固件版本号,也可以为未加密的当前固件版本号,当接收到加密的当前固件版本号时,可以根据服务器的私钥进行解密获得。本发明实施例对当前固件版本号的接收方式以及当前固件版本号是否加密不做限定,本领域技术人员可根据需要确定。
S12:根据当前固件版本号确定对应的新固件版本号。
示例性地,新固件版本号表征客户端设备拟升级的固件版本号。服务器接收到当前固件版本号时,表明有升级任务,根据当前固件版本号确定对应的新固件版本号可以为从数据库检索得到,本发明实施例对该新固件版本号的确定方法不作具体限定,本领域技术人员可以根据实际情况设定。
S13:根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件。
示例性地,旧固件文件为当前固件版本号对应的固件文件,新固件文件为新固件版本号对应的固件文件。根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件可以为服务器根据当前固件版本号和新固件版本号从数据库中检索获得。
S14:根据新固件文件和旧固件文件得到原始差分固件文件。
示例性地,根据新固件文件和旧固件文件得到原始差分固件文件可以为通过差分升级算法计算得到原始差分固件文件,该差分升级算法可以为bsdiff算法,本发明实施例对该差分升级算法不作限定,本领域技术人员可以根据实际情况设定。差分升级算法为将新固件文件和旧固件文件进行比对,确定新固件文件和旧固件文件之间的差异,基于该差异生成原始差分固件文件。也就是说,该原始差分固件文件中携带的数据即为表征新固件文件和旧固件文件间的差异的数据。该差异数据可以是二进制差异,也可以是文件系统差异,本发明实施例对该差异数据的类型不作具体限定,本领域技术人员可以根据实际情况设定。
作为本发明一个可选实施方式,根据bsdiff算法得到原始差分文件具体可以为:
首先,对旧固件文件的字符串进行排序,形成字典序。
示例性地,对旧固件文件的字符串进行排序,形成字典序可以为bsdiff算法采用Faster suffix sorting方法获得一个字典序,也可以为采用hash技术得到字典序,该字典序记录了各个字符串组的最后一个字符串在旧固件文件中的开始位置。本发明实施例对该字典序的获得方法不作具体限定,本领域技术人员可以根据实际情况设定。
其次,根据字典序和新固件文件得到差异字符串和附加字符串。
示例性地,附加字符串表示新固件文件与旧固件文件相比新增的部分,差异字符串表示新固件文件与旧固件文件相比发生改变的部分。对比旧固件文件的字典序和新固件文件的字符串,得到新增的附加字符串和发生改变的差异字符串。
再次,根据附加字符串和差异字符串得到原始差分固件文件。
示例性地,该原始差分固件文件指的是根据新固件文件相对于旧固件文件不一样的部分打包得到的,即根据附加字符串和差异字符串得到原始差分固件文件,为了便于客户端设备后续还原出新固件文件,在本发明实施例中,可以将发生变化的部分以及发生变化的部分的前后部分一起打包成原始差分固件文件。
S15:对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件。
示例性地,对原始差分固件文件进行切割可以根据第一预设大小对原始差分固件文件进行切割,该第一预设大小可以为1024字节,本发明实施例对该预设大小不作限定,本领域技术人员可以根据实际RAM资源进行调整,例如,对于RAM资源较大的控制单元,该预设大小可以大一些,以减少固件差分文件的大小和缩短运算时间。
对切割后的原始差分固件文件进行压缩的方法可以为diff阶段中的压缩,并且产生对应的压缩切片记录文件。本发明实施例对该压缩方法不作具体限定,可以根据实际情况设定。
S16:根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包。
示例性地,根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包可以为将压缩后的固件差分文件和对应的压缩切片记录文件,按照约定的格式(例如,文件头、压缩切片记录文件偏移量及大小、压缩后差分文件偏移量及大小、压缩切片记录文件、压缩后差分文件)保存到同一个文件中,即固件差分包。
S17:根据固件差分包生成差分升级镜像。
示例性地,该差分升级镜像中包括:镜像头信息和固件差分包镜像。具体的,可以通过软件生成差分升级镜像。
本发明提供的固件升级方法,通过接收客户端设备的当前固件版本号,根据当前固件版本号确定对应的新固件版本号,根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件,根据新固件文件和旧固件文件得到原始差分固件文件,对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件,根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包,根据固件差分包生成差分升级镜像。本发明通过差分文件对客户端设备的固件进行更新,节省了固件升级时间,提高了运维效率;通过对差分文件进行切割,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
作为本发明一个可选实施方式,该固件升级方法还包括:
获取新固件文件对应的新固件文件校验值和固件差分包对应的固件差分包校验值。
示例性地,该新固件文件校验值可以为在生成新固件文件时生成并与新固件文件一起存储在数据库中,固件差分包校验值可以为在生成固件差分包时生成并与固件差分包一起存储在存储器。该新固件文件校验值和固件差分包校验值的获取方式可以为在数据库和存储器中直接调用。
在获取到新固件文件校验值和固件差分包校验值后,根据固件差分包生成差分升级镜像的过程,主要包括:
将固件差分包、新固件文件校验值与固件差分包校验值打包,生成差分升级镜像。该差分升级镜像的生成方法与上述步骤S17的生成方法一样,增加了新固件文件校验值与固件差分包校验值,便于客户端对接收到的固件差分包和新固件文件进行验证,提高了固件升级准确性。
本发明实施例还公开了一种固件升级方法,应用于客户端设备,如图2所示,包括如下步骤:
S21:向服务器发送当前固件版本号。
示例性地,当物联网客户端设备(简称客户端设备)需要进行固件升级时,上电后向固件升级服务器发送(简称服务器)客户端设备的当前固件版本号。向服务器发送当前固件版本号的发送方式可以是通过无线网络直接向服务器发送,也可以是通过无线网络发送到中间设备,再由中间设备向服务器发送,本实施例不做限定,本领域技术人员按照需要确定。为了保证通信可靠性,该当前版本号可以加密后向服务器发送。
S22:接收服务器发送的差分升级镜像;差分升级镜像包括:固件差分包。该差分升级镜像的接收方法与上述步骤S11的接收方法一样,在此不再赘述。
S23:根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件。具体实现方式与上述步骤S17的方法对应,在此不再赘述。
S24:根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件。根据压缩切片记录文件逐片解压出原始差分固件文件。
S25:根据原始差分固件文件得到新固件文件。
示例性地,根据原始差分固件文件得到新固件文件可以为根据差分还原算法对原始差分固件文件进行还原,得到新固件文件。该差分还原算法可以为bsdiff算法的反过程。该差分还原的计算过程也可以根据第二预设大小进行切片计算,该第二预设大小可以与第一预设大小相同,也可以与第一预设大小不同,本发明实施例对该第二预设大小不做具体限定,本领域技术人员可以根据实际情况设定。
作为本发明一个可选实施方式,通过如下步骤得到新固件文件:
首先,解压原始差分文件得到附加字符串、差异字符串。
其次,根据附加字符串和差异字符串进行还原,得到新固件文件。具体实现方式为与上述原始差分文件的获得方法相反的过程,在此不再赘述。
S26:根据新固件文件进行升级。
本发明提供的固件升级方法,通过向服务器发送当前固件版本号,接收服务器发送的差分升级镜像,差分升级镜像包括:固件差分包,根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件,根据原始差分固件文件得到新固件文件,根据新固件文件进行升级。本发明通过切割后的差分文件对客户端固件进行更新,节省了固件升级时间,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
作为本发明一个可选实施方式,差分升级镜像还包括:固件差分包对应的固件差分包校验值、新固件文件对应的新固件文件校验值;相对应地,在步骤S23之后,该固件升级方法还包括:
首先,计算固件差分包对应的校验和。
示例性地,该固件差分包对应的校验和的计算方法可以采用CRC32等弱校验方式,也可以采用md5或sha256等强校验方式,本发明实施例对该计算方法不作限定,本领域技术人员可以根据实际情况选择。
其次,当固件差分包对应的校验和与固件差分包对应的固件差分包校验值相同时,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件,即执行步骤S24。
示例性地,当固件差分包对应的校验和与差分升级镜像中存储的固件差分包对应的固件差分包校验值相同时,表明差分升级镜像下载正确,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;当固件差分包对应的校验和与差分升级镜像中存储的固件差分包对应的固件差分包校验值不相同时,表明差分升级镜像下载错误,客户端设备不进行升级。
在步骤S25之后,该固件升级方法还包括:
计算新固件文件对应的校验和。该新固件文件对应的校验和的计算方法与上述固件差分包对应的校验和的计算方法一样,在此不再赘述。
当新固件文件对应的校验和与新固件文件对应的新固件文件校验值相同时,根据新固件文件进行升级,即执行步骤S26。
示例性地,当新固件文件对应的校验和与差分升级镜像中存储的新固件文件对应的新固件文件校验值相同时,表明还原出来的新固件文件正确,根据新固件文件进行升级。当新固件文件对应的校验和与差分升级镜像中存储的新固件文件对应的新固件文件校验值不相同时,表明还原出来的新固件文件不正确,客户端设备不进行升级。对接收到的固件差分包和新固件文件进行验证,提高了固件升级准确性。
本发明实施例还公开了一种固件升级系统,包括客户端和服务器,应用于客户端与服务器交互的系统中的固件升级,如图3所示,执行如下过程:
S21:向服务器发送当前固件版本号。
S11:接收客户端设备的当前固件版本号。
S12:根据当前固件版本号确定对应的新固件版本号。
S13:根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件。
S14:根据新固件文件和旧固件文件得到原始差分固件文件。
S15:对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件。
S16:根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包。
S17:根据固件差分包生成差分升级镜像。
S22:接收服务器发送的差分升级镜像;差分升级镜像包括:固件差分包。
S23:根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件。
S24:根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件。
S25:根据原始差分固件文件得到新固件文件。
S26:根据新固件文件进行升级。
对本实施例中各个步骤的说明,参见上述实施例,在此不再赘述。
本发明实施例公开的固件升级系统,通过服务器对差分文件进行切割,客户端利用切割后的差分文件对固件进行更新,节省了固件升级时间,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
本发明实施例还公开了一种固件升级装置,应用于服务器,如图4所示,包括:
第一接收模块31,用于接收客户端设备的当前固件版本号;具体实现方式见方法步骤S11,在此不再赘述。
第一确定模块32,用于根据当前固件版本号确定对应的新固件版本号;具体实现方式见方法步骤S12,在此不再赘述。
新/旧固件文件获得模块33,用于根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件;具体实现方式见方法步骤S13,在此不再赘述。
原始差分固件文件获得模块34,用于根据新固件文件和旧固件文件得到原始差分固件文件;具体实现方式见方法步骤S14,在此不再赘述。
切割模块35,用于对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件;具体实现方式见方法步骤S15,在此不再赘述。
第一固件差分包获得模块36,用于根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包;具体实现方式见方法步骤S16,在此不再赘述。
生成模块37,用于根据固件差分包生成差分升级镜像;具体实现方式见方法步骤S17,在此不再赘述。
本发明提供的固件升级装置,通过接收客户端设备的当前固件版本号,根据当前固件版本号确定对应的新固件版本号,根据当前固件版本号和新固件版本号得到旧固件文件和新固件文件,根据新固件文件和旧固件文件得到原始差分固件文件,对原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件,根据压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包,根据固件差分包生成差分升级镜像。本发明通过差分文件对客户端固件进行更新,节省了固件升级时间,提高了运维效率;通过对差分文件进行切割,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
作为本发明一个可选实施方式,原始差分固件文件获得模块34包括:
排序模块,用于对旧固件文件的字符串进行排序,形成字典序;具体实现方式见方法对应部分,在此不再赘述。
字符串获得模块,用于根据字典序和新固件文件得到附加字符串和差异字符串;具体实现方式见方法对应部分,在此不再赘述。
原始差分固件文件获得子模块,用于根据附加字符串和差异字符串得到原始差分固件文件。具体实现方式见方法对应部分,在此不再赘述。
作为本发明一个可选实施方式,该固件升级装置还包括:
获取模块,用于获取新固件文件对应的新固件文件校验值和固件差分包对应的固件差分包校验值;具体实现方式见方法对应部分,在此不再赘述。
生成模块37包括:
打包模块,用于将固件差分包、新固件文件校验值与固件差分包校验值打包,生成差分升级镜像。具体实现方式见方法对应部分,在此不再赘述。
本发明实施例还公开了一种固件升级装置,应用于客户端设备,如图5所示,包括:
发送模块41,用于向服务器发送当前固件版本号;具体实现方式见方法步骤S21,在此不再赘述。
第二接收模块42,用于接收服务器发送的差分升级镜像;差分升级镜像包括:固件差分包;具体实现方式见方法步骤S22,在此不再赘述。
第二固件差分包获得模块43,用于根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件;具体实现方式见方法步骤S23,在此不再赘述。
第一解压模块44,用于根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;具体实现方式见方法步骤S24,在此不再赘述。
新固件文件获得模块45,用于根据原始差分固件文件得到新固件文件;具体实现方式见方法步骤S25,在此不再赘述。
升级模块46,用于根据新固件文件进行升级。具体实现方式见方法步骤S26,在此不再赘述。
本发明提供的固件升级装置,通过向服务器发送当前固件版本号,接收服务器发送的差分升级镜像,差分升级镜像包括:固件差分包,根据差分升级镜像得到固件差分包,固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件,根据原始差分固件文件得到新固件文件,根据新固件文件进行升级。本发明通过切割后的差分文件对客户端固件进行更新,节省了固件升级时间,减小了差分升级过程中占用的RAM资源,能够在STM32等资源受限型的MCU上实现。
作为本发明一个可选实施方式,差分升级镜像还包括:固件差分包对应的固件差分包校验值、新固件文件对应的新固件文件校验值;
该固件升级装置还包括:
第一计算模块,用于计算固件差分包对应的校验和;具体实现方式见方法对应部分,在此不再赘述。
第二解压模块,用于当固件差分包对应的校验和与固件差分包对应的固件差分包校验值相同时,根据压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;具体实现方式见方法对应部分,在此不再赘述。
该固件升级装置还包括:
第二计算模块,用于计算新固件文件对应的校验和;具体实现方式见方法对应部分,在此不再赘述。
升级子模块,用于当新固件文件对应的校验和与新固件文件对应的新固件文件校验值相同时,根据新固件文件进行升级。具体实现方式见方法对应部分,在此不再赘述。
作为本发明一个可选实施方式,新固件文件获得模块45包括:
第三解压模块,用于解压原始差分文件得到附加字符串、差异字符串;具体实现方式见方法对应部分,在此不再赘述。
还原模块,用于根据附加字符串和差异字符串进行还原,得到新固件文件。具体实现方式见方法对应部分,在此不再赘述。
本发明实施例还提供了一种计算机设备,如图6所示,该计算机设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图6中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的固件升级方法对应的程序指令/模块(例如,图4所示的第一接收模块31、第一确定模块32、新/旧固件文件获得模块33、原始差分固件文件获得模块34、切割模块35、第一固件差分包获得模块36和生成模块37或图5所示的发送模块41、第二接收模块42、第二固件差分包获得模块43、第一解压模块44、新固件文件获得模块45和升级模块46)。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的固件升级方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52优选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图1-2所示实施例中的固件升级方法。
上述计算机设备具体细节可以对应参阅图1至图2所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种固件升级方法,应用于服务器,其特征在于,包括如下步骤:
接收客户端设备的当前固件版本号;
根据所述当前固件版本号确定对应的新固件版本号;
根据所述当前固件版本号和所述新固件版本号得到旧固件文件和新固件文件;
根据所述新固件文件和所述旧固件文件得到原始差分固件文件;
对所述原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件;
根据所述压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包;
根据所述固件差分包生成差分升级镜像。
2.根据权利要求1所述的方法,其特征在于,所述根据所述新固件文件和所述旧固件文件得到原始差分固件文件,包括:
对所述旧固件文件的字符串进行排序,形成字典序;
根据所述字典序和所述新固件文件得到差异字符串和附加字符串;
根据所述附加字符串和所述差异字符串得到原始差分固件文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述新固件文件对应的新固件文件校验值和所述固件差分包对应的固件差分包校验值;
所述根据所述固件差分包生成差分升级镜像,包括:
将所述固件差分包、所述新固件文件校验值与固件差分包校验值打包,生成所述差分升级镜像。
4.一种固件升级方法,应用于客户端设备,其特征在于,包括如下步骤:
向服务器发送当前固件版本号;
接收所述服务器发送的差分升级镜像;所述差分升级镜像包括:固件差分包;
根据所述差分升级镜像得到所述固件差分包,所述固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件;
根据所述压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;
根据所述原始差分固件文件得到新固件文件;
根据所述新固件文件进行升级。
5.根据权利要求4所述的方法,其特征在于,所述差分升级镜像还包括:固件差分包对应的固件差分包校验值、新固件文件对应的新固件文件校验值;
在根据所述差分升级镜像得到所述固件差分包之后,所述方法还包括:
计算所述固件差分包对应的校验和;
当所述固件差分包对应的校验和与所述固件差分包对应的固件差分包校验值相同时,根据所述压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;
在根据所述原始差分固件文件得到新固件文件之后,所述方法还包括:
计算所述新固件文件对应的校验和;
当所述新固件文件对应的校验和与所述新固件文件对应的新固件文件校验值相同时,根据所述新固件文件进行升级。
6.根据权利要求4所述的方法,其特征在于,所述根据所述原始差分固件文件得到新固件文件,包括:
解压所述原始差分文件得到差异字符串和附加字符串;
根据所述差异字符串和附加字符串进行还原,得到新固件文件。
7.一种固件升级装置,应用于服务器,其特征在于,包括:
第一接收模块,用于接收客户端设备的当前固件版本号;
第一确定模块,用于根据所述当前固件版本号确定对应的新固件版本号;
新/旧固件文件获得模块,用于根据所述当前固件版本号和所述新固件版本号得到旧固件文件和新固件文件;
原始差分固件文件获得模块,用于根据所述新固件文件和所述旧固件文件得到原始差分固件文件;
切割模块,用于对所述原始差分固件文件进行切割并压缩,得到压缩后的固件差分文件;
第一固件差分包获得模块,用于根据所述压缩后的固件差分文件和对应的压缩切片记录文件得到固件差分包;
生成模块,用于根据所述固件差分包生成差分升级镜像。
8.一种固件升级装置,应用于客户端设备,其特征在于,包括:
发送模块,用于向服务器发送当前固件版本号;
第二接收模块,用于接收所述服务器发送的差分升级镜像;所述差分升级镜像包括:固件差分包;
第二固件差分包获得模块,用于根据所述差分升级镜像得到所述固件差分包,所述固件差分包包括:压缩后的固件差分文件和对应的压缩切片记录文件;
第一解压模块,用于根据所述压缩切片记录文件解压压缩后的固件差分文件,得到原始差分固件文件;
新固件文件获得模块,用于根据所述原始差分固件文件得到新固件文件;
升级模块,用于根据所述新固件文件进行升级。
9.一种计算机设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-6任一所述的固件升级方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一项所述的固件升级方法的步骤。
CN202010720051.7A 2020-07-23 2020-07-23 一种固件升级方法、装置及计算机设备 Pending CN111857790A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010720051.7A CN111857790A (zh) 2020-07-23 2020-07-23 一种固件升级方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010720051.7A CN111857790A (zh) 2020-07-23 2020-07-23 一种固件升级方法、装置及计算机设备

Publications (1)

Publication Number Publication Date
CN111857790A true CN111857790A (zh) 2020-10-30

Family

ID=72949944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010720051.7A Pending CN111857790A (zh) 2020-07-23 2020-07-23 一种固件升级方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN111857790A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346773A (zh) * 2020-11-05 2021-02-09 经纬恒润(天津)研究开发有限公司 Ecu升级方法及装置
CN112416716A (zh) * 2020-11-25 2021-02-26 宁波阶梯教育科技有限公司 一种固件自动校检方法及设备
CN112631633A (zh) * 2021-01-07 2021-04-09 南方电网数字电网研究院有限公司 基于双芯智能电表的功能模块升级方法和装置
CN112905211A (zh) * 2021-03-25 2021-06-04 苏州科达科技股份有限公司 固件升级文件更新方法、系统、设备及存储介质
CN113590161A (zh) * 2021-08-20 2021-11-02 广东九联科技股份有限公司 内存可控的nb-iot模组差分升级方法及系统
CN113821245A (zh) * 2021-09-10 2021-12-21 摩拜(北京)信息技术有限公司 差分升级方法、装置及车锁

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140237462A1 (en) * 2012-12-06 2014-08-21 Tencent Technology (Shenzhen) Company Limited Method and system for software upgrade
CN108170460A (zh) * 2017-12-15 2018-06-15 杭州中天微系统有限公司 一种嵌入式系统增量升级的方法及装置
CN109634644A (zh) * 2018-12-27 2019-04-16 广东优世联合控股集团股份有限公司 通过无线通信为传感器进行固件升级的方法及其设备
CN110162330A (zh) * 2019-07-08 2019-08-23 上海赫千电子科技有限公司 一种应用于汽车ecu升级文件的系统及方法
CN111258621A (zh) * 2019-11-19 2020-06-09 浙江瑞银电子有限公司 一种固件差异化升级方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140237462A1 (en) * 2012-12-06 2014-08-21 Tencent Technology (Shenzhen) Company Limited Method and system for software upgrade
CN108170460A (zh) * 2017-12-15 2018-06-15 杭州中天微系统有限公司 一种嵌入式系统增量升级的方法及装置
CN109634644A (zh) * 2018-12-27 2019-04-16 广东优世联合控股集团股份有限公司 通过无线通信为传感器进行固件升级的方法及其设备
CN110162330A (zh) * 2019-07-08 2019-08-23 上海赫千电子科技有限公司 一种应用于汽车ecu升级文件的系统及方法
CN111258621A (zh) * 2019-11-19 2020-06-09 浙江瑞银电子有限公司 一种固件差异化升级方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346773A (zh) * 2020-11-05 2021-02-09 经纬恒润(天津)研究开发有限公司 Ecu升级方法及装置
CN112416716A (zh) * 2020-11-25 2021-02-26 宁波阶梯教育科技有限公司 一种固件自动校检方法及设备
CN112631633A (zh) * 2021-01-07 2021-04-09 南方电网数字电网研究院有限公司 基于双芯智能电表的功能模块升级方法和装置
CN112905211A (zh) * 2021-03-25 2021-06-04 苏州科达科技股份有限公司 固件升级文件更新方法、系统、设备及存储介质
CN113590161A (zh) * 2021-08-20 2021-11-02 广东九联科技股份有限公司 内存可控的nb-iot模组差分升级方法及系统
CN113590161B (zh) * 2021-08-20 2024-04-19 广东九联科技股份有限公司 内存可控的nb-iot模组差分升级方法及系统
CN113821245A (zh) * 2021-09-10 2021-12-21 摩拜(北京)信息技术有限公司 差分升级方法、装置及车锁

Similar Documents

Publication Publication Date Title
CN111857790A (zh) 一种固件升级方法、装置及计算机设备
CN109597717B (zh) 一种数据备份、恢复方法、装置、电子设备及存储介质
US10031744B2 (en) Incremental upgrade method, apparatus for applying method and storage medium
CN110716895A (zh) 目标数据归档方法、装置、计算机设备及介质
CN111262876B (zh) 基于区块链的数据处理方法、装置、设备以及存储介质
CN108228224B (zh) 一种嵌入式系统差分升级的方法及装置
KR20080037450A (ko) 소프트웨어 실행모듈의 업데이트 시스템 및 방법
US8549165B2 (en) Processing devices and methods for transmitting and receiving data
CN106897166B (zh) 一种移动终端及其修复方法
US8086909B1 (en) Automatic core file upload
CN112839003A (zh) 数据校验方法及系统
WO2018076769A1 (zh) 一种信息处理方法和装置
KR20080019454A (ko) 휴대 단말기의 펌웨어 업데이트용 델타파일 생성 방법과델타파일 및 이를 이용한 펌웨어 업데이트 방법
US9104520B2 (en) Method and apparatus for upgrading application
CN114020522A (zh) 数据备份方法、装置、电子设备及系统
CN112286565A (zh) 一种基于存储容器的嵌入式系统差分升级方法
KR100700200B1 (ko) 파일의 정보를 이용하여 중복된 파일을 저장하고다운로드하는 방법 및 장치
CN113590161B (zh) 内存可控的nb-iot模组差分升级方法及系统
CN115827024A (zh) 车载程序的更新方法及系统
CN115640022A (zh) 通过数据压缩和加密升级固件的方法及系统
CN113111040B (zh) 一种文件解压方法及装置
WO2010017322A1 (en) Two stage differencing algorithm with adaptive compression
CN112269601B (zh) 一种bmc及其部件资产信息管理方法、装置和存储介质
CN114270928A (zh) 一种异常恢复方法、异常恢复装置及移动终端
CN113900990A (zh) 文件分片存储方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination