发明内容
有鉴于此,本申请实施例提供了一种存储芯片的升级方法、装置、终端设备及介质,以解决现有技术中芯片被误升级的问题。
本申请实施例的第一方面提供了一种存储芯片的升级方法,包括:
获取针对存储芯片的升级数据包;
提取所述升级数据包中的时间校验信息;
依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求;
若所述升级数据包满足所述存储芯片的升级要求,则采用所述升级数据包对所述存储芯片进行升级。
可选地,所述提取所述升级数据包中的时间校验信息,包括:
获取预先烧录至所述存储芯片的密钥;
采用所述密钥对所述升级数据包进行解密;
从解密后的升级数据包中提取所述时间校验信息。
可选地,所述依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求,包括:
获取所述时间校验信息中的芯片升级时间,确定实时时间;
若所述实时时间与所述芯片升级时间相同,则判定所述升级数据包满足所述存储芯片的升级要求;否则,判定所述升级数据包不满足所述存储芯片的升级要求。
可选地,所述芯片升级时间包括芯片升级时间区间,所述若所述实时时间与所述芯片升级时间相同,则判定所述升级数据包满足所述存储芯片的升级要求,否则,判定所述升级数据包不满足所述存储芯片的升级要求,包括:
若所述实时时间处于所述芯片升级时间区间内,则判定所述升级数据包满足所述存储芯片的升级要求;
若所实时时间不处于所述芯片升级时间区间内,则判定所述升级数据包不满足所述存储芯片的升级要求。
可选地,所述依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求,包括:
获取所述时间校验信息中的芯片生产批次;
确定所述存储芯片的生产时间;
若所述生产时间对应的批次与所述芯片生产批次相同,则判定所述升级数据包满足所述存储芯片的升级要求;否则,判定所述升级数据包不满足所述存储芯片的升级要求。
可选地,所述确定所述存储芯片的生产时间,包括:
获取预先烧录至所述存储芯片的芯片生产信息;
读取所述芯片生产信息中的生产时间。
可选地,所述依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求,包括:
获取所述时间校验信息中的芯片升级时间及芯片生产批次;
确定实时时间以及所述存储芯片的生产时间;
若所述实时时间与所述芯片升级时间相同,且所述生产时间对应的批次与所述芯片生产批次相同,则判定所述升级数据包满足所述存储芯片的升级要求;
若所述实时时间与所述芯片升级时间不同,或者所述生产时间对应的批次与所述芯片生产批次不同,则判定所述升级数据包不满足所述存储芯片的升级要求。
本申请实施例的第二方面提供了一种存储芯片的升级装置,包括:
获取模块,用于获取针对存储芯片的升级数据包;
提取模块,用于提取所述升级数据包中的时间校验信息;
识别模块,用于依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求;
升级模块,用于若所述升级数据包满足所述存储芯片的升级要求,则采用所述升级数据包对所述存储芯片进行升级。
本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的存储芯片的升级方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的存储芯片的升级方法。
本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述第一方面中任一项所述的存储芯片的升级方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例,在获取到针对存储芯片的升级数据包后,可以通过提取升级数据包中的时间校验信息,并依据时间校验信息,识别该升级数据包是否满足当前的存储芯片的升级要求,对于不满足升级要求的数据包,终端设备可以直接丢弃不做任何处理,而对于满足存储芯片升级要求的数据包,则可以采用该数据包对存储芯片进行升级。本实施例通过在芯片升级数据包中加入时间校验信息,使得升级数据包只能够被使用在符合特定时间窗口或属于特定生产批次的芯片中,可以防止芯片被误升级,防止升级数据包被非法利用,保证升级数据包的安全。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请一个实施例的一种存储芯片的升级方法的步骤流程示意图,具体可以包括如下步骤:
S101、获取针对存储芯片的升级数据包;
需要说明的是,本方法可以应用于终端设备,即本实施例的执行主体为终端设备。终端设备通过获取升级数据包,并在对该数据包进行校验后,可以采用该数据包对内部的存储芯片进行升级。
作为本实施例的一种示例,上述存储芯片可以是指Flash芯片。在电子及半导体领域,Flash又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程的性能,还可以快速读取数据,使数据不会因为断电而丢失。当然,本方法也可以针对其他类型的芯片进行升级,本实施例对此不作限定。
S102、提取所述升级数据包中的时间校验信息;
在本实施例中,为了防止芯片被误升级,以及防止升级数据包被非法利用。可以在升级数据包中加入相应的校验信息,用于对待升级的存储芯片进行校验,以确认该芯片是否具备使用获取到的升级数据包进行升级的权限。
在具体实现中,用于对芯片进行校验的校验信息可以是时间校验信息。例如,可升级的时间或时间区间,待升级的芯片的生产批次等等。
S103、依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求;
在本实施例中,依据时间校验信息识别升级数据包是否满足存储芯片的升级要求可以是指,依据从升级数据包中提取出的时间校验信息,确认该升级数据包是否可以应用在当前的芯片上。
在具体实现中,若时间校验信息表示的是在某个时间点或时间区间内,可供存储芯片使用该数据包进行升级,则可以通过判断当前时间是否与上述时间点相同,或者是否处于上述时间区间内,来确认升级数据包是否满足该存储芯片的升级要求。
或者,若时间校验信息表示的是该升级数据包只能应用于某一批次的芯片上,即该时间校验信息为所适用的芯片批次对应的时间,则可以通过判断接收到该升级数据包的终端设备的芯片的生产批次是否与时间校验信息中的生产批次相同,来确认升级数据包是否满足该存储芯片的升级要求。
若升级数据包满足存储芯片的升级要求,则可以执行步骤S104,采用该升级数据包对存储芯片进行升级。
S104、采用所述升级数据包对所述存储芯片进行升级。
对于满足存储芯片升级要求的升级数据包,终端设备则可以直接采用该数据包对芯片进行升级;对于不满足存储芯片升级要求的升级数据包,终端设备可以丢弃掉该数据包,不做任何处理,防止芯片被误升级。
在本申请实施例中,在获取到针对存储芯片的升级数据包后,可以通过提取升级数据包中的时间校验信息,并依据时间校验信息,识别该升级数据包是否满足当前的存储芯片的升级要求,对于不满足存储芯片升级要求的数据包,终端设备可以直接丢弃不做任何处理,而对于满足存储芯片升级要求的数据包,则可以采用该数据包对存储芯片进行升级。本实施例通过在芯片升级数据包中加入时间校验信息,使得升级数据包只能够被使用在符合特定时间窗口或属于特定生产批次的芯片中,可以防止芯片被误升级,防止升级数据包被非法利用,保证升级数据包的安全。
参照图2,示出了本申请一个实施例的另一种存储芯片的升级方法的步骤流程示意图,具体可以包括如下步骤:
S201、获取针对存储芯片的升级数据包;
本实施例中的存储芯片可以是指Flash芯片。因此,上述升级数据包可以是用于对Flash芯片进行升级的数据包。
S202、获取预先烧录至所述存储芯片的密钥,采用所述密钥对所述升级数据包进行解密;
在本实施例中,升级数据包可以是加密后的数据包。终端设备在接收到该数据包后,首先需要使用相应的密钥对该数据包进行解密。
在本实施例中,用于对升级数据包进行解密的密钥可以预先被烧录至存储芯片中,例如存储芯片的OTP寄存器中。
在嵌入式系统中,所有的代码和系统数据都是被存储在Flash芯片内部的。Flash芯片的特点是可多次擦写,而且掉电数据不会丢失。为了保护Flash中的数据,越来越多的厂商在Flash内部提供了一种特殊的寄存器,即OTP(One Time Programmable,一次性可编程)寄存器。OTP是单片机的一种存储器类型,意思是一次性可编程。程序被烧入单片机后,将不可再次更改和清除。OTP寄存器和Flash数据区域类似,1能被改写为0,但0永远也不能写成1。如果有一个32位的OTP寄存器,出产的值是0xFFFFFFFF,如果用户通过编程,将OTP寄存器的值改写为0xFFFFFFFE后,那该OTP寄存器再也不能再被改写为0xFFFFFFFF了。
在具体实现中,可以在芯片生产时便将后续用于对升级数据包进行解密的密钥烧录至OTP中,使得每一批次的芯片都具有相同的一个密钥。通过开发只能使用该密钥进行解密的升级数据包,可以保证这些芯片只能被某些特定的升级数据包进行升级,防止芯片被误升级。
因此,终端设备在获取到升级数据包后,可以从OTP中获取密钥,并采用该密钥对升级数据包进行解密。如果获取到的密钥无法成功地对升级数据包进行解密,则可以直接丢弃该数据包。
当然,除OTP寄存器外,用于解密升级数据包的密钥还可以被烧录至其他寄存器或存储器中,本实施例对此不作限定。
S203、从解密后的升级数据包中提取所述时间校验信息;
对于成功解密的数据包,终端设备可以从该数据包中提取出时间校验信息,进一步地对该数据包进行校验。
S204、获取所述时间校验信息中的芯片升级时间,确定实时时间;
作为本实施例的一种示例,时间校验信息可以是芯片升级时间,该时间表示的是,能够采用该升级数据包对芯片进行升级的时间。
同时,终端设备可以确定系统的实时时间,该实时时间可以是芯片所应用于的系统的授时时间。例如,对于定位导航芯片,其实时时间可以是卫星导航系统的授时时间。
S205、若所述实时时间与所述芯片升级时间相同,则采用所述升级数据包对所述存储芯片进行升级。
在本实施例中,可以将实时时间与时间校验信息中获取到的芯片升级时间进行比较,若实时时间与该芯片升级时间相同,则可以判定升级数据包满足存储芯片的升级要求;否则,判定升级数据包不满足存储芯片的升级要求。
对于满足升级要求的升级数据包,终端设备便可以采用该数据包对芯片进行升级;而对于不满足升级要求的升级数据包,终端设备可以直接丢弃该数据包。
在具体实现中,时间校验信息中的芯片升级时间可以是某个芯片升级时间区间。
若实时时间处于上述芯片升级时间区间内,则同样可以判定升级数据包满足存储芯片的升级要求;若实时时间不处于上述芯片升级时间区间内,则可以判定升级数据包不满足存储芯片的升级要求。
例如,若该时间区间为2019年12月1日零时至2019年12月31日24时之间,则终端设备在获取到该数据包后,仅可以在上述时间范围内采用该数据包对芯片进行升级,如果实时时间已经超过2019年12月31日24时,则无法继续使用该数据包进行升级。
在本实施例中,通过预先将解密升级数据包的密钥烧录至OTP等寄存器中,可以在获取到升级数据包后,使用该密钥对数据包进行解密,待成功解密后,再依据数据包中的时间校验信息识别该数据包是否满足待升级的芯片的升级要求。本实施例通过解密数据包以及提取时间校验信息对数据包进行两次验证操作,能够有效防止芯片被误升级,降低升级包被非法利用的可能性。
参照图3,示出了本申请一个实施例的又一种存储芯片的升级方法的步骤流程示意图,具体可以包括如下步骤:
S301、获取针对存储芯片的升级数据包;
S302、获取预先烧录至所述存储芯片的密钥,采用所述密钥对所述升级数据包进行解密;
S303、从解密后的升级数据包中提取所述时间校验信息;
需要说明的是,本实施例中步骤S301-S303与前述实施例中步骤S201-S203类似,可以相互参阅,本实施例对此不再赘述。
S304、获取所述时间校验信息中的芯片生产批次,并确定所述存储芯片的生产时间;
在本实施例中,从升级数据包中提取出的时间校验信息可以是芯片生产批次信息,该信息表示的是当前的升级数据包仅能用于特定批次的芯片升级过程。
通过比较时间校验信息中的芯片生产批次与当前待升级的芯片的生产批次是否相同,可以判定该数据包是否满足当前芯片的升级要求。
在本实施例中,当前待升级的芯片的生产批次可以通过芯片生产信息中的生产时间确定。
通常,芯片在被厂商生产出来后,需要完成相关的测试,若测试没有问题,则需要对其进行封装和烧Flash等处理,芯片生产信息也就在该过程中被烧录至芯片中。具体地,芯片生成信息可以被烧录至芯片的OTP等寄存器中。
因此,在终端设备获取到升级数据包后,可以通过获取预先烧录至OTP等寄存器中的芯片生产信息,并读取该芯片生产信息中的生产时间,从而确定出当前待升级的芯片的生产批次。
S305、若所述生产时间对应的批次与所述芯片生产批次相同,则采用所述升级数据包对所述存储芯片进行升级。
在本实施例中,若从芯片生产信息中读取到的生产时间所对应的批次与时间校验信息中获取到的芯片生产批次相同,则可以判定该升级数据包满足存储芯片的升级要求;否则,判定该升级数据包不满足芯片的升级要求。
对于满足升级要求的升级数据包,终端设备便可以采用该数据包对芯片进行升级。
作为本实施例的一种示例,终端设备在对芯片进行升级时,还可以同时对芯片升级时间和芯片生产批次进行校验。只有当芯片升级时间与芯片生产批次均满足当前的升级要求时,才使用该升级数据包对芯片进行升级。
在具体实现中,终端设备可以同时获取时间校验信息中的芯片升级时间及芯片生产批次,在确定出实时时间以及存储芯片的生产时间后,可以将实时时间和时间校验信息中的芯片升级时间进行比较,将从芯片中读取出的生成时间所对应的批次与时间校验信息中的芯片生产批次进行比较。若实时时间与芯片升级时间相同,且上述从芯片中读取出的生产时间对应的批次与时间校验信息中的芯片生产批次相同,则可以判定升级数据包满足存储芯片的升级要求,从而可以使用该数据包对芯片进行升级;若实时时间与芯片升级时间不同,或者生产时间对应的批次与芯片生产批次不同,则可以判定升级数据包不满足存储芯片的升级要求,并丢弃掉该数据包。
在本实施例中,通过在升级数据包中写入芯片生产批次,可以保证相应的升级数据包只能用于对特定批次的芯片进行升级。例如,对于某个用于高端芯片升级的数据包,通过验证芯片生产批次,可以保证该数据包只能被上述高端芯片所使用,而无法被应用在其他相对低端的芯片产品上,有效地解决了芯片被误升级的问题。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
参照图4,示出了本申请一个实施例的一种存储芯片的升级装置的示意图,具体可以包括如下模块:
获取模块401,用于获取针对存储芯片的升级数据包;
提取模块402,用于提取所述升级数据包中的时间校验信息;
识别模块403,用于依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求;
升级模块404,用于若所述升级数据包满足所述存储芯片的升级要求,则采用所述升级数据包对所述存储芯片进行升级。
在本申请实施例中,所述提取模块402具体可以包括如下子模块:
密钥获取子模块,用于获取预先烧录至所述存储芯片的密钥;
数据包解密子模块,用于采用所述密钥对所述升级数据包进行解密;
校验信息提取子模块,用于从解密后的升级数据包中提取所述时间校验信息。
在本申请实施例中,所述识别模块403具体可以包括如下子模块:
升级时间获取子模块,用于获取所述时间校验信息中的芯片升级时间;
实时时间确定子模块,用于确定实时时间;
第一判定子模块,用于若所述实时时间与所述芯片升级时间相同,则判定所述升级数据包满足所述存储芯片的升级要求;否则,判定所述升级数据包不满足所述存储芯片的升级要求。
在本申请实施例中,所述芯片升级时间可以包括芯片升级时间区间,所述第一判定子模块具体可以包括如下单元:
第一时间判定单元,用于若所述实时时间处于所述芯片升级时间区间内,则判定所述升级数据包满足所述存储芯片的升级要求;
第二时间判定单元,用于若所述实时时间不处于所述芯片升级时间区间内,则判定所述升级数据包不满足所述存储芯片的升级要求。
在本申请实施例中,所述识别模块403还可以包括如下子模块:
生产批次获取子模块,用于获取所述时间校验信息中的芯片生产批次;
第一生产时间确定子模块,用于确定所述存储芯片的生产时间;
第二判定子模块,用于若所述生产时间对应的批次与所述芯片生产批次相同,则判定所述升级数据包满足所述存储芯片的升级要求;否则,判定所述升级数据包不满足所述存储芯片的升级要求。
在本申请实施例中,所述第一生产时间确定子模块具体可以包括如下单元:
生产信息获取单元,用于获取预先烧录至所述存储芯片的芯片生产信息;
生产时间读取单元,用于读取所述芯片生产信息中的生产时间。
在本申请实施例中,所述识别模块403还可以包括如下子模块:
时间批次获取子模块,用于获取所述时间校验信息中的芯片升级时间及芯片生产批次;
第二生产时间确定子模块,用于确定实时时间以及所述存储芯片的生产时间;
第三判定子模块,用于若所述实时时间与所述芯片升级时间相同,且所述生产时间对应的批次与所述芯片生产批次相同,则判定所述升级数据包满足所述存储芯片的升级要求;
第四判定子模块,用于若所述实时时间与所述芯片升级时间不同,或者所述生产时间对应的批次与所述芯片生产批次不同,则判定所述升级数据包不满足所述存储芯片的升级要求。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图5,示出了本申请一个实施例的一种终端设备的示意图。如图5所示,本实施例的终端设备500包括:处理器510、存储器520以及存储在所述存储器520中并可在所述处理器510上运行的计算机程序521。所述处理器510执行所述计算机程序521时实现上述存储芯片的升级方法各个实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器510执行所述计算机程序521时实现上述各装置实施例中各模块/单元的功能,例如图4所示模块401至404的功能。
示例性的,所述计算机程序521可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器520中,并由所述处理器510执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序521在所述终端设备500中的执行过程。例如,所述计算机程序521可以被分割成获取模块、提取模块、识别模块、升级模块,各模块具体功能如下:
获取模块,用于获取针对存储芯片的升级数据包;
提取模块,用于提取所述升级数据包中的时间校验信息;
识别模块,用于依据所述时间校验信息,识别所述升级数据包是否满足所述存储芯片的升级要求;
升级模块,用于若所述升级数据包满足所述存储芯片的升级要求,则采用所述升级数据包对所述存储芯片进行升级。
所述终端设备500可包括,但不仅限于,处理器510、存储器520。本领域技术人员可以理解,图5仅仅是终端设备500的一种示例,并不构成对终端设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备500还可以包括输入输出设备、网络接入设备、总线等。
所述处理器510可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器520可以是所述终端设备500的内部存储单元,例如终端设备500的硬盘或内存。所述存储器520也可以是所述终端设备500的外部存储设备,例如所述终端设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器520还可以既包括所述终端设备500的内部存储单元也包括外部存储设备。所述存储器520用于存储所述计算机程序521以及所述终端设备500所需的其他程序和数据。所述存储器520还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。