CN113986296A - 一种固件升级方法、装置、电子设备和存储介质 - Google Patents
一种固件升级方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113986296A CN113986296A CN202111292506.0A CN202111292506A CN113986296A CN 113986296 A CN113986296 A CN 113986296A CN 202111292506 A CN202111292506 A CN 202111292506A CN 113986296 A CN113986296 A CN 113986296A
- Authority
- CN
- China
- Prior art keywords
- firmware
- upgrading
- partition
- compressed data
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
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
技术领域
本申请涉及通讯技术领域,具体涉及一种固件升级方法、装置、电子设备和存储介质。
背景技术
固件包括设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。固件是担任着一个系统最基础和最底层工作的软件。在硬件设备中,固件可以是硬件设备的“灵魂”,其决定着硬件设备的功能及性能。在一般的固件升级方法中,往往会把需要升级的固件下载到设备端中,然后重启设备端并直接运行下载的固件。如果下载的固件被破坏,设备端便不能正常启动,需要重新烧录设备端的固件才能使得设备端正常运行,这将降低固件升级的可靠性。
发明内容
本申请实施例提出了一种固件升级方法、装置、电子设备和存储介质,可以提高固件升级的可靠性。
本申请实施例提供了一种固件升级方法,包括:
接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据;
对所述数据存储分区的压缩数据进行校验处理;
当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
将所述解压后固件添加到升级分区中进行升级处理。
相应的,本申请实施例还提供了一种固件升级装置,包括:
读取单元,用于接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据;
校验单元,用于对所述数据存储分区的压缩数据进行校验处理;
解压单元,用于当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
升级单元,用于将所述解压后固件添加到升级分区中进行升级处理。
在一实施例中,所述读取单元,包括:
文件校验子单元,用于基于所述升级触发指令,对所述压缩数据对应的压缩文件进行校验处理;
长度读取子单元,用于当校验通过时,读取预设存储器中的数据长度;
长度校验子单元,用于对所述预设存储器的数据长度进行长度校验处理;
数据读取子单元,用于当所述长度校验通过时,读取数据存储分区的压缩数据。
在一实施例中,所述数据读取子单元,包括:
数量读取模块,用于当所述长度校验通过时,读取所述预设存储器的分区数量;
标识读取模块,用于基于所述分区数量,读取所述预设存储器中至少一个预设分区的标识信息;
第一确定模块,用于根据所述标识信息,从所述至少一个预设分区中确定数据存储分区;
数据读取模块,用于读取所述数据存储分区的压缩数据。
在一实施例中,所述校验单元,包括:
包头信息读取子单元,用于读取所述数据存储分区中压缩数据的包头信息;
包头信息校验子单元,用于对所述包头信息进行检验处理;
数据校验子单元,用于当所述包头信息校验通过时,对所述数据存储分区的压缩数据进行校验处理。
在一实施例中,所述解压单元,包括:
检测子单元,用于对所述升级分区进行检测,得到所述升级分区对应的升级标识;
匹配子单元,用于将所述升级标识和预设升级标识进行匹配,得到匹配结果;
解压子单元,用于基于所述匹配结果对所述压缩数据进行解压处理,得到解压后固件。
在一实施例中,所述解压子单元,包括:
识别模块,用于基于所述匹配结果,对所述压缩数据进行识别,得到压缩信息;
第二确定模块,用于基于所述压缩信息确定固件的压缩数据长度;
数据提取模块,用于从所述压缩数据中提取出和所述压缩数据长度相匹配的目标压缩数据;
解压模块,用于对所述目标压缩数据进行解压处理,得到所述解压后固件。
在一实施例中,所述升级单元,包括:
识别子单元,用于对所述解压后固件进行识别,得到所述解压后固件的数据长度;
数据清除子单元,用于基于所述数据长度对所述升级分区进行数据清除处理,得到处理后升级分区;
升级子单元,用于将所述解压后固件添加到所述处理后升级分区进行升级处理。
相应的,本申请实施例还提供一种电子设备,所述电子设备包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行本申请实施例任一提供的固件升级方法。
相应的,本申请实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例任一提供的固件升级方法。
本申请实施例可以接收升级触发指令,基于升级触发指令读取数据存储分区的压缩数据;对数据存储分区的压缩数据进行校验处理;当校验通过时,对压缩数据进行解压处理,得到解压后固件;将解压后固件添加到升级分区中进行升级处理,提高了固件升级的可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的固件升级方法的场景示意图;
图2是本申请实施例提供的固件升级方法的流程示意图;
图3是本申请实施例提供的固件升级方法的又一流程示意图;
图4是本申请实施例提供的固件升级方法的又一流程示意图;
图5是本申请实施例提供的固件升级装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,然而,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提出了一种固件升级方法,该固件升级方法可以由固件升级装置执行,该固件升级装置可以集成在电子设备中。其中,该电子设备可以包括终端以及服务器等中的至少一个。即该固件升级方法可以由终端执行,也可以由服务器执行。
其中,该终端可以包括个人电脑、平板电脑、智能电视、智能手机、智能家居、可穿戴电子设备、VR/AR设备、车载计算机等等。
其中,服务器可以为多个异构系统之间的互通服务器或者后台服务器,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器等等。
在一实施例中,如图1所示,固件升级装置可以集成在终端或服务器等电子设备上,以实施本申请实施例提出的固件升级方法。具体地,电子设备可以接收升级触发指令,基于升级触发指令读取数据存储分区的压缩数据;对数据存储分区的压缩数据进行校验处理;当校验通过时,对压缩数据进行解压处理,得到解压后固件;将解压后固件添加到升级分区中进行升级处理。
以下分别进行详细说明,需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例将从固件升级装置集成在电子设备的角度进行本申请实施例提出的固件升级方法进行描述。
如图2所示,提供了一种固件升级方法,具体流程包括:
101、接收升级触发指令,基于升级触发指令读取数据存储分区的压缩数据。
其中,升级触发指令包括触发电子设备中的固件进行升级的指令。
在一实施例中,电子设备有多种方式接收到升级触发指令。例如,当固件开发者设置了电子设备周期性地对固件进行升级时,电子设备便会周期性地接收到升级触发指令,并基于升级触发指令对固件进行升级。又例如,当用户触发了固件升级时,电子设备便会接收到升级触发指令。
在一实施例中,固件是指电子设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。其中,固件一般存储于电子设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片等存储器中,一般可由用户通过特定的刷新程序进行升级的程序。
在一实施例中,为了提高固件升级的可靠性,可以将EEPROM或FLASH等存储器划分成多个分区,每个分区都具有相应的功能。例如,可以将存储器划分成2个分区,其中,第一个分区用于运行设备的程序,第二个分区用于接收并保存升级的固件,等等。
在一实施例中,可以将存储器划分成四个分区,分别是数据存储分区、升级分区、地址存储分区和升级指示分区。例如,当存储器为FLASH存储器时,可以将FLASH划分为四个分区,分别是数据存储分区、升级分区、地址存储分区和升级指示分区。
其中,数据存储分区用于存储升级的固件。例如,电子设备中准备升级的固件可以存储到数据存储分区中。
其中,升级分区用于对升级的固件进行升级。例如,当电子设备进行固件升级时,可以将存储在数据存储分区中的固件添加到升级分区中,通过在升级分区中运行该固件从而实现固件升级。
其中,地址存储分区用于存储每个分区的地址。通过地址存储分区,电子设备可以知道存储器是被如何划分的,且每个分区位于存储器的什么位置。
其中,升级指示分区用于指示固件的升级流程该如何执行。例如,本申请实施例提出固件升级方法可以存储在升级指示分区当中。当电子设备升级固件时,电子设备可以读取升级指示分区中的数据,从而知道该按照什么样的步骤实现固件的升级。
在一实施例中,当电子设备进行固件升级时,电子设备可以读取地址存储分区中的数据,从而知道存储器是如何划分的,以及每个分区在存储器当中的位置。然后,电子设备可以读取升级指示分区中的数据,从而知道该如何实现对固件的升级。例如,当升级指示分区中规定将存储在数据存储分区中的固件添加到升级分区中进行升级处理时,电子设备便会在数据存储分区中读取升级的固件,并将该固件添加到升级分区中进行升级处理。
在一实施例中,升级的固件一般是开发人员通过服务器发送到固件升级装置中,从而使得固件升级装置可以进行基于升级的固件进行升级。其中,为了提高固件传输的速率和安全性,开发人员往往会在云服务器对固件进行压缩和加密,并将压缩和加密后的固件传输到固件升级装置。
其中,在对固件进行压缩时,可以采用多种方式对固件进行压缩。例如,可以采用quicklz压缩算法对固件进行压缩。其中,quicklz是一种快速的压缩算法。通过利用quicklz压缩算法对固件进行压缩,可以提高固件压缩的效率,并且节省存储固件所需要的存储空间。
其中,在对固件进行加密时,可以采用多种方式对固件进行加密。例如,可以采用MD5信息摘要算法(MD5 Message-Digest Algorithm,MD5)和安全散列算法2(Secure HashAlgorithm 2,SHA2)等加密算法对固件进行加密。例如,云服务器把需要升级的固件进行quicklz压缩后,可以对压缩后固件进行MD5加密。然后,云服务器还可以对压缩后得到的整个压缩文件再进行MD5加密,并将最后生成的校验值、压缩和加密后得到的文件发送给电子设备。
因此,当电子设备对数据存储分区进行数据读取时,会读取到升级固件对应的压缩数据。即,压缩数据可以包括压缩和加密后的固件。
在一实施例中,在电子设备接收到升级触发指令之后,可以有多种方式读取数据存储分区的压缩数据。例如,电子设备可以对数据存储分区进行遍历,从而得到压缩数据。又例如,升级触发指令可以携带固件的标识,然后电子设备可以根据固件的标识在数据存储分区中快速地读取到压缩数据。
102、对数据存储分区的压缩数据进行校验处理。
在一实施例中,由于开发人员会对固件进行加密和压缩之后才将固件发送至固件升级装置。因此,固件升级装置在对固件进行升级时,需要对数据存储分区的压缩数据进行检验处理,从而判断该压缩数据是否是需要升级的固件。
在一实施例中,可以有多种方式对数据存储分区的压缩数据进行校验处理。例如,当开发人员采用MD5算法对固件进行加密时,可以采用MD5算法对应的校验信息对压缩数据进行校验。又例如,当开发人员采用SHA2算法对固件进行加密时,可以采用SHA2算法对应的校验信息对压缩数据进行校验。又例如,还可以采用循环冗余校验算法(CyclicRedundancy Check,CRC)对压缩数据进行校验,等等。
在一实施例中,通过对数据存储分区的压缩数据进行校验,可以提高固件升级的可靠性。只有校验通过的压缩数据,电子设备才会对压缩数据进行解压,得到解压后固件,并将解压后固件添加到升级分区中进行升级,使得在升级分区中升级的固件是安全可靠的。
103、当校验通过时,对压缩数据进行解压处理,得到解压后固件。
在一实施例中,当校验通过时,电子设备可以对压缩数据进行解压处理,得到解压后固件(相当于解压后固件)。其中,电子设备对压缩数据进行解压处理的方式和开发人员对固件进行压缩的方式相对应。
例如,开发人员采用了quicklz的方式对固件进行压缩,则电子设备可以采用quicklz对应的解压方式对压缩数据进行解压处理,从而得到解压后固件。
104、将解压后固件添加到升级分区中进行升级处理。
在一实施例中,在得到解压后固件之后,电子设备可以将解压后固件添加到升级分区中进行升级处理,从而实现固件的升级。
本申请实施例提出了一种固件升级方法,该方法包括:接收升级触发指令,基于升级触发指令读取数据存储分区的压缩数据;对数据存储分区的压缩数据进行校验处理;当校验通过时,对压缩数据进行解压处理,得到解压后固件;将解压后固件添加到升级分区中进行升级处理。本申请实施例通过将存储器划分出数据存储分区和升级分区。然后,令固件存储在数据存储分区,并在需要对固件进行升级处理时在数据存储分区对固件进行校验。当固件校验通过时,电子设备才会将解压后固件添加到升级分区中进行升级,从而使得电子设备在对固件升级时,可以避免对存在问题的固件进行升级,从而提高了对固件进行升级的可靠性。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
本申请实施例将以固件升级方法集成在终端上为例来介绍本申请实施例方法。具体的,如图3所示,本申请实施例提出的固件升级方法的流程可以包括:
201、终端接收升级触发指令,基于升级触发指令读取数据存储分区的压缩数据。
在一实施例中,终端有多种方式接收到升级触发指令。例如,当固件开发者设置了终端周期性地对固件进行升级时,终端便会周期性地接收到升级触发指令,并基于升级触发指令对固件进行升级。又例如,当用户触发了固件升级时,终端便会接收到升级触发指令。
在一实施例中,终端在接收到升级触发指令之后,可以基于升级触发指令读取数据存储分区的压缩数据。
其中,由于开发人员对固件进行加密处理,因此,为了提高安全性和可靠性,终端在读取数据存储分区的压缩数据时,可以首先对压缩数据对应的压缩文件进行校验处理,只有校验通过时才会读取数据存储分区的压缩数据。具体的,步骤“基于升级触发指令读取数据存储分区的压缩数据”,可以包括:
基于升级触发指令,对压缩数据对应的压缩文件进行校验处理;
当校验通过时,读取预设存储器中的数据长度;
对预设存储器的数据长度进行长度校验处理;
当长度校验通过时,读取数据存储分区的压缩数据。
在一实施例中,开发人员可以对固件压缩后得到的整个压缩文件进行加密,因此,如图4所示,终端可以首先对压缩数据对应压缩文件进行校验处理。
例如,当开发人员利用MD5算法对整个压缩文件进行加密时,终端可以基于MD5算法加密后得到的MD5校验值对压缩文件进行校验处理。譬如,终端可以提取压缩文件对应的校验信息,然后将压缩文件对应的校验信息和预设MD5校验值进行匹配。当压缩文件对应的校验信息和预设MD5校验值相匹配时,说明压缩文件通过校验。而当压缩文件的对应的校验信息和预设MD5校验值不相匹配时,说明压缩文件未通过校验。当压缩文件未通过校验时,终端便不会对固件进行升级,并会给云服务器发送固件异常消息,从而获取新的固件。
在一实施例中,由于可以将终端中的存储器划分出数据存储分区和升级分区,因此,当压缩文件的校验通过时,终端还可以对预设存储器(相当于终端的存储器)进行校验。通过对预设存储器进行校验,可以判断预设存储中每个分区的地址是否存在被恶意篡改的情况。具体的,终端可以读取预设存储器中的数据长度;对预设存储器的数据长度进行校验处理;当长度校验通过时,读取数据存储分区的压缩数据。
其中,可以采用多种方式对预设存储器的数据长度进行校验处理。例如,如图4所示,可以采用CRC对预设存储器的数据长度进行校验处理,当校验通过时,终端便会读取数据压缩分区的压缩数据。
在一实施例中,由于预设存储器被划分为多个分区,因此终端在读取数据压缩分区的压缩数据时,终端可以读取预设存储器的分区数量;基于分区数据,读取预设存储器中只是一个预设分区的标识信息;然后根据标识信息读取数据存储分区的预设数据。具体的,步骤“当长度校验通过时,读取数据存储分区的压缩数据”,包括:
当长度校验通过时,读取预设存储器的分区数量;
基于分区数量,读取预设存储器中至少一个预设分区的标识信息;
根据标识信息,从至少一个预设分区中确定数据存储分区;
读取数据存储分区的压缩数据。
例如,当长度校验通过时,终端便会读取预设存储器的分区数量,得到预设存储器被划分为了多少个分区。然后,终端便可以基于分区数量,读取预设存储器中预设分区的标识信息。例如,终端读取到预设存储器的分区数量为4,从而知道了预设存储器被划分为了4个分区。
然后,终端可以依次读取每个分区的标识信息,并根据标识信息从至少有给预设分区中确定数据存储分区。例如,终端可以将每个分区的标识信息和预设标识信息进行匹配。当某个分区的标识信息和预设标识信息相匹配时,则可以将该分区确定为数据存储分区。其中,每个分区的标识信息可以是每个分区在预设存储器中的地址信息。
在确定了数据存储分区之后,终端便可以读取数据存储分区的压缩数据。
202、终端对数据存储分区的压缩数据进行校验处理。
在一实施例中,终端在读取到数据存储分区的压缩数据之后,可以对数据存储分区的压缩数据进行校验处理。具体的,步骤“对数据存储分区的压缩数据进行校验处理”,可以包括:
读取数据存储分区中压缩数据的包头信息;
对包头信息进行检验处理;
当包头信息校验通过时,对数据存储分区的压缩数据进行校验处理。
其中,压缩数据的包头信息可以包括说明压缩数据属性的信息。例如,包头信息可以包括压缩数据的来源、包头信息的大小等等。例如,当压缩数据为IP数据包时,包头信息可以包括源IP地址、目标IP地址和IP包头长度,等等。
在一实施例中,如图4所示,终端可以对压缩数据的包头信息进行校验。当包头信息的校验通过时,终端可以再对数据存储分区的压缩数据进行校验。
其中,在对压缩数据的包头信息校验时,终端可以采用多种方式对包头信息进行校验。例如,终端可以采用CRC的方式对包头信息进行校验,等等。例如,可以利用CRC的方式对包头信息进行校验,得到包头信息对应的校验值。然后,将包头信息CRC校验后得到的校验值和预设校验值进行匹配。当包头信息CRC校验后得到的校验值和预设校验值相匹配时,说明包头信息校验通过。而当包头信息CRC校验后得到的校验值和预设校验值不相匹配时,说明包头信息未通过校验,此时终端便会停止会固件的升级,并发送固件异常信息给云服务器。
在一实施例中,当包头信息校验通过时,可以对数据存储分区的压缩数据进行校验处理。其中,也有多种方式可以对压缩数据进行校验处理。例如,当开发人员采用MD5算法对固件进行加密时,终端可以采用MD5算法对压缩数据进行校验。例如,终端可以对压缩数据的大小、压缩数据的版本信息等等进行校验。当压缩数据的校验通过时,终端便可以对压缩数据进行解压处理,并将解压后固件添加到升级分区中进行升级处理。
203、当校验通过时,终端对压缩数据进行解压处理,得到解压后固件。
在一实施例中,由于开发人员会对固件进行压缩,因此,当校验通过时,终端可以对压缩数据进行解压处理,得到解压后固件。
其中,由于解压后固件会添加到升级分区中,因此终端可以首先对升级分区进行检测,从而判断升级分区是否具备对固件进行升级的条件。具体的,步骤“当校验通过时,对压缩数据进行解压处理,得到解压后固件”,可以包括:
对升级分区进行检测,得到升级分区对应的升级标识;
将升级标识和预设升级标识进行匹配,得到匹配结果;
基于匹配结果对压缩数据进行解压处理,得到解压后固件。
其中,升级分区的升级标识为用于判断升级分区当前的升级状态的标识。通过升级标识,可以判断出升级分区当前是否具备对固件进行升级的条件。例如,当升级分区的升级标识为“False”时,可以说明升级分区当前不具备对固件进行升级的条件。又例如,当升级分区的升级标识为“True”时,可以说明升级分区当前具备对固件进行升级的条件。
在一实施例中,如图4所示,在对升级分区进行检测得到升级标识之后,可以将升级标识和预设升级标识进行匹配。其中,当升级标识和预设升级标识相匹配时,终端可以基于匹配结果对压缩数据进行解压处理,得到解压后固件。例如,规定升级分区的升级标识为“0x464c4147”时,升级分区才具备对固件进行升级的条件。因此,终端可以将升级标识和“0x464c4147”相匹配,当升级标识和“0x464c4147”相匹配时,终端可以对压缩数据进行解压处理,得到解压后固件。
而当升级标识和预设升级标识不相匹配时,说明升级分区还不具备对固件进行升级的条件。然后,终端可以间隔一定的时间再对升级分区的升级标志进行检测,直至升级标识和预设升级标识相匹配时,终端便会对压缩数据进行解压处理,得到解压后固件。
在一实施例中,对压缩数据进行解压处理的方式一般和对固件进行压缩的方式相对应。例如,当开发人员采用quicklz压缩算法对固件进行压缩时,终端可以采用quicklz解压算法对压缩数据进行解压。
在一实施例中,在对压缩数据进行解压时,可以对压缩数据进行识别,得到压缩信息;基于压缩信息确定压缩数据的数据长度;然后根据数据长度对压缩数据进行解压。具体的,步骤“基于匹配结果对压缩数据进行解压处理,得到解压后固件”,可以包括:
基于匹配结果,对压缩数据进行识别,得到压缩信息;
基于压缩信息确定固件的压缩数据长度;
从压缩数据中提取出和压缩数据长度相匹配的目标压缩数据;
对目标压缩数据进行压缩处理,得到解压后固件。
其中,压缩信息包括记录了固件被压缩时需要遵循的规则的信息。例如,开发人员在采用quicklz压缩算法对固件进行压缩时,会不断地将固件的9个字节进行压缩,得到压缩值。其中,该9个字节可以为压缩信息。因此,终端可以对压缩数据进行识别,得到压缩数据是按照什么规律进行压缩的。
在一实施例中,当对固件进行压缩时,压缩数据往往除了携带固件原始的信息之外,还会携带一些额外的信息。例如,压缩数据的校验信息、压缩信息,等等。因此,为了提高数据存储分区的存储空间,终端可以确定固件的压缩数据长度,然后对压缩数据长度对应的目标压缩数据进行解压,得到解压后固件。其中,固件的压缩数据长度包括固件压缩后不包括其它冗余信息的数据长度。
在一实施例中,终端可以基于压缩信息确定固件的压缩数据长度。例如,终端可以基于压缩信息和固件的原始数据长度确定压缩数据中固件的压缩数据长度。例如,固件的原始数据长度为99字节,压缩信息为9字节,则固件的压缩数据长度为11字节。
在一实施例中,如图4所示,在确定了固件的压缩数据长度之后,终端可以从压缩数据中提取出和压缩数据长度相匹配的目标压缩数据。然后,终端可以对目标压缩数据进行压缩处理,得到解压后固件。
204、终端将解压后固件添加到升级分区中进行升级处理。
在一实施例中,终端得到解压后固件后,便可也将解压后固件添加到升级分区中进行升级处理。具体的,步骤“将解压后固件添加到升级分区中进行升级处理”,可以包括:
对解压后固件进行识别,得到解压后固件的数据长度;
基于数据长度对升级分区进行数据清除处理,得到处理后升级分区;
将解压后固件添加到处理后升级分区进行升级处理。
其中,为了避免升级分区的空间不足,可以基于解压后固件的数据长度对升级分区进行数据清除处理,得到升级后分区。然后,将解压后固件添加到处理后升级分区进行升级处理
例如,可以判断解压后固件的数据长度和固件的原始数据长度是否匹配。若匹配,说明压缩数据已经解压完毕,此时可以对升级分区进行数据清除处理,并将解压后固件添加到处理后升级分区中进行升级处理。
而当解压后固件的数据长度和固件的原始数据长度不相匹配时,说明压缩数据还未解压完,此时,终端扔需要继续对压缩数据进行解压。
其中,在处理后升级分区对解压后固件进行升级处理时,终端可以在处理后升级分区启动系统运行解压后固件,从而使得解压后固件的信息可以覆盖原始的信息,从而实现升级过程。
本申请实施例提出了一种固件升级方法,该方法包括:终端接收升级触发指令,基于升级触发指令读取数据存储分区的压缩数据;终端对数据存储分区的压缩数据进行校验处理;当校验通过时,终端对压缩数据进行解压处理,得到解压后固件;终端将解压后固件添加到升级分区中进行升级处理。本申请实施例通过将存储器划分出数据存储分区和升级分区。然后,令固件存储在数据存储分区,并在需要对固件进行升级处理时在数据存储分区对固件进行校验。当固件校验通过时,终端才会将解压后固件添加到升级分区中进行升级,从而使得终端在对固件升级时,可以避免对存在问题的固件进行升级,从而提高了对固件进行升级的可靠性。
其中,终端在读取数据存储分区的压缩数据时,终端会分别对压缩数据对应的压缩文件和预设存储器的数据长度进行校验,只有两次校验都通过时,终端才会读取数据存储分区的压缩数据,从而避免终端读取到异常的压缩数据,提高了固件升级的安全性。接下来,终端还会对压缩数据的包头信息和压缩数据本身进行校验,只有这两次校验通过时,固件的升级过程才会继续。否则,终端将会给服务器发送压缩数据异常的消息。本申请实施例通过对压缩数据进行四次校验,可以有效地提高对固件进行升级的可靠性和安全性,避免对异常的固件进行升级,从而损坏终端的系统。
为了更好地实施本申请实施例提供的固件升级方法,在一实施例中还提供了一种固件升级装置,该固件升级装置可以集成于电子设备中。其中名词的含义与上述固件升级方法中相同,具体实现细节可以参考方法实施例中的说明。
在一实施例中,提供了一种固件升级装置,该固件升级装置具体可以集成在电子设备,如图5所示,该固件升级装置包括:读取单元301、校验单元302、解压单元303和升级单元304,具体如下:
读取单元301,用于接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据;
校验单元302,用于对所述数据存储分区的压缩数据进行校验处理;
解压单元303,用于当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
升级单元304,用于将所述解压后固件添加到升级分区中进行升级处理。
在一实施例中,所述读取单元301,包括:
文件校验子单元,用于基于所述升级触发指令,对所述压缩数据对应的压缩文件进行校验处理;
长度读取子单元,用于当校验通过时,读取预设存储器中的数据长度;
长度校验子单元,用于对所述预设存储器的数据长度进行长度校验处理;
数据读取子单元,用于当所述长度校验通过时,读取数据存储分区的压缩数据。
在一实施例中,所述数据读取子单元,包括:
数量读取模块,用于当所述长度校验通过时,读取所述预设存储器的分区数量;
标识读取模块,用于基于所述分区数量,读取所述预设存储器中至少一个预设分区的标识信息;
第一确定模块,用于根据所述标识信息,从所述至少一个预设分区中确定数据存储分区;
数据读取模块,用于读取所述数据存储分区的压缩数据。
在一实施例中,所述校验单元302,包括:
包头信息读取子单元,用于读取所述数据存储分区中压缩数据的包头信息;
包头信息校验子单元,用于对所述包头信息进行检验处理;
数据校验子单元,用于当所述包头信息校验通过时,对所述数据存储分区的压缩数据进行校验处理。
在一实施例中,所述解压单元303,包括:
检测子单元,用于对所述升级分区进行检测,得到所述升级分区对应的升级标识;
匹配子单元,用于将所述升级标识和预设升级标识进行匹配,得到匹配结果;
解压子单元,用于基于所述匹配结果对所述压缩数据进行解压处理,得到解压后固件。
在一实施例中,所述解压子单元,包括:
识别模块,用于基于所述匹配结果,对所述压缩数据进行识别,得到压缩信息;
第二确定模块,用于基于所述压缩信息确定固件的压缩数据长度;
数据提取模块,用于从所述压缩数据中提取出和所述压缩数据长度相匹配的目标压缩数据;
解压模块,用于对所述目标压缩数据进行解压处理,得到所述解压后固件。
在一实施例中,所述升级单元304,包括:
识别子单元,用于对所述解压后固件进行识别,得到所述解压后固件的数据长度;
数据清除子单元,用于基于所述数据长度对所述升级分区进行数据清除处理,得到处理后升级分区;
升级子单元,用于将所述解压后固件添加到所述处理后升级分区进行升级处理。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
通过上述的固件升级装置可以提高固件升级的可靠性。
本申请实施例还提供一种电子设备,该电子设备可以包括终端或服务器;比如电子设备可以为服务器,如固件升级服务器等。如图6所示,其示出了本申请实施例所涉及的终端的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据,其中,所述压缩数据由固件压缩得到;
对所述数据存储分区的压缩数据进行校验处理;
当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
将所述解压后固件添加到升级分区中进行升级处理。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序应用或计算机程序,该计算机程序应用或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中各种可选实现方式中提供的方法。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种固件升级方法中的步骤。例如,该计算机程序可以执行如下步骤:
接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据,其中,所述压缩数据由固件压缩得到;
对所述数据存储分区的压缩数据进行校验处理;
当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
将所述解压后固件添加到升级分区中进行升级处理。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种固件升级方法中的步骤,因此,可以实现本申请实施例所提供的任一种固件升级方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种固件升级方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种固件升级方法,其特征在于,包括:
接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据,其中,所述压缩数据由固件压缩得到;
对所述数据存储分区的压缩数据进行校验处理;
当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
将所述解压后固件添加到升级分区中进行升级处理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述升级触发指令读取数据存储分区的压缩数据,包括:
基于所述升级触发指令,对所述压缩数据对应的压缩文件进行校验处理;
当校验通过时,读取预设存储器中的数据长度;
对所述预设存储器的数据长度进行长度校验处理;
当所述长度校验通过时,读取数据存储分区的压缩数据。
3.根据权利要求2所述的方法,其特征在于,所述当所述长度校验通过时,读取数据存储分区的压缩数据,包括:
当所述长度校验通过时,读取所述预设存储器的分区数量;
基于所述分区数量,读取所述预设存储器中至少一个预设分区的标识信息;
根据所述标识信息,从所述至少一个预设分区中确定数据存储分区;
读取所述数据存储分区的压缩数据。
4.根据权利要求1所述的方法,其特征在于,所述对所述数据存储分区的压缩数据进行校验处理,包括:
读取所述数据存储分区中压缩数据的包头信息;
对所述包头信息进行检验处理;
当所述包头信息校验通过时,对所述数据存储分区的压缩数据进行校验处理。
5.根据权利要求1所述的方法,其特征在于,所述当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件,包括:
对所述升级分区进行检测,得到所述升级分区对应的升级标识;
将所述升级标识和预设升级标识进行匹配,得到匹配结果;
基于所述匹配结果对所述压缩数据进行解压处理,得到解压后固件。
6.根据权利要求5所述的方法,其特征在于,所述基于所述匹配结果对所述压缩数据进行解压处理,得到解压后固件,包括:
基于所述匹配结果,对所述压缩数据进行识别,得到压缩信息;
基于所述压缩信息确定固件的压缩数据长度;
从所述压缩数据中提取出和所述压缩数据长度相匹配的目标压缩数据;
对所述目标压缩数据进行解压处理,得到所述解压后固件。
7.根据权利要求1所述的方法,其特征在于,所述将所述解压后固件添加到升级分区中进行升级处理,包括:
对所述解压后固件进行识别,得到所述解压后固件的数据长度;
基于所述数据长度对所述升级分区进行数据清除处理,得到处理后升级分区;
将所述解压后固件添加到所述处理后升级分区进行升级处理。
8.一种固件升级装置,其特征在于,包括:
读取单元,用于接收升级触发指令,基于所述升级触发指令读取数据存储分区的压缩数据;
校验单元,用于对所述数据存储分区的压缩数据进行校验处理;
解压单元,用于当所述校验通过时,对所述压缩数据进行解压处理,得到解压后固件;
升级单元,用于将所述解压后固件添加到升级分区中进行升级处理。
9.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有计算机程序,所述处理器用于运行所述存储器内的计算机程序,以执行权利要求1至7任一项所述的固件升级方法。
10.一种存储介质,其特征在于,所述存储介质存储有多条计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1至7任一项所述的固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111292506.0A CN113986296A (zh) | 2021-11-03 | 2021-11-03 | 一种固件升级方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111292506.0A CN113986296A (zh) | 2021-11-03 | 2021-11-03 | 一种固件升级方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986296A true CN113986296A (zh) | 2022-01-28 |
Family
ID=79746006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111292506.0A Pending CN113986296A (zh) | 2021-11-03 | 2021-11-03 | 一种固件升级方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986296A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225490A (zh) * | 2023-01-30 | 2023-06-06 | 无锡沐创集成电路设计有限公司 | 存储器固件的升级方法、升级装置、电子设备及介质 |
CN117931252A (zh) * | 2024-03-21 | 2024-04-26 | 成都千嘉科技股份有限公司 | 超声波燃气表的信息传输方法和传输系统 |
-
2021
- 2021-11-03 CN CN202111292506.0A patent/CN113986296A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225490A (zh) * | 2023-01-30 | 2023-06-06 | 无锡沐创集成电路设计有限公司 | 存储器固件的升级方法、升级装置、电子设备及介质 |
CN116225490B (zh) * | 2023-01-30 | 2023-12-22 | 无锡沐创集成电路设计有限公司 | 存储器固件的升级方法、升级装置、电子设备及介质 |
CN117931252A (zh) * | 2024-03-21 | 2024-04-26 | 成都千嘉科技股份有限公司 | 超声波燃气表的信息传输方法和传输系统 |
CN117931252B (zh) * | 2024-03-21 | 2024-06-11 | 成都千嘉科技股份有限公司 | 超声波燃气表的信息传输方法和传输系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN110716895B (zh) | 目标数据归档方法、装置、计算机设备及介质 | |
CN106940651B (zh) | Pos终端软件升级方法和装置 | |
CN113986296A (zh) | 一种固件升级方法、装置、电子设备和存储介质 | |
CN113342745A (zh) | 一种镜像文件的校验方法、装置、电子设备及存储介质 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN112286565B (zh) | 一种基于存储容器的嵌入式系统差分升级方法 | |
CN112765597A (zh) | 一种软件安装包检测方法和装置 | |
CN111857758A (zh) | 应用部署方法、装置及介质 | |
CN116339780A (zh) | 一种固件升级方法、电子设备 | |
CN112751782B (zh) | 基于多活数据中心的流量切换方法、装置、设备及介质 | |
CN116743619B (zh) | 网络服务的测试方法、装置、设备及存储介质 | |
CN113037850A (zh) | 一种应用程序升级方法、装置、电子设备及存储介质 | |
CN111353150B (zh) | 一种可信启动方法、装置、电子设备及可读存储介质 | |
CN112882743A (zh) | 一种软件升级的方法 | |
CN113031997A (zh) | 升级包生成及管理方法、装置、计算机设备及存储介质 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
CN111722994A (zh) | 一种任务请求的响应方法及设备 | |
CN111190858B (zh) | 软件信息存储方法、装置、设备和存储介质 | |
CN114780122A (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN113515299A (zh) | 软件开发工具包sdk热升级方法、装置、设备及存储介质 | |
CN112445705A (zh) | 软件运行系统、方法、装置、计算机设备和存储介质 | |
CN113127860A (zh) | 可执行文件的检测方法、装置、终端及存储介质 | |
CN105354487B (zh) | 应用监控处理方法、装置及终端设备 | |
CN106021367B (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 |