CN115543390A - 固件升级方法、电子设备及存储介质 - Google Patents

固件升级方法、电子设备及存储介质 Download PDF

Info

Publication number
CN115543390A
CN115543390A CN202211374435.3A CN202211374435A CN115543390A CN 115543390 A CN115543390 A CN 115543390A CN 202211374435 A CN202211374435 A CN 202211374435A CN 115543390 A CN115543390 A CN 115543390A
Authority
CN
China
Prior art keywords
firmware
data
upgrade
upgrading
host
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
CN202211374435.3A
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.)
Orbbec Inc
Original Assignee
Orbbec Inc
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 Orbbec Inc filed Critical Orbbec Inc
Priority to CN202211374435.3A priority Critical patent/CN115543390A/zh
Publication of CN115543390A publication Critical patent/CN115543390A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请适用于通信技术领域,提供了一种固件升级方法、电子设备及存储介质,所述方法,包括:接收主机发送的第一校验数据,第一校验数据由主机基于预设校验算法对固件升级文件进行校验数据计算得到;依次接收主机发送的若干个升级包,并将若干个升级包重组得到固件升级文件;基于预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据;根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验;若校验通过,基于固件升级文件进行固件升级。旨在提高升级包验证的准确性,降低固件升级故障。

Description

固件升级方法、电子设备及存储介质
技术领域
本申请属于通信技术领域,尤其涉及一种固件升级方法、电子设备及存储介质。
背景技术
在嵌入式设备的固件升级过程中,为了防止升级包传输过程中出现数据丢失的现象,通常会加入循环冗余校验码(cyclic redundancy check,CRC)对升级包进行完整性校验。CRC是一种常用的数据完整性校验算法,由于其实现编码和检码的电路比较简单,可以仅通过某种数学运算来建立数据位和校验位的约定关系而得到了普遍应用。
然而,在嵌入式设备的固件升级过程中,仅通过CRC对升级包进行完整性校验,由于其无法对升级包在传输过程中是否被损坏或者篡改进行准确性校验,存在利用已损坏或者已篡改的升级包进行固件升级的风险。导致存在固件升级故障从而增加维护成本。
申请内容
有鉴于此,本申请实施例提供了一种固件升级方法、装置、设备及存储介质,以解决固件升级过程中,升级包在传输过程中存在的安全性问题,旨在准确验证升级包在传输过程中是否被损坏或者被篡改,降低固件升级故障。
本申请实施例的第一方面提供了一种固件升级方法,应用于模组,包括:接收主机发送的第一校验数据,并向主机反馈已收到校验数据;其中,第一校验数据由主机基于预设校验算法对固件升级文件进行校验数据计算得到;依次接收主机发送的若干个升级包,并将若干个升级包重组得到固件升级文件;基于预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据;根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验;若校验通过,基于固件升级文件进行固件升级。
本申请实施例的第二方面提供了一种固件升级方法,应用于主机,包括:基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据;将第一校验数据发送给模组;确认模组接收到第一校验数据后,将固件升级文件拆分为若干个升级包依次发送给模组。
本申请实施例的第三方面提供了一种电子设备,包括主机和模组;主机基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据;主机将得到的第一校验数据发送给模组;模组接收主机发送的第一校验数据,并向主机反馈已收到校验数据;主机确认模组接收到第一校验数据后,将固件升级文件拆分为若干个升级包依次发送给模组;模组依次接收主机发送的若干个升级包,并将若干个升级包重组得到固件升级文件;模组基于预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据;模组根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验;若校验通过,基于固件升级文件进行固件升级。
本申请实施例的第四方面提供了一种固件升级设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面的固件升级方法,或者处理器执行计算机程序时实现上述第二方面的固件升级方法。
本申请实施例的第五方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述第一方面的固件升级方法,或者计算机程序被处理器执行时实现上述第二方面的固件升级方法。
本申请实施例与现有技术相比存在的有益效果是:
本申请提供的固件升级方法,通过主机基于预设校验算法对固件升级文件进行校验数据计算得到固件升级文件的第一校验数据后,由主机发送该第一校验数据至模组;模组在接收到主机发送的第一校验数据后,向主机反馈已收到校验数据;主机在接收到模组的反馈后,向模组发送若干个升级包,模组在接收到若干个升级包后进行升级包重组得到固件升级文件,并利用与主机相同的校验算法对固件升级文件进行校验数据计算得到第二校验数据;根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验;若校验通过,基于固件升级文件进行固件升级。由于第一校验数据和第二校验数据分别为主机与模组基于相同的校验算法,对固件升级文件在传输前后分别进行校验数据计算得到,因此可以通过比较第一校验数据和第二校验数据,来准确判断固件升级文件在传输过程中是否被篡改或者被破坏,旨在提高固件升级过程中,防止利用已破坏或着篡改的升级包进行固件升级,降低固件升级过程中的维护成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了本申请提供的固件升级方法的场景示意图;
图2示出了本申请一实施例提供的固件升级方法的实现流程示意图;
图3是图2中步骤S202的具体实现流程示意图;
图4是图2中S205的具体实现流程示意图;
图5示出了本申请另一实施例提供的固件升级方法的实现流程示意图;
图6示出了本申请实施例提供的固件升级方法的交互流程示意图;
图7是本申请实施例提供的电子装置的结构示意图;
图8是本申请实施例提供的计算机装置的结构示意图;
图9是本申请一实施例提供的固件升级设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请提供的固件升级方法可应用于各类安装有嵌入式系统的电子设备中,具体可以应用于嵌入式系统的模组固件升级过程中,为了更好地解释本申请的技术方案,例如,本申请实施例提供的电子设备可以是门锁设备、或者监控设备等。
其中,本申请实施例的固件升级是指:在具有嵌入式系统的电子设备中,对模组固件进行空间远程在线(Over-the-Air Technology,OTA)升级。具体地,OTA升级是通过移动通信(如GSM或CDMA)的空中接口对门锁设备的应用进行远程升级管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用,使得门锁设备不仅可以提供语音和数据服务,而且还能提供新业务下载以及业务的在线升级。在本发明实施例中,固件升级方法应用于门锁设备的人脸识别模组的固件升级。
在本申请中,电子设备的各模组对应的模组固件可以基于OTA进行升级。本申请实施例在基于OTA对各模组固件进行升级时,分别在主机端和模组端进行校验数据计算,得到两个校验数据,并能够有效验证升级包是否完整或被篡改,提高升级包传输的安全性,避免利用已破坏或者篡改的升级包进行固件升级,从而降低固件的维护成本。
请参阅图1所示,图1示出了本申请提供的固件升级方法的场景示意图。具体由主机110与模组120通过数据交互完成。
其中,主机110可以是电子设备的主控制器,如锁控等。主机110会通过服务器或其他终端设备获取固件升级指令。其中,服务器可以是云端服务器或者本地服务器。终端设备包括但不限于手机、个人电脑、机器人或者智能可穿戴设备等。
在本实施例中,云端服务器也可以称为云计算平台,简称云平台。具体是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。本地服务器可以是单个服务器或者服务器集群等。
模组120可以是电子设备的内嵌或外接的固件装置,包括但不限于视觉传感装置,如人脸识别模组等。其中,模组120具有数据处理功能的部件和数据存储功能的部件,如图1中所示的模组处理器121和模组存储器122。其中,模组处理器121可以是CPU,单片机等;模组存储器122还可以包括随机存取存储器1221和快闪存储器1222。当然还可以包括内存、主板、硬盘、光驱、电源、散热系统以及其他输入输出控制器和接口等。
主机110与模组120之间可以通过串口中断方式连接。主机110从服务器或其他终端设备处获取固件升级文件后,需要将固件升级文件下发给对应的模组120;具体地,主机110在进行固件升级文件下发之前,基于预设校验算法对固件升级文件进行校验数据计算得到第一校验数据,并将第一校验数据发送至模组120,模组120在接收到第一校验数据后,向主机110反馈已收到校验数据;主机110在接收到模组120的反馈信息后,确定模组120进入升级状态,依次向模组120发送若干个升级包;模组120依次接收主机110发送的若干个升级包,并将若干各升级包重组得到固件升级文件,并根据预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据后,根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验,在校验通过后,基于固件升级文件进行固件升级。
在本实施例中,主机110在将需要升级模组120对应的固件升级文件下发给模组120之前,首先对固件升级文件基于预设校验算法进行校验数据计算,得到第一校验数据后,可以通过将计算得到的第一校验数据与升级指令一起进行加密,得到加密校验数据包,再将加密校验数据包发送至模组120。由模组120对加密校验数据包进行解密,得到第一校验数据和对应的升级指令。以提高第一校验数据传输的安全性。此外,主机110在进行各升级包数据传输之前,可以通过对各升级包数据进行加密得到加密升级数据,再将加密升级数据传输至模组120。以提高升级包数据传输的安全性。模组120在接收完主机110发送的加密升级数据之后,对加密升级数据进行解密,得到各升级包后,将接收到的若干个升级包进行重组得到固件升级文件,进一步基于与主机110相同的预设校验算法对固件升级文件进行校验数据计算,得到对应的第二校验数据。
由于第一校验数据是在固件升级文件传输之前,对固件升级文件采用预设校验算法进行校验数据计算得到,而第二校验数据是在固件升级文件传输之后,对固件升级文件采用相同的预设校验算法进行校验数据计算得到,因此,可以通过比较第一校验数据和第二校验数据是否相同,来准确验证各升级包在传输过程中是否被篡改,能够有效防止采用已破坏或者已篡改的文件进行固件升级,导致固件升级故障而增加维护成本。
需要说明的是,主机110可以通过无线应用协议(Wireless ApplicationProtocol,WAP)、通用无线分组业务(General packet radio service,GPRS)等无线通讯方式与云平台或者其它固件升级文件存储设备连接,以获取所需的固件升级文件。而主机110与模组120之间可以通过串口中断方式连接,可以实现通过内部协议进行加密密钥协商,保证双方加解密过程采用一致的密钥,有效防止密钥外泄。
在某一具体实施例中,主机110为某电子门锁的锁控,模组120为该电子门锁的人脸识别模组,锁控用于将接收到的人脸识别模组的固件升级文件下发给人脸识别模组。锁控在下发升级指令给人脸识别模组前,采用摘要算法对固件升级文件进行计算,得到第一校验数据,并将第一校验数据和升级指令一起加密打包发送给人脸识别模组。人脸识别模组对锁控发送来的数据进行解密,得到升级指令和第一校验数据,人脸识别模组进入待升级状态并将待升级状态反馈给锁控,以便于接收固件升级文件。锁控获悉人脸识别模组已进入待升级状态后,将固件升级文件拆分成若干个升级包并逐个加密,得到若干个加密升级包并发送给人脸识别模组。人脸识别模组逐个接收加密升级包并解密,得到固件升级文件并采用摘要算法对固件升级文件进行计算,得到第二校验数据。人脸识别模组比较第一校验数据和第二校验数据是否一致,只有一致的情况下,人脸识别模组才根据接收到的固件升级文件进行升级。需要注意的是,锁控和人脸识别模组使用的摘要算法必须是同一种摘要算法。在本实施例中,也可以将锁控替换为手机、电视等设备的芯片,在此对计算机设备或电子设备不做具体限制。
请参见图2,图2示出了本申请一实施例提供的固件升级方法的实现流程示意图。在本实施例中,固件升级方法由图1所示的模组执行实现。详述如下:
S201:接收主机发送的第一校验数据,并向主机反馈已收到校验数据;其中,第一校验数据由主机基于预设校验算法对固件升级文件进行校验数据计算得到。
其中,预设校验算法可以是消息摘要算法,如MD摘要算法、单向散列算法(Security Hash Algorithm,SHA)等。具体地,MD摘要算法包括如:MD2摘要算法、MD3摘要算法、MD4摘要算法或者MD5摘要算法等。具体地,通过消息摘要算法对固件升级文件进行校验数据计算后,得到校验数据包括消息摘要,例如,基于MD摘要算法得到的MD值,或者基于单向散列算法得到的多段消息值。
在本申请的实施例中,在进行固件升级之前,首先接收主机发送的加密校验数据,可以将该加密校验数据解密后进行升级状态,以便在接收到加密升级数据并对加密升级数据进行解密后,进一步完成对固件升级文件包括的各升级包的校验。或者,模组在接收到该加密校验数据后直接将该加密校验数据进行保存,在接收到加密升级数据后,对该加密校验数据进行解密,得到第一校验数据后,进入升级状态,再对加密升级数据进行解密,以便进一步完成对固件升级文件进行校验。
具体地,主机可以基于对称密钥算法对校验数据进行加密,得到加密校验数据。其中,对称密钥算法可以是基于高级加密标准(Advanced Encryption Standard,AES)的加解密算法,所采用的密钥长度可以为128位(16字节)、192位(24字节)或者256位(32字节)等。具体地,对称密钥算法的加密和解密使用的是同一个密钥串。
S202:依次接收主机发送的若干个升级包,并将若干个升级包重组得到固件升级文件。
需要说明的是,在本申请中,若需要的固件升级文件较大,例如,固件升级文件为100KB,则为了提升传输速率,主机通过在传输固件升级文件之前,将固件升级文件进行拆分,得到至少两个升级包。例如,将100KB的固件升级文件拆分为10个升级包,每个升级包的大小为10KB。对应地,依次对各升级包发送,可以提高升级包数据的传输效率。
具体地,如图3所示,图3是图2中步骤S202的具体实现流程示意图。由图3可知,在本申请的实施例中,S202包括S2021至S2025。详述如下:
S2021:接收主机发送的升级包。
其中,升级包包括:头部、数据区域和校验码。
S2022:查询当前接收的升级包的头部、数据区域和校验码。
具体地,可以通过查询当前接收到的升级包的头部、数据区域和校验码,对升级包进行完整性校验。具体地,为了提高查询效率,可以在查询到升级包的头部后,再确定升级包的数据区域和校验码是否为空;若查询不到升级包的头部,模组不会向主机反馈数据,主机将升级包发送给模组后在预设时间内没有收到模组反馈的数据,主机会认为发送的升级包丢失了,然后主机重新再把这个模组没有收到的升级包发送给模组,如果出现重复发送某个升级包的次数超过了预设次数,则升级失败。
S2023:根据当前接收的升级包的头部、数据区域和校验码,生成确认字符并反馈给主机。
在某些实施例中,由于采用较高码元传输速率进行数据传输,导致容易出现丢包现象,例如,采用1.5M波特率进行数据传输时,会因为在高速传输过程中串口线过长而产生数据丢包现象。为了防止在加密升级包传输过程中出现丢包现象,计算机设备在发送多个加密升级包时,采用逐个发送的策略,以解决由于串口线过长而导致的丢包现象。具体地,电子设备通过对接收到的加密升级包进行解密,得到升级包后,对升级包进行完整性校验,以防止有丢包现象出现。
具体地,模组通过对接收到的升级包进行头部、数据区域和校验码查询,以确定是否有丢包现象出现。
其中,查询当前接收的升级包的头部、数据区域和校验码,并根据当前接收的升级包的头部、数据区域和校验码,生成确认字符并反馈给主机,可以包括:查询到升级包的头部后,根据校验码校验数据区域的完整性;根据数据区域的完整性,生成对应的确认字符并反馈给主机。
具体地,可以通过校验码对数据区域的字符进行校验,以确定接收到的升级包中的数据区域完整或没有出错。其中,校验码可以是通过CRC数据校验方法生成的校验码,基于CRC数据校验方法生成校验码对数据区域的字符进行完整性校验。
应理解,当解析得到升级包的头部,而头部后面的数据区域存在连续为空的现象或者校验码区域存在为空的现象,则确定存在升级包中数据丢失的情况。对应地,可以通过退出接收数据的状态或者反馈数据丢失信息给主机,以告知主机数据包出现丢失的情况;而在解析得到升级包的头部,且头部后面的数据区域和校验码区域均不连续为空时,可以生成确认字符并反馈给主机,已告知主机进行下一个升级包的发送。
此外,模组在退出接收数据的状态后,可以将一些局部变量清零,在将局部变量清零后,接收数据的状态再转回到接收数据的状态中。
在本申请中,可以通过重复执行接收主机发送的升级包的步骤,直至接收完所有升级包。
S2024:接收到所有升级包后,将所有升级包重组得到固件升级文件。
应理解,当接收完成所有升级包后,对所有升级包进行组合后即为固件升级文件。
需要说明的是,在本申请中,模组为了方便对固件进行升级过程中,对第一校验数据和升级包的调用,在接收到第一校验数据以及升级包后,可以将第一校验数据以及升级包存储在随机存取存储器中。
S203:基于预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据。
其中,模组通过与主机采用相同的预设校验算法对固件升级文件进行校验数据计算,得到固件升级文件的第二校验数据。具体地,预设校验算法可以是基于单向散列算法,本实施例通过基于单向散列算法对固件升级文件进行校验数据计算,得到第二校验数据。
具体地,主机在向模组下发固件升级文件之前,可以与模组进行密钥串协商,进而通过协商的密钥串对固件文件进行加密,得到密文数据。模组在接收到固件升级文件后,可以基于相同的秘钥串对密文数据进行解密,得到固件文件,以提高主机与模组之间传输固件文件的安全性。例如,假设主机采用AES的加密函数为E,则C=E(K,P),其中,P为明文,K为密钥串,C为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出经过加密后的密文数据C。对应地,密文数据进行解密的过程可以表示为:P=D(K,C),其中,C为密文,K为密钥串,P为明文。也就是说,把密文C和密钥K作为AES的解密函数的参数输入,则解密函数会输出解密后的明文P。此外,为了防止对称密钥串泄露,在密钥串传输过程中,可以通过非对称密钥保护密钥串。应理解,接收计算机设备发送的加密升级数据,对加密升级数据进行解密,得到固件升级文件。
通过采用与计算机设备相同的预设校验算法对接收得到的固件升级文件进行校验数据计算,可以得到传输后的固件升级文件对应的第二校验数据。具体地,预设校验算法可以参考步骤S201中的描述,在此不再赘述。
S205:根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验。
由于第一校验数据是由主机采用预设校验算法对传输前的固件升级文件进行校验数据计算得到,而第二校验数据由模组采用相同的校验算法对传输后的固件升级文件进行校验数据计算得到,因此,可以根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验,以确定固件升级文件在传输过程中,是否被篡改或者被破坏。
示例性地,如图4所示,图4是图2中S205的具体实现流程示意图。由图4可知,在本实施例中,S205具体包括S2051至S2053。详述如下:
S2051:判断第一校验数据与第二校验数据是否一致。
S2052:若第一校验数据与第二校验数据一致,判定对固件升级文件的准确性校验通过;
S2053:若第一校验数据与第二校验数据不一致,判定对固件升级文件的准确性校验不通过。
S206:若校验通过,基于固件升级文件进行固件升级。
通过将第一校验数据与第二校验数据进行一致性比较,能够准确判断固件升级在传输过程中是否被破坏或者被篡改,以防止基于被破坏或者被篡改的固件升数据对固件进行升级,造成升级故障从而提高维护成本。
具体地,在校验通过后,可以将固件升级文件烧录在快闪存储器中,以完成对固件升级的固件升级。也就是说,基于固件升级文件进行固件升级,包括:将固件升级文件烧录在快闪存储器中。
通过上述分析可知,本申请实施例提供的固件升级方法,通过在接收固件升级文件之前,首先接收主机发送的第一校验数据后,向主机反馈已收到校验数据;这时模组可以进入固件升级状态,以便于专注于接收主机发送的升级包;其中,第一校验数据由主机基于预设校验算法对固件升级文件进行校验数据计算得到;然后在向主机反馈已收到校验数据后,依次接收主机发送的若干个升级包,将接收到的若干个升级包进行重组得到固件升级文件后,通过对固件升级文件基于与主机相同的预设校验算法进行校验数据计算,得到第二校验数据;其中,主机调用的预设校验算法可以存储在主机存储器中,模组调用的预设校验算法可以存储在模组存储器中,模组调用的预设校验算法优选存储在快闪存储器中,随机存取存储器的特点是易挥发性,即掉电失忆,快闪存储器允许在操作中多次擦或写,并具有非易失性。由于第一校验数据和第二校验数据分别为固件升级文件传输前后由主机和模组基于相同的校验算法计算得到,因此可以通过比较第一校验数据和第二校验数据,来准确判断固件升级文件在传输过程中是否被篡改或者被破坏,旨在提高固件升级过程中,防止利用已破坏或着篡改的升级包进行固件升级,降低固件升级过程中的维护成本。
请参见图5,图5示出了本申请另一实施例提供的固件升级方法的实现流程示意图。本申请实施例提供的固件升级方法可以由图1所示的主机执行实现,详述如下:
S501:基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据。
S502:将第一校验数据发送给模组。
S503:确认模组接收到第一校验数据后,将固件升级文件拆分为若干个升级包依次发送给模组。
其中,若干个升级包数据用于指示模组进行升级包数据重组,得到固件升级文件后,基于与主机相同的预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据,进一步根据第一校验数据和第二校验数据对固件升级文件进行准确性校验,并在校验通过后,基于固件升级文件进行固件升级。
需要说明的是,上述各步骤的具体实现过程,可以参考图2所示实施例中对应步骤的具体实现过程,在此不再赘述。
通过上述分析可知,本申请实施例提供的固件升级方法,首先通过主机对固件升级文件基于预设校验算法进行校验数据计算,得到第一校验数据之后,将第一校验数据发送至模组;然后在确认模组接收到第一校验数据后,将固件升级文件拆分为若干个升级包依次发送给模组,以使模组对各升级包进行组包得到固件升级文件后基于与主机相同的校验算法对固件升级文件进行校验数据计算,得到第二校验数据,进而基于第一校验数据与第二校验数据对固件升级文件进行校验。由于第一校验数据和第二校验数据分别为固件升级文件传输前后由主机和模组基于相同的校验算法计算得到,因此可以通过比较第一校验数据和第二校验数据,来准确判断固件升级文件在传输过程中是否被篡改或者被破坏,旨在提高固件升级过程中,防止模组利用已破坏或着篡改的升级包进行固件升级,降低固件升级过程中的维护成本。
请参见图6,图6示出了本申请实施例提供的固件升级方法的交互流程示意图。该固件升级方法由主机和模组交互完成。需要说明的是,各步骤的具体实现过程可以参见前面图2至图5所示实施例中对应的步骤,在此不再赘述。其中,固件升级方法的交互流程包括如下步骤:
S601:主机基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据。
S601:主机将第一校验数据发送给模组。
S603:模组接收主机发送的第一校验数据,并向主机反馈已收到校验数据。
S604:主机确认模组接收到第一校验数据后,将固件升级文件拆分为若干个升级包依次发送给模组。
S605:模组依次接收主机发送的若干个升级包,并将若干个升级包重组得到固件升级文件。
S606:模组基于预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据。
S607,模组根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验。
S608:模组在若校验通过,基于固件升级文件进行固件升级。
需要说明的是,上述各步骤的具体实现过程,可以参考图2所示实施例中对应步骤的具体实现过程,在此不再赘述。
下面将结合图7至图9对本申请实施例提供的固件升级方法所适用的装置或设备进行示例性说明。
如图7所示,图7是本申请实施例提供的电子装置的结构示意图。需要说明的是,本实施例提供的电子装置700可以设置在模组120中,用于完成模组的固件升级。具体地,本实施例提供的电子装置700包括:接收模块701、重组模块702、计算模块703、校验模块704以及升级模块705。其中,接收模块701,用于接收主机发送的第一校验数据,并向主机反馈已收到校验数据;其中,第一校验数据由主机基于预设校验算法对固件升级文件进行校验数据计算得到;重组模块702,用于依次接收主机发送的若干个升级包,并将若干个升级包重组得到固件升级文件;计算模块703,用于基于预设校验算法对固件升级文件进行校验数据计算,得到第二校验数据;校验模块704,用于根据第一校验数据与第二校验数据,对固件升级文件进行准确性校验;升级模块705,用于若校验通过,基于固件升级文件进行固件升级。
需要说明的是,上述各模块的功能可以由模组120内部的程序执行实现,也可以由硬件电路,或者程序与硬件电路的组合实现,各模块具有逻辑连接关系。也就是说,电子装置700可以是设置在模组120内部的程序或者硬件电路,还可以是程序与硬件电路的组合,具体在此不做限定。
图8是本申请实施例提供的计算机装置的结构示意图。需要说明的是,本实施例提供的计算机装置800可以设置在主机110中,用于完成计算机设备所具有的升级包传输功能。具体地,本实施例提供的计算机装置800包括:计算模块801、第一发送模块802以及第二发送模块803。其中,计算模块801,用于基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据;第一发送模块802,用于将计算模块801计算得到的第一校验数据发送给模组;第二发送模块803,用于确认模组接收到第一校验数据后,将固件升级文件拆分为若干个升级包依次发送给模组。
需要说明的是,上述各模块的功能可以由主机110内部的程序执行实现,也可以由硬件电路,或者程序与硬件电路的组合实现,各模块具有逻辑连接关系。也就是说,计算机装置800可以是设置在主机110内部的程序或者硬件电路,还可以是程序与硬件电路的组合,具体在此不做限定。
图9是本申请一实施例提供的固件升级设备的结构示意图。如图9所示,该实施例提供的固件升级设备可以是图1中的模组或者主机;
其中,该固件升级设备9包括:处理器90、存储器91以及存储在存储器91中并可在处理器90上运行的计算机程序92,例如固件升级程序。处理器90执行计算机程序92时实现上述任意固件升级方法实施例中的步骤,例如,该固件升级设备9为电子设备时,处理器90执行计算机程序92时实现图2所示的步骤201至步骤205,或者,该固件升级设备9为计算机设备时,处理器90执行计算机程序92时实现图5所示的步骤501至步骤503。或者,处理器90执行计算机程序92时对应实现上述各装置实施例中各单元的功能,例如图7所示模块701至705的功能。或者,图8所示模块801至804的功能。
需要说明的是,固件升级设备9中包括但不限于处理器90和存储器91。本领域技术人员可以理解,图9仅仅是固件升级设备9的示例,并不构成对固件升级设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如固件升级设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91可以是所述固件升级设备9的内部存储单元,例如固件升级设备9的硬盘或内存。所述存储器91也可以是所述固件升级设备9的外部存储设备,例如所述固件升级设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述固件升级设备9的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述一种漫游控制设备所需的其他程序和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
需要说明的是,上述装置/模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,既将所述装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上模块集成在一个模块中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到电子设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于监测到”。类似地,短语“如果确定”或“如果监测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦监测到[所描述条件或事件]”或“响应于监测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行篡改,或者对其中部分技术特征进行等同替换;而这些篡改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种固件升级方法,其特征在于,包括:
接收主机发送的第一校验数据,并向所述主机反馈已收到校验数据;其中,所述第一校验数据由所述主机基于预设校验算法对固件升级文件进行校验数据计算得到;
依次接收所述主机发送的若干个升级包,并将若干个所述升级包重组得到固件升级文件;
基于所述预设校验算法对所述固件升级文件进行校验数据计算,得到第二校验数据;
根据所述第一校验数据与所述第二校验数据,对所述固件升级文件进行准确性校验;
若校验通过,基于所述固件升级文件进行固件升级。
2.根据权利要求1所述的固件升级方法,其特征在于,所述依次接收所述主机发送的若干个升级包,并将若干个所述升级包重组得到固件升级文件,包括:
接收所述主机发送的所述升级包;
查询当前接收的升级包的头部、数据区域和校验码;
根据当前接收的升级包的所述头部、所述数据区域和所述校验码,生成确认字符并反馈给所述主机;
重复执行所述接收所述主机发送的升级包的步骤,直至接收完所有所述升级包;
接收到所有所述升级包后,将所有所述升级包重组得到固件升级文件。
3.如权利要求2所述的固件升级方法,其特征在于,所述查询当前接收的升级包的头部、数据区域和校验码,并根据当前接收的升级包的所述头部、所述数据区域和所述校验码,生成确认字符并反馈给所述主机,包括:
查询到所述升级包的头部后,根据所述校验码校验所述数据区域的完整性;
根据所述数据区域的完整性,生成对应的确认字符并反馈给所述主机。
4.如权利要求1所述的固件升级方法,其特征在于,所述基于所述预设校验算法对所述固件升级文件进行校验数据计算,得到第二校验数据,包括:
基于单向散列算法对所述固件升级文件进行校验数据计算,得到得到第二校验数据。
5.如权利要求1所述的固件升级方法,其特征在于,还包括:
将所述第一校验数据、所述升级包存储在随机存取存储器中。
6.如权利要求5所述的固件升级方法,其特征在于,所述若校验通过,基于所述固件升级文件进行固件升级,包括:
校验通过后,将所述固件升级文件烧录在快闪存储器中。
7.一种固件升级方法,其特征在于,包括:
基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据;
将所述第一校验数据发送给模组;
确认所述模组接收到所述第一校验数据后,将所述固件升级文件拆分为若干个升级包依次发送给所述模组。
8.一种电子设备,其特征在于,包括主机和模组;
所述主机基于预设校验算法对固件升级文件进行校验数据计算,得到第一校验数据;
所述主机将所述第一校验数据发送给所述模组;
所述模组接收所述第一校验数据,并向所述主机反馈已收到校验数据;
所述主机确认所述模组接收到所述第一校验数据后,将所述固件升级文件拆分为若干个升级包依次发送给所述模组;
所述模组依次接收所述主机发送的若干个升级包,并将若干个所述升级包重组得到固件升级文件;
所述模组基于所述预设校验算法对所述固件升级文件进行校验数据计算,得到第二校验数据;
所述模组根据所述第一校验数据与所述第二校验数据,对所述固件升级文件进行准确性校验;若校验通过,基于所述固件升级文件进行固件升级。
9.一种固件升级设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的固件升级方法,或者所述处理器执行所述计算机程序时实现如权利要求7所述的固件升级方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的固件升级方法,或者所述计算机程序被处理器执行时实现如权利要求8所述的固件升级方法。
CN202211374435.3A 2022-11-04 2022-11-04 固件升级方法、电子设备及存储介质 Pending CN115543390A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211374435.3A CN115543390A (zh) 2022-11-04 2022-11-04 固件升级方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211374435.3A CN115543390A (zh) 2022-11-04 2022-11-04 固件升级方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115543390A true CN115543390A (zh) 2022-12-30

Family

ID=84719818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211374435.3A Pending CN115543390A (zh) 2022-11-04 2022-11-04 固件升级方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115543390A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112001A (zh) * 2023-10-24 2023-11-24 北京傲星科技有限公司 一种板卡中软件升级方法及装置
CN117453261A (zh) * 2023-11-10 2024-01-26 珠海科创储能科技有限公司 设备的升级数据校验方法、存储介质及电子设备
CN117873540A (zh) * 2024-03-13 2024-04-12 成都星联芯通科技有限公司 前面板升级流程优化方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112001A (zh) * 2023-10-24 2023-11-24 北京傲星科技有限公司 一种板卡中软件升级方法及装置
CN117453261A (zh) * 2023-11-10 2024-01-26 珠海科创储能科技有限公司 设备的升级数据校验方法、存储介质及电子设备
CN117873540A (zh) * 2024-03-13 2024-04-12 成都星联芯通科技有限公司 前面板升级流程优化方法

Similar Documents

Publication Publication Date Title
CN115543390A (zh) 固件升级方法、电子设备及存储介质
CN111314274B (zh) 一种车载终端与中心平台双向认证方法及系统
CN109743176B (zh) 一种pos终端的证书更新方法、服务器及pos终端
US11321074B2 (en) Vehicle-mounted device upgrade method and related apparatus
CN109040063B (zh) 车辆ecu密钥的确定方法、装置、设备及存储介质
CN103095460B (zh) 一种智能卡安全通讯的方法
CN111355684B (zh) 一种物联网数据传输方法、装置、系统、电子设备及介质
CN110598429B (zh) 数据加密存储和读取的方法、终端设备及存储介质
CN108566368B (zh) 一种数据处理方法、服务器及诊断接头
CN110730224B (zh) 一种数据报送的方法及装置
CN112346759A (zh) 一种固件升级方法、装置及计算机可读存储介质
CN106656484B (zh) 一种pci密码卡驱动系统及其实现方法
CN112583594B (zh) 数据处理方法、采集设备和网关、可信平台及存储介质
CN114095277A (zh) 配电网安全通信方法、安全接入设备及可读存储介质
CN117097551A (zh) 工控系统通信协议安全增强方法、系统、设备及存储介质
CN109375938B (zh) 一种用于Linux嵌入式装置的安全升级控制系统、方法及程序
CN115909560A (zh) 数据加密方法、解密方法及门锁系统
CN115314386A (zh) 一种量子安全设备的固件升级系统
CN112905994B (zh) 一种远程漏洞补丁程序防护方法及系统
CN112751807B (zh) 安全通信方法、装置、系统和存储介质
CN114065302A (zh) 数据处理方法、装置、设备、介质和区块链网络
CN114257424A (zh) 基于电力专用芯片的数据包接收处理方法及装置
CN112839037A (zh) 一种配电网规约指令防篡改方法及系统
CN109194490B (zh) 一种配电网通信安全认证系统及方法
CN112600799A (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