CN113114730B - 升级方法、装置、终端设备及存储介质 - Google Patents

升级方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN113114730B
CN113114730B CN202110301007.7A CN202110301007A CN113114730B CN 113114730 B CN113114730 B CN 113114730B CN 202110301007 A CN202110301007 A CN 202110301007A CN 113114730 B CN113114730 B CN 113114730B
Authority
CN
China
Prior art keywords
partition
image
mirror image
version
target
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.)
Active
Application number
CN202110301007.7A
Other languages
English (en)
Other versions
CN113114730A (zh
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.)
Shenzhen Chenbei Technology Co Ltd
Original Assignee
Shenzhen Chenbei 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 Shenzhen Chenbei Technology Co Ltd filed Critical Shenzhen Chenbei Technology Co Ltd
Priority to CN202110301007.7A priority Critical patent/CN113114730B/zh
Publication of CN113114730A publication Critical patent/CN113114730A/zh
Application granted granted Critical
Publication of CN113114730B publication Critical patent/CN113114730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种升级方法,包括:当接收到启动终端设备的指令时,启动引导程序,并读取配置文件中的升级标识,升级标识用于指示是否有存储升级版本的镜像;若升级标识指示有存储升级版本的镜像时,读取配置文件中的启动标识,启动标识用于指示启动目标镜像分区,目标镜像分区为第一分区与第二分区中有存储升级版本的镜像的分区;对目标镜像分区中升级版本的镜像执行第一校验;若第一校验成功,则启动目标镜像分区中升级版本的镜像,并修改升级标识为指示没有存储升级版本的镜像。该升级方法提高了安全启动的概率。此外,还提出了一种升级装置、终端设备及存储介质。

Description

升级方法、装置、终端设备及存储介质
技术领域
本申请涉及镜像升级技术领域,具体涉及一种升级方法、装置、终端设备及存储介质。
背景技术
设备的OTA(Over-the-air programming,在线升级)过程是对镜像进行擦写的过程,如果镜像擦写的过程中出现异常,那么设备很可能无法再次启动(俗称变砖)。一般情况下,设备出现这种情况后只能返厂重新烧录镜像。这无疑会造成很差的口碑和更高的维护成本。因此,亟待需要一种安全的升级方法。
发明内容
基于此,有必要针对上述问题,提出一种安全的升级方法、装置、终端设备及存储介质。
为实现上述目的,本申请第一方面提供一种升级方法,应用于终端设备,所述终端设备的存储器包括非易失性存储器和内存储器,所述非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;
所述方法包括:
当接收到启动所述终端设备的指令时,启动所述引导程序,并读取所述配置文件中的所述升级标识,所述升级标识用于指示是否有存储升级版本的镜像;
若所述升级标识指示有存储升级版本的镜像时,读取所述配置文件中的启动标识,所述启动标识用于指示启动目标镜像分区,所述目标镜像分区为所述第一分区与所述第二分区中有存储升级版本的镜像的分区;
对所述目标镜像分区中所述升级版本的镜像执行第一校验;
若所述第一校验成功,则启动所述目标镜像分区中所述升级版本的镜像,并修改所述升级标识为指示没有存储升级版本的镜像。
在其中一个实施例中,所述方法还包括:若所述第一校验失败,则启动非目标镜像分区中存储的镜像,并修改所述启动标识为指示启动所述非目标镜像分区;其中,所述非目标镜像分区为存储原版本的镜像的分区;当所述目标镜像分区为第一分区时,所述非目标镜像分区为第二分区,当所述目标镜像分区为第二分区时,所述非目标镜像分区为第一分区。
在其中一个实施例中,所述对目标镜像分区中所述升级版本的镜像执行第一校验,包括:将所述目标镜像分区中所述升级版本的镜像加载至所述内存储器中;计算加载至内存储器中的镜像对应的第一校验码;将所述第一校验码与所述镜像升级文件头部存储的第一标准校验码进行比对;若比对一致,则判定所述第一校验成功;若比对不一致,则判定所述第一校验失败。
在其中一个实施例中,所述非易失性存储器还包括:用户数据分区,所述用户数据分区用于存储用户数据,所述第一分区和所述第二分区共用所述用户数据分区。
在其中一个实施例中,所述方法还包括:当启动所述目标镜像分区中所述升级版本的镜像时,将所述用户数据分区挂载在所述升级版本的镜像包含的文件系统的顶层目录中。
在其中一个实施例中,在接收到启动所述终端设备的指令之前,所述方法还包括:接收服务器发送的升级版本的镜像,将所述升级版本的镜像存入所述内存储器中;对所述内存储器中的所述升级版本的镜像执行第二校验,所述第二校验用于校验所述升级版本的镜像是否下载正确;若所述第二校验成功,读取当前的启动标识,并将所述当前的启动标识未指示的分区确定为所述目标镜像分区;将所述升级版本的镜像写入到所述目标镜像分区中,修改所述升级标识为指示有存储升级版本的镜像,修改所述启动标识为指示启动所述目标镜像分区;发送启动所述终端设备的指令。
在其中一个实施例中,所述对所述内存储器中的所述升级版本的镜像执行第二校验,包括:计算所述内存储器中升级版本的镜像对应的第二校验码;将所述第二校验码和从服务器获取到的镜像升级文件对应的第二标准校验码进行比对,若比对一致,则判定第二校验成功,否则,则判定第二校验失败。
在一个实施例中,所述方法还包括:当所述升级标识指示未升级时,读取配置文件中的启动标识,启动所述启动标识对应的分区中的镜像。
为实现上述目的,本申请第二方面提供一种升级装置,应用于终端设备,所述终端设备的存储器包括非易失性存储器和内存储器,所述非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;所述装置包括:读取模块,用于当接收到启动所述终端设备的指令时,启动所述引导程序,并读取所述配置文件中的所述升级标识,所述升级标识用于指示是否有存储升级版本的镜像;所述读取模块还用于若所述升级标识指示有存储升级版本的镜像时,读取所述配置文件中的启动标识,所述启动标识用于指示启动目标镜像分区,所述目标镜像分区为所述第一分区与所述第二分区中有存储升级版本的镜像的分区;第一校验模块,用于对所述目标镜像分区中所述升级版本的镜像执行第一校验;启动模块,用于若所述第一校验成功,则启动所述目标镜像分区中所述升级版本的镜像,并修改所述升级标识为指示没有存储升级版本的镜像。
在其中一个实施例中,所述启动模块还用于若所述第一校验失败,则启动非目标镜像分区中存储的镜像,并修改所述启动标识为指示启动所述非目标镜像分区;其中,所述非目标镜像分区为存储原版本的镜像的分区;当所述目标镜像分区为第一分区时,所述非目标镜像分区为第二分区,当所述目标镜像分区为第二分区时,所述非目标镜像分区为第一分区。
在其中一个实施例中,第一校验模块还用于将所述目标镜像分区中所述升级版本的镜像加载至所述内存储器中;计算加载至内存储器中的镜像对应的第一校验码;将所述第一校验码与所述镜像升级文件头部存储的第一标准校验码进行比对;若比对一致,则判定所述第一校验成功;若比对不一致,则判定所述第一校验失败。
在其中一个实施例中,所述非易失性存储器还包括:用户数据分区,所述用户数据分区用于存储用户数据,所述第一分区和所述第二分区共用所述用户数据分区。
在其中一个实施例中,启动模块还用于当启动所述目标镜像分区中所述升级版本的镜像时,将所述用户数据分区挂载在所述升级版本的镜像包含的文件系统的顶层目录中。
在其中一个实施例中,上述装置还包括:
存入模块,用于接收服务器发送的升级版本的镜像,将所述升级版本的镜像存入所述内存储器中;
第二校验模块,用于对所述内存储器中的所述升级版本的镜像执行第二校验,所述第二校验用于校验所述升级版本的镜像是否下载正确;
确定模块,用于若所述第二校验成功,读取当前的启动标识,并将所述当前的启动标识未指示的分区确定为所述目标镜像分区;
写入模块,用于将所述升级版本的镜像写入到所述目标镜像分区中,修改所述升级标识为指示有存储升级版本的镜像,修改所述启动标识为指示启动所述目标镜像分区;
发送模块,用于发送启动所述终端设备的指令。
在一个实施例中,第二校验模块还用于计算所述内存中镜像升级文件对应的第二校验码;将所述第二校验码和从服务器获取到的镜像升级文件对应的第二标准校验码进行比对,若比对一致,则判定第二校验成功,否则,则判定第二校验失败。
为实现上述目的,本申请第三方面提供一种终端设备,包括存储器和处理器,所述存储器有存储计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面所述的方法中的步骤。
为实现上述目的,本申请第四方面一种计算机可读存储介质,有存储计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如第一方面所述的方法中的步骤。
上述升级方法、装置、终端设备及存储介质,终端设备的存储器包括非易失性存储器和内存储器,非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;当接收到启动终端设备的指令时,启动引导程序,并读取配置文件中的升级标识,升级标识用于指示是否有存储升级版本的镜像;若升级标识指示有存储升级版本的镜像时,读取配置文件中的启动标识,启动标识用于指示启动目标镜像分区,目标镜像分区为第一分区与第二分区中有存储升级版本的镜像的分区;对目标镜像分区中升级版本的镜像执行第一校验;若第一校验成功,则启动目标镜像分区中升级版本的镜像,并修改升级标识为指示没有存储升级版本的镜像。上述终端设备中设置有两个分区,即第一分区和第二分区,当存在升级版本的镜像时,首先目标镜像分区中的升级版本的镜像进行第一校验,只有在校验成功后才会启动升级版本的镜像,避免了当升级版本的镜像异常时导致无法启动的情况出现,提高了终端设备能安全启动的概率,从而有利于降低维护成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1是一个实施例中升级方法的流程图;
图2是另一个实施例中升级方法的流程图;
图3是一个实施例中升级装置的结构框图;
图4是另一个实施例中升级装置的结构框图;
图5是一个实施例中终端设备的内部结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,提出了一种升级方法,该升级方法可以应用于终端设备,本实施例以应用于终端设备举例说明。终端设备的存储器包括非易失性存储器和内存储器,非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;该升级方法具体包括以下步骤。
步骤102,当接收到启动终端设备的指令时,启动引导程序,并读取配置文件中的升级标识,升级标识用于指示是否有存储升级版本的镜像。
其中,终端设备可以是网关、路由器等嵌入式设备或物联网设备。镜像升级相当于对设备的系统或固件进行升级,每次启动终端设备时,首先检测是否需要镜像升级。
本申请涉及的非易失性存储器(non-volatile memory,NVM)可以包括但不限于:只读存储器(Read Only Memory,ROM)、闪存(Flash memory)、可编程只读内存(Programmable read-only memory,PROM)等,可以在掉电的情况下,依然保存原有的数据。
本申请涉及的内存储器可以包括但不限于高速随机存取存储器(Random AccessMemory,RAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)等,是用来存放当前正在使用的(即执行中)的数据和程序,在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。
上述引导程序的分区用于存储引导程序,存储配置文件的分区用于存储引导程序的配置文件,包括:升级标识和启动标识,升级标识用于指示是否存储有升级版本的镜像,例如,升级标识分为1和0,1代表存储有升级版本的镜像,0代表没有存储升级版本的镜像。如果存储有升级版本的镜像,则说明需要进行镜像升级,反之,则不需要,依然按照原来的方式启动,即启动原版本的镜像。
启动标识用于指示启动的镜像分区,终端设备中包含有两个镜像分区,分别为第一分区(firmware1)和第二分区(firmware2)。在一个实施例中,启动标识可以用1标识指示第一分区,用2标识指示第二分区。镜像包括:内核和文件系统两部分。不论是升级版本的镜像还是原版本的镜像都包含有内核和文件系统。
步骤104,若升级标识指示有存储升级版本的镜像时,读取配置文件中的启动标识,启动标识用于指示启动目标镜像分区,目标镜像分区为第一分区与第二分区中有存储升级版本的镜像的分区。
其中,目标镜像分区为启动标识对应的当前镜像分区,目标镜像分区为第一分区、第二分区中存储有升级版本的镜像的一个分区,具体地,如果第一分区中存储有升级版本的镜像,那么目标镜像分区为第一分区,反之,如果第二分区中存储有升级版本的镜像,那么目标镜像分区为第二分区。
步骤106,对目标镜像分区中升级版本的镜像执行第一校验。
其中,第一校验用于校验目标镜像分区中的升级版本的镜像是否完整,即校验写入到目标镜像分区中的升级版本的镜像是否可运行。若第一校验成功,则说明完整可运行,若第一校验失败,则说明不可运行,即升级失败。
在一个实施例中,第一校验可以采用CRC(循环冗余校验)校验,具体地,计算升级版本的镜像的第一校验码,将该第一校验码和该升级版本的镜像头部中的第一标准校验码进行比对,若比对一致,则判定校验成功,否则,则判定校验失败。
在另一个实施例中,第一校验还可以采用MD5校验算法,具体地,计算升级版本的镜像对应的散列值(即第二校验码),然后与第二标准校验码进行比对,比对成功,则判定校验成功,否则,则判定校验失败。
步骤108,若第一校验成功,则启动目标镜像分区中升级版本的镜像,并修改升级标识为指示没有存储升级版本的镜像。
其中,当第一校验成功后,则启动目标镜像分区中的升级版本的镜像,已完成镜像升级,同时将升级标识修改为未升级,即指示没有存储升级版本的镜像,在下次启动后会根据升级标识判定不需要升级镜像。
上述终端设备中设置有两个镜像分区,即第一分区和第二分区,当存在升级版本的镜像时,首先目标镜像分区中的升级版本的镜像进行第一校验,只有在校验成功后才会启动升级版本的镜像,避免了当升级版本的镜像异常时导致无法启动的情况出现,提高了终端设备能安全启动的概率。
在一个实施例中,上述升级方法还包括:若第一校验失败,则启动非目标镜像分区中存储的镜像,并修改启动标识为指示启动非目标镜像分区;其中,非目标镜像分区为存储原版本的镜像的分区;当目标镜像分区为第一分区时,非目标镜像分区为第二分区,当目标镜像分区为第二分区时,非目标镜像分区为第一分区。
其中,非目标镜像分区和目标镜像分区是相对的。目标镜像分区是指与启动标识对应的分区,非目标镜像分区是指与启动标识不对应的分区,目标镜像分区中存储有升级版本的镜像,非目标镜像分区中存储有原版本的镜像。原版本的镜像是指升级前的版本的镜像。当目标镜像分区中升级版本的镜像校验失败时,采用非目标镜像分区中的原版本的镜像来启动镜像,从而避免了当升级版本的镜像异常时导致无法启动的情况出现,大大提高了安全性。当第一校验失败后,还需要将启动标识修改为指示启动非目标镜像分区。校验失败,说明未升级成功,修改启动标识指示非目标镜像分区,是为了下次启动时根据修改后的启动标识确定启动的镜像分区,确保了下次启动镜像的安全性。
在一个实施例中,对目标镜像分区中升级版本的镜像执行第一校验,包括:将目标镜像分区中升级版本的镜像加载至内存储器中;计算加载至内存储器中的镜像对应的第一校验码;将第一校验码与镜像升级文件头部存储的第一标准校验码进行比对;若比对一致,则判定第一校验成功;若比对不一致,则判定第一校验失败。
其中,在对升级版本的镜像进行校验时,首先需要将升级版本的镜像加载到内存储器中,然后计算加载到内存储器中的镜像对应的第一校验码,并将该第一校验码与第一标准校验码进行比对,第一标准校验码存储在镜像升级文件的头部。第一校验的目的是为了确保写入到目标镜像分区中的升级版本的镜像完整且正确,只有第一校验成功时,启动升级版本的镜像,大大降低了升级时出现异常的概率,提高了升级过程中的安全性。
在一个实施例中,非易失性存储器还包括:用户数据分区,用户数据分区用于存储用户数据,第一分区和第二分区共用用户数据分区。
其中,非易失性存储器中设置有独立的用户数据分区,在镜像升级的过程中不需要擦写该用户数据分区,能确保用户配置的数据不会因为升级而丢失。
在一个实施例中,非易失性存储器中每个分区的作用如表1所示。
表1
分区 分区说明
引导程序分区 存储引导程序
配置文件分区 引导程序配置,包括:升级标识、启动标识
第一分区 镜像1,包含了内核和文件系统
第二分区 镜像2,包含了内核和文件系统
用户数据分区 存放用户数据
在一个实施例中,上述升级方法还包括:当启动目标镜像分区中升级版本的镜像时,将用户数据分区挂载在升级版本的镜像包含的文件系统的顶层目录中。
其中,由于用户数据分区是独立的分区,无论是在启动升级版本的镜像,还是在启动原版本的镜像,将用户数据分区都挂载于顶层目录中。具体地,镜像包括内核和文件系统,当启动升级版本的镜像时,将用户数据分区挂载至在升级版本的镜像包含的文件系统的顶层目录中,当启动原版本的镜像时,将用户数据分区是挂载至原版本的镜像包含的文件系统的顶层目录中,实现共用用户数据分区的同时,还能实现在镜像升级时不需要擦写该用户数据分区,进而确保用户配置的数据不会因为升级异常而丢失。
如图2所示,在一个实施例中,在接收到启动终端设备的指令之前,上述方法还包括:
步骤110,接收服务器发送的升级版本的镜像,将升级版本的镜像存入内存储器中。
其中,在启动终端设备之前,如果要升级镜像,需要先从服务器下载升级版本的镜像,将下载的升级版本的镜像先暂时存入内存储器中。从服务器下载升级版本的镜像有两种方式,一种是主动方式,即由终端设备主动向服务器请求发送升级版本的镜像,另一种是被动方式,即当服务器中存在升级版本的镜像时,将该升级版本的镜像下发到终端设备。
步骤112,对内存储器中的升级版本的镜像执行第二校验,第二校验用于校验升级版本的镜像是否下载正确。
其中,第二校验是对升级版本的镜像是否下载正确的验证。为了与上述第一校验进行区分,这里称为“第二校验”。第二校验的方式可以有多种,比如,可以采用CRC校验方式,也可以采用MD5校验方式。
步骤114,若第二校验成功,读取当前的启动标识,并将当前的启动标识未指示的分区确定为目标镜像分区。
其中,第二校验成功说明升级版本的镜像下载正确,需要将该升级版本的镜像存入到镜像分区。当前的启动标识对应的分区存储有原版本的镜像,原版本的镜像是可以正常启动的镜像,为了避免后续升级出现异常,需要将升级版本的镜像存储到与当前的启动标识不对应的分区,比如,当前的启动标识指示第一分区,那么需要将升级版本的镜像存储到第二分区。所以将当前的启动标识未指示的分区确定为目标镜像分区。
步骤116,将升级版本的镜像写入到目标镜像分区中,修改升级标识为指示有存储升级版本的镜像,修改启动标识为指示启动目标镜像分区。
其中,在确定了目标镜像分区后,将升级版本的镜像写入到该目标镜像分区,由于存在了升级版本的镜像,所以将升级标识修改为指示存储有升级版本的镜像,同时启动标识修改为指示启动目标镜像分区,即将启动标识修改为指示存储有升级版本的镜像的分区,便于下次启动时,根据启动标识指示的目标镜像分区进行启动,从而完成镜像升级。
步骤118,发送启动终端设备的指令。
其中,向终端设备发送启动指令,然后就进入了步骤102。
上述实施例中,为了进行镜像升级,需要先从服务器端将升级版本的镜像下载到终端设备进行存储,为了确保下载到的升级版本的镜像完整正确,首先将升级版本的镜像下载到内存储器中,并对下载到内存储器中的升级版本的镜像进行校验,校验成功,则说明下载的升级版本的镜像是完整正确的,然后,确定存储该升级版本的镜像的目标镜像分区,目标镜像分区的确定是根据当前启动标识确定的,将当前启动标识未指示的分区作为目标镜像分区,这是因为当前启动标识对应的分区中存储了原版本的镜像,为了当后续升级异常时,仍然能够正常启动镜像,将升级版本的镜像存储到另一个镜像分区。且为了下次启动终端设备时升级镜像,需要将升级标识修改为指示有存储升级版本的镜像,同时将启动标识修改为指示启动目标镜像分区。上述过程中的设定确保了后续启动升级镜像时的安全性。
在一个实施例中,所述对所述内存储器中的所述升级版本的镜像执行第二校验,包括:计算所述内存储器中升级版本的镜像对应的第二校验码;将第二校验码和从服务器获取到的镜像升级文件对应的第二标准校验码进行比对,若比对一致,则判定第二校验成功,否则,则判定第二校验失败。
其中,第二校验码的计算可以采用多种方式,在一个实施例中,可以采用消息摘要方法,比如,采用MD5方法计算。具体地,首先,对内存中的镜像升级文件计算得到第二验证码(第二验证码用散列值表示,即当前MD5值),从服务器获取升级版本的镜像对应的标准MD5值(即第二标准验证码),标准MD5值是服务器根据镜像升级文件计算得到的。将当前MD5值和标准MD5值进行比对,如果一致,则判定校验成功,如果不一致,则判定校验失败。在另一个实施例中,也可以采用CRC(循环冗余校验)的校验方法。升级版本的镜像进行第二校验,确保了从服务器端下载的升级版本的镜像的完整性和正确性。
在一个实施例中,上述升级方法还包括:当所述升级标识指示未升级时,读取配置文件中的启动标识,启动所述启动标识对应的分区中的镜像。
其中,当升级标识指示未升级时,则直接根据配置文件中的启动标识启动相应的镜像分区中的镜像。当升级标识指示未升级时,启动标识指示的镜像分区中存储的是原版本的镜像,即如果未升级,则直接启动原版本的镜像即可。在该升级方法中,当未升级时,不影响原版本的镜像正常启动。
如图3所示,提出了一种升级装置,应用于终端设备,终端设备的存储器包括非易失性存储器和内存储器,非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;
该装置包括:
读取模块302,用于当接收到启动终端设备的指令时,启动引导程序,并读取配置文件中的升级标识,升级标识用于指示是否有存储升级版本的镜像;
读取模块302还用于若升级标识指示有存储升级版本的镜像时,读取配置文件中的启动标识,启动标识用于指示启动目标镜像分区,目标镜像分区为第一分区与第二分区中有存储升级版本的镜像的分区;
第一校验模块304,用于对目标镜像分区中升级版本的镜像执行第一校验;
启动模块306,用于若第一校验成功,则启动目标镜像分区中升级版本的镜像,并修改升级标识为指示没有存储升级版本的镜像。
在一个实施例中,所述启动模块还用于若所述第一校验失败,则启动非目标镜像分区中存储的镜像,并修改所述启动标识为指示启动所述非目标镜像分区;其中,所述非目标镜像分区为存储原版本的镜像的分区;当所述目标镜像分区为第一分区时,所述非目标镜像分区为第二分区,当所述目标镜像分区为第二分区时,所述非目标镜像分区为第一分区。
在一个实施例中,第一校验模块具体用于将所述目标镜像分区中所述升级版本的镜像加载至所述内存储器中;计算加载至内存储器中的镜像对应的第一校验码;将所述第一校验码与所述镜像升级文件头部存储的第一标准校验码进行比对;若比对一致,则判定所述第一校验成功;若比对不一致,则判定所述第一校验失败。
在一个实施例中,所述非易失性存储器还包括:用户数据分区,所述用户数据分区用于存储用户数据,所述第一分区和所述第二分区共用所述用户数据分区。
在一个实施例中,还包括挂载模块,用于当所述启动模块启动所述目标镜像分区中所述升级版本的镜像时,将所述用户数据分区挂载在所述升级版本的镜像包含的文件系统的顶层目录中。
如图4所示,在一个实施例中,上述装置还包括
存入模块308,用于接收服务器发送的升级版本的镜像,将所述升级版本的镜像存入所述内存储器中;
第二校验模块310,用于对所述内存储器中的所述升级版本的镜像执行第二校验,所述第二校验用于校验所述升级版本的镜像是否下载正确;
确定模块312,用于若所述第二校验成功,读取当前的启动标识,并将所述当前的启动标识未指示的分区确定为所述目标镜像分区;
写入模块314,用于将所述升级版本的镜像写入到所述目标镜像分区中,修改所述升级标识为指示有存储升级版本的镜像,修改所述启动标识为指示启动所述目标镜像分区;
发送模块316,用于发送启动所述终端设备的指令。
在一个实施例中,第二校验模块还用于计算所述内存中镜像升级文件对应的第二校验码;将所述第二校验码和从服务器获取到的镜像升级文件对应的第二标准校验码进行比对,若比对一致,则判定第二校验成功,否则,则判定第二校验失败。
需要说明的是,上述升级装置可以执行上述方法实施例中终端设备的动作,其实现原理和技术效果类似,在此不再赘述。
图5示出了一个实施例中终端设备的内部结构图。如图5所示,该终端设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括存储器包括非易失性存储介质(例如本申请实施例中的提到的闪存)和内存储器;非易失性存储介质包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区。该终端设备还可有存储计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述的升级方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述的升级方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端设备的限定,具体的终端设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机可读存储介质,有存储计算机程序,计算机程序被处理器执行时,使得处理器执行上述升级方法的步骤。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,根据本申请的技术方案及其发明构思加以等同替换或改变,都应涵盖在本申请的保护范围之内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本申请构成任何限制。

Claims (10)

1.一种升级方法,应用于终端设备,其特征在于,所述终端设备的存储器包括非易失性存储器和内存储器,所述非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;
所述方法包括:
当接收到启动所述终端设备的指令时,启动所述引导程序,并读取所述配置文件中的升级标识,所述升级标识用于指示是否有存储升级版本的镜像;
若所述升级标识指示有存储升级版本的镜像时,读取所述配置文件中的启动标识,所述启动标识用于指示启动目标镜像分区,所述目标镜像分区为所述第一分区与所述第二分区中有存储升级版本的镜像的分区;
对所述目标镜像分区中所述升级版本的镜像执行第一校验;
若第一校验码与所述升级版本的镜像所存储的第一标准校验码一致,则确定第一校验成功,并启动所述目标镜像分区中所述升级版本的镜像,并修改所述升级标识为指示没有存储升级版本的镜像,所述第一校验码为将所述升级版本的镜像从所述目标镜像分区加载至所述内存储器后计算得到的。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一校验失败,则启动非目标镜像分区中存储的镜像,并修改所述启动标识为指示启动所述非目标镜像分区;
其中,所述非目标镜像分区为存储原版本的镜像的分区;当所述目标镜像分区为第一分区时,所述非目标镜像分区为第二分区,当所述目标镜像分区为第二分区时,所述非目标镜像分区为第一分区。
3.根据权利要求1所述的方法,其特征在于,所述对目标镜像分区中所述升级版本的镜像执行第一校验,包括:
将所述目标镜像分区中所述升级版本的镜像加载至所述内存储器中;
计算加载至所述内存储器中的镜像对应的第一校验码;
将所述第一校验码与镜像升级文件头部存储的第一标准校验码进行比对;
所述方法还包括:
若比对不一致,则判定所述第一校验失败。
4.根据权利要求1所述的方法,其特征在于,所述非易失性存储器还包括:用户数据分区,所述用户数据分区用于存储用户数据,所述第一分区和所述第二分区共用所述用户数据分区。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当启动所述目标镜像分区中所述升级版本的镜像时,将所述用户数据分区挂载在所述升级版本的镜像包含的文件系统的顶层目录中。
6.根据权利要求1-5任一项所述的方法,其特征在于,在接收到启动所述终端设备的指令之前,所述方法还包括:
接收服务器发送的升级版本的镜像,将所述升级版本的镜像存入所述内存储器中;
对所述内存储器中的所述升级版本的镜像执行第二校验,所述第二校验用于校验所述升级版本的镜像是否下载正确;
若所述第二校验成功,读取当前的启动标识,并将所述当前的启动标识未指示的分区确定为所述目标镜像分区;
将所述升级版本的镜像写入到所述目标镜像分区中,修改所述升级标识为指示有存储升级版本的镜像,修改所述启动标识为指示启动所述目标镜像分区;
发送启动所述终端设备的指令。
7.根据权利要求6所述的方法,其特征在于,所述对所述内存储器中的所述升级版本的镜像执行第二校验,包括:
计算所述内存储器中升级版本的镜像对应的第二校验码;
将所述第二校验码和从服务器获取到的镜像升级文件对应的第二标准校验码进行比对,若比对一致,则判定第二校验成功,否则,则判定第二校验失败。
8.一种升级装置,应用于终端设备,其特征在于,所述终端设备的存储器包括非易失性存储器和内存储器,所述非易失性存储器包括存储引导程序的分区、存储配置文件的分区、分别用于存储镜像的第一分区、第二分区;
所述装置包括:
读取模块,用于当接收到启动所述终端设备的指令时,启动所述引导程序,并读取所述配置文件中的升级标识,所述升级标识用于指示是否有存储升级版本的镜像;
所述读取模块还用于若所述升级标识指示有存储升级版本的镜像时,读取所述配置文件中的启动标识,所述启动标识用于指示启动目标镜像分区,所述目标镜像分区为所述第一分区与所述第二分区中有存储升级版本的镜像的分区;
第一校验模块,用于对所述目标镜像分区中所述升级版本的镜像执行第一校验,若第一校验码与所述升级版本的镜像所存储的第一标准校验码一致,则确定第一校验成功,所述第一校验码为将所述升级版本的镜像从所述目标镜像分区加载至所述内存储器后计算得到的;
启动模块,用于若所述第一校验成功,则启动所述目标镜像分区中所述升级版本的镜像,并修改所述升级标识为指示没有存储升级版本的镜像。
9.一种计算机可读存储介质,有存储计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的升级方法的步骤。
10.一种终端设备,包括存储器和处理器,其特征在于,所述存储器有存储计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的升级方法的步骤。
CN202110301007.7A 2021-03-22 2021-03-22 升级方法、装置、终端设备及存储介质 Active CN113114730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110301007.7A CN113114730B (zh) 2021-03-22 2021-03-22 升级方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110301007.7A CN113114730B (zh) 2021-03-22 2021-03-22 升级方法、装置、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN113114730A CN113114730A (zh) 2021-07-13
CN113114730B true CN113114730B (zh) 2022-09-27

Family

ID=76710278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110301007.7A Active CN113114730B (zh) 2021-03-22 2021-03-22 升级方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN113114730B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114780019A (zh) * 2022-03-22 2022-07-22 江苏泽景汽车电子股份有限公司 电子设备的管理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408153A (zh) * 2018-11-01 2019-03-01 百度在线网络技术(北京)有限公司 软件启动方法和软件升级方法
CN110083374A (zh) * 2019-03-25 2019-08-02 深圳猛犸电动科技有限公司 一种升级回滚方法、系统及终端设备
CN110134426A (zh) * 2019-04-18 2019-08-16 深圳市致宸信息科技有限公司 一种嵌入式系统升级方法、装置及终端设备
CN111309363A (zh) * 2020-03-07 2020-06-19 重庆邮电大学 基于Contiki操作系统的在线升级方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101959359B1 (ko) * 2012-11-06 2019-03-18 에이치피프린팅코리아 유한회사 빠른 부팅을 위한 부트 이미지를 업데이트하는 방법 및 이를 수행하는 화상형성장치
CN109032846A (zh) * 2018-08-08 2018-12-18 京信通信系统(中国)有限公司 设备远程备份升级方法、装置、计算机存储介质及设备
CN110990045B (zh) * 2019-12-20 2023-01-06 苏州浪潮智能科技有限公司 一种双bmc flash升级方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408153A (zh) * 2018-11-01 2019-03-01 百度在线网络技术(北京)有限公司 软件启动方法和软件升级方法
CN110083374A (zh) * 2019-03-25 2019-08-02 深圳猛犸电动科技有限公司 一种升级回滚方法、系统及终端设备
CN110134426A (zh) * 2019-04-18 2019-08-16 深圳市致宸信息科技有限公司 一种嵌入式系统升级方法、装置及终端设备
CN111309363A (zh) * 2020-03-07 2020-06-19 重庆邮电大学 基于Contiki操作系统的在线升级方法及装置

Also Published As

Publication number Publication date
CN113114730A (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN110178114B (zh) 车辆控制装置以及程序更新系统
US7313682B2 (en) Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
US20040255106A1 (en) Recovery of operating system configuration data by firmware of computer system
KR100316981B1 (ko) 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시 메모리에 프로그램을 저장하는 방법
CN113110891B (zh) 固态硬盘的固件加载方法、装置、计算机设备及存储介质
CN109634781A (zh) 一种基于嵌入式程序双区备份映像系统及启动方法
CN113114730B (zh) 升级方法、装置、终端设备及存储介质
CN113238790A (zh) 基于sd卡和eeprom的固件程序更新方法及系统
CN117130672A (zh) 服务器启动流程控制方法、系统、终端及存储介质
CN110956284A (zh) 一种产品信息的可靠性维护方法、系统、设备及存储介质
CN111124760A (zh) 一种基于uboot的嵌入式设备启动方法及装置
CN113094107B (zh) 数据保护方法、装置、设备及计算机存储介质
CN114356658A (zh) 固件升级异常的处理方法、计算机设备以及可读存储介质
US11768669B2 (en) Installing application program code on a vehicle control system
CN114741091A (zh) 固件加载方法、装置、电子设备及计算机可读存储介质
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
CN112817645A (zh) 一种bios启动方法、装置、设备及可读存储介质
CN108958819B (zh) 多分区系统的启动方法及多分区系统
CN111190627A (zh) 系统升级方法及装置
CN112667444A (zh) 一种系统升级方法、存储介质及终端设备
CN117472291B (zh) 数据块的校验方法和装置、存储介质及电子设备
EP4024254A1 (en) Method and device for updating data
CN109359440B (zh) 一种目标数据合法性验证方法及装置
US20230129942A1 (en) Method for locking a rewritable non-volatile memory and electronic device implementing said method
CN115686919A (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
GR01 Patent grant
GR01 Patent grant