CN114911500A - 终端升级方法、终端及系统 - Google Patents
终端升级方法、终端及系统 Download PDFInfo
- Publication number
- CN114911500A CN114911500A CN202210536337.9A CN202210536337A CN114911500A CN 114911500 A CN114911500 A CN 114911500A CN 202210536337 A CN202210536337 A CN 202210536337A CN 114911500 A CN114911500 A CN 114911500A
- Authority
- CN
- China
- Prior art keywords
- firmware
- storage space
- upgraded
- terminal
- server
- 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
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000005192 partition Methods 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 52
- 238000012545 processing Methods 0.000 claims description 47
- 238000004891 communication Methods 0.000 claims description 46
- 238000012795 verification Methods 0.000 claims description 19
- 238000005516 engineering process Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000003245 coal Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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
技术领域
本申请涉及通信技术领域,更具体地,涉及一种终端升级方法、终端及系统。
背景技术
OTA(Over-the-Air Technology,空间下载技术)是能够实现对终端及SIM(Subscriber Identity Module,用户身份模块)卡存储的数据进行远程管理的技术。基于OTA的应用,通过移动通信可以提供语音和数据服务以及提供新业务下载等。终端通常具有OTA升级功能,通过此功能下载升级包并且能够在线完成升级,从而能够修复漏洞、更新软件或升级系统。
例如,OTA服务器将系统升级包发送给智能终端或者将系统升级包进行复制和分割后逐一发送给智能终端;智能终端接收到完整的系统升级包后进行OTA升级(参见专利文件:申请公布号CN111142905A)。又例如,OTA服务器筛选出终端(如智能家电)的休息时间或使用频率最低的时间作为系统升级的执行时间;智能家电从服务器完成软件升级包的下载后,在最近一次的执行时间到达时进行升级,且升级过程在后台自动静默执行(参见专利文件:申请公布号CN114356376A)。
现有技术中针对OTA服务器端的升级功能做出了改进,而终端下载完升级包后执行升级操作。可见,即使OTA服务器的功能再稳定,也无法解决终端因升级失败而导致终端服务不可用的技术问题。例如,终端接收到一个不匹配甚至错误的升级包,终端升级后就可能变成“砖头”。这样,甚至需要维修人员到现场拆机才能解决,大大增加了维护或售后的成本。
发明内容
本申请实施例提供一种终端升级方法、终端及系统,能够有效地减少终端服务不可用情况的发生,并且降低维护或售后的成本。
第一方面,提供了终端升级方法,该方法包括:根据引导程序的启动标识从终端的至少两个存储空间中确定一个存储空间作为待启动存储空间,该待启动存储空间为该终端在OTA升级过程中用于固件重启的一个存储分区;和在该待启动存储空间中启动固件;其中,该至少两个存储空间分别具有不同的存储地址,该至少两个存储空间包括第一存储空间和第二存储空间,该第一存储空间用于存储来自服务器的待升级固件以及该第二存储空间用于存储第一原固件,该待升级固件的版本比该第一原固件的版本更新。
结合第一方面,在一种可能的实现方式中,在该根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,该方法还包括:将该待升级固件存储到该第一存储空间。
结合第一方面,在第一方面的一种可能的实现方式中,在该将该待升级固件存储到该第一存储空间之前,该方法还包括:接收服务器发送的待升级固件;对该待升级固件的完整性进行校验;以及根据校验的结果确定是否将该待升级固件存储到该第一存储空间。
可选地,在该待升级固件的校验为完整的情况下,将该待升级固件存储到该第一存储空间。
可选地,在该将该待升级固件存储到该第一存储空间之后,该根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,该方法还包括:设置该引导程序的启动标识为用于指示该第一存储空间为该待启动存储空间;根据该引导程序的启动标识从该至少两个存储空间中确定该第一存储空间为该待启动存储空间;以及在该第一存储空间中启动该待升级固件。
结合第一方面,在第一方面的一种可能的实现方式中,在该接收该服务器发送的待升级固件之后,该方法还包括:将该待升级固件存储到缓存区;根据该校验的结果确定是否将该待升级固件从该缓存区复制到该第一存储空间。
可选地,在该待升级固件从该缓存区复制到该第一存储空间失败的情况下,该引导程序的启动标识为用于指示该第二存储空间为该待启动存储空间,根据该引导程序的启动标识从该至少两个存储空间中确定该第二存储空间为该待启动存储空间;以及在该第二存储空间中启动该第一原固件。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:接收服务器发送的待升级固件;将该待升级固件存储到该第一存储空间,在该第一存储空间中对该待升级固件的完整性进行校验;根据该校验的结果确定是否将该引导程序的启动标识设置为用于指示从该第一存储空间启动。
结合第一方面,在第一方面的一种可能的实现方式中,在对该待升级固件的完整性校验失败的情况下或者在该终端从该服务器接收该待升级固件失败的情况下,该引导程序的启动标识为用于指示该第二存储空间为该待启动存储空间,根据该引导程序的启动标识从该至少两个存储空间中确定该第二存储空间为该待启动存储空间;以及在该第二存储空间中启动该第一原固件。
可选地,该终端从该服务器接收该待升级固件失败的情况包括:在该终端从该服务器接收该待升级固件的过程中网络中断或掉电的情况下。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:接收该服务器发送的该待升级固件的一个或多个数据包;对该待升级固件的一个或多个数据包中的每个数据包进行正确性校验。可选地,在正确性校验不通过的次数超过第一阈值的情况下,停止从该服务器接收该待升级固件,其中该第一阈值为大于或等于1的正整数。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:接收该服务器发送的该待升级固件的头文件信息,该待升级固件的头文件信息包括该待升级固件的版本信息;对该待升级固件的头文件信息的进行解析;在解析该头文件信息为合法和/或该头文件信息与该终端当前的版本信息匹配的情况下,接收该服务器发送的该待升级固件的一个或多个数据包。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:接收该服务器发送的第一MD5校验码;计算该待升级固件的第二MD5校验码;比较该第一MD5校验码与该第二MD5校验码是否一致。可选地,若该第一MD5校验码与该第二MD5校验码一致,则确定该待升级固件的完整性校验成功,若该第一MD5校验码与该第二MD5校验码不一致,则确定该待升级固件的完整性校验失败。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:在该第一存储空间中启动该待升级固件失败的情况下,将该引导程序的启动标识从用于指示该第一存储空间作为该待启动存储空间设置成用于指示该第二存储空间作为该待启动存储空间;以及根据该引导程序的启动标识在该第二存储空间中重启该第一原固件。
可选地,若该第二存储空间中重启该第一原固件失败的次数超过第二阈值,将该引导程序的启动标识从用于指示该第二存储空间作为该待启动存储空间设置成用于指示该至少两个存储空间中的第三存储空间作为该待启动存储空间;以及根据该引导程序的启动标识在该第三存储空间重启第二原固件;其中,该第三存储空间用于存储该第二原固件,该待升级固件的版本比该第二原固件的版本更新,该第二阈值为大于或等于1的正整数。例如,该第三存储空间可以为该第一存储空间的备份,该第二原固件与该第一原固件的版本相同;或者该第二原固件与该第一原固件具有不同的版本。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:在该第一存储空间中启动该待升级固件失败的情况下,向该服务器发送用于指示升级失败的信息,以便该服务器根据该用于指示升级失败的信息检测该待升级固件的有效性。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:在该第一存储空间中启动该待升级固件成功的情况下,向该服务器发送用于指示升级成功的信息。
结合第一方面,在第一方面的一种可能的实现方式中,该方法还包括:向服务器发送用于指示该终端启动成功的固件版本信息。
结合第一方面,在第一方面的一种可能的实现方式中,当该引导程序的启动标识用于指示该至少两个存储空间中的多个存储空间的情况下,根据该多个存储空间的优先级次序确定一个存储空间作为待启动存储空间。可选地,可以将该多个存储空间中启动次数最多的存储空间确定为该待启动存储空间。
第二方面,提供了一种终端,该终端包括处理单元,该处理单元用于根据引导程序的启动标识从该终端的至少两个存储空间中确定一个存储空间作为待启动存储空间,以及在该待启动存储空间中启动固件;其中,该待启动存储空间为该终端在OTA升级过程中用于固件重启的一个存储分区,该至少两个存储空间分别具有不同的存储地址,该至少两个存储空间包括第一存储空间和第二存储空间,该第一存储空间用于存储来自服务器的待升级固件以及该第二存储空间用于存储第一原固件,该待升级固件的版本比该第一原固件的版本更新。
结合第二方面,在第二方面的一种可能的实现方式中,处理单元还可以用于在根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,将该待升级固件存储到该第一存储空间。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该终端还可以包括第一通信单元,用于在该处理单元将该待升级固件存储到该第一存储空间之前,接收服务器发送的该待升级固件;以及该处理单元,还用于对该待升级固件的完整性进行校验,以及根据校验的结果确定是否将该待升级固件存储到该第一存储空间。
可选地,该处理单元具体用于在该待升级固件的校验为完整的情况下,将该待升级固件存储到该第一存储空间。
可选地,该处理单元还可以用于设置该引导程序的启动标识为用于指示该第一存储空间为该待启动存储空间,根据该引导程序的启动标识从该至少两个存储空间中确定该第一存储空间为该待启动存储空间,在该第一存储空间中启动该待升级固件。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该处理单元还可以用于将该待升级固件存储到缓存区,在该待升级固件的校验为完整的情况下,将该待升级固件从该缓存区复制到该第一存储空间。
可选地,在将该待升级固件从该缓存区复制到该第一存储空间失败的情况下,该引导程序的启动标识为用于指示该第二存储空间为该待启动存储空间,该处理单元还可以用于根据该引导程序的启动标识从该至少两个存储空间中确定该第二存储空间为该待启动存储空间,以及在该第二存储空间中启动该第一原固件。
可选地,在对该待升级固件的完整性校验失败的情况下或者在该终端从该服务器接收该待升级固件失败的情况下,该引导程序的启动标识为用于指示该第二存储空间为该待启动存储空间,该处理单元还用于根据该引导程序的启动标识从该至少两个存储空间中确定该第二存储空间为该待启动存储空间,以及在该第二存储空间中启动该第一原固件。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该第一通信单元具体用于接收该服务器发送的该待升级固件的一个或多个数据包;以及该处理单元还可以用于对该待升级固件的一个或多个数据包中的每个数据包进行正确性校验,以及在正确性校验不通过的次数超过第一阈值的情况下,停止从该服务器接收该待升级固件,其中该第一阈值为大于或等于1的正整数。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该第一通信单元,还用于接收该服务器发送的该待升级固件的头文件信息,该待升级固件的头文件信息包括该待升级固件的版本信息;该处理单元,还用于对该待升级固件的头文件信息的进行解析;以及该第一通信单元,具体用于在解析该头文件信息为合法和/或该头文件信息与该终端当前的版本信息匹配的情况下,接收该服务器发送的该待升级固件的一个或多个数据包。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该第一通信单元还可以用于接收该服务器发送的第一MD5校验码;以及该处理单元还可以用于计算该待升级固件的第二MD5校验码,比较该第一MD5校验码与该第二MD5校验码是否一致,以及若该第一MD5校验码与该第二MD5校验码一致,则确定校验成功,若该第一MD5校验码与该第二MD5校验码不一致,则确定校验失败。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该处理单元,还用于在该第一存储空间中启动该待升级固件失败的情况下,将该引导程序的启动标识从用于指示该第一存储空间作为该待启动存储空间设置成用于指示该第二存储空间作为该待启动存储空间,以及根据该引导程序的启动标识在该第二存储空间中重启该第一原固件。
可选地,该处理单元还可以用于若该第二存储空间中重启该第一原固件失败的次数超过第二阈值,则将该引导程序的启动标识从用于指示该第二存储空间作为该待启动存储空间设置成用于指示该至少两个存储空间中的第三存储空间作为该待启动存储空间,以及根据该引导程序的启动标识在该第三存储空间重启第二原固件;其中,该第三存储空间用于存储该第二原固件,该待升级固件的版本比该第二原固件的版本更新,该第二阈值为大于或等于1的正整数。
可选地,该终端还包括第二通信单元,第二通信单元用于向该服务器发送用于指示升级失败的信息,以便该服务器根据该用于指示升级失败的信息检测该待升级固件的有效性。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该终端还包括第三通信单元,该第三通信单元用于在该第一存储空间中启动该待升级固件成功的情况下,向该服务器发送用于指示升级成功的信息。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该终端还包括第四通信单元,该第四通信单元用于向服务器发送用于指示该终端启动成功的固件版本信息。
结合第二方面或其上述实现方式中,在第二方面的一种可能的实现方式中,该处理单元可以具体用于在该引导程序的启动标识用于指示该至少两个存储空间中的多个存储空间的情况下,根据该多个存储空间的优先级次序确定一个存储空间作为待启动存储空间。可选地,该处理单元具体用于将该多个存储空间中启动次数最多的存储空间确定为该待启动存储空间。
第三方面,提供了一种终端,该终端包括处理器和存储器,该处理器与该存储器耦合,该处理器用于读取并执行该存储器中的指令,以实现上述第一方面中的任一种可能实现方式中的方法。
第四方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码被执行时,实现上述第一方面中的任一种可能实现方式中的方法。
第五方面,提供了一种升级系统,包括前述的终端和服务器。
在本申请实施例中,根据引导程序的启动标识从终端的至少两个存储空间中确定一个存储空间作为待启动存储空间,在该待启动存储空间中启动固件,在多个存储空间中包括用于存储来自服务器的待升级固件的第一存储空间和用于存储第一原固件的第二存储空间。采用多个存储空间来存储能正常启动的固件,即通过在终端进行固件分区,使得终端可以在其中的一个存储空间中启动新固件,即使升级失败也能够在其它存储空间启动原固件。这样,提高了终端在升级过程中的稳定性,能够有效地减少终端服务不可用情况的发生,从而降低维护或售后的成本。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本申请实施例提供的一种终端升级方法的过程的示意性流程图。
图2是本申请实施例提供的另一种升级方法的过程的示意性流程图。
图3是本申请实施例提供的一种终端的示意性结构框图。
图4是本申请实施例提供的另一种终端的示意性结构框图。
图5是本申请实施例提供的一种升级系统的示意性结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本申请保护的范围。
应理解,本申请实施例中的“第一”、“第二”以及“第三”仅为了区分,不应对本申请构成任何限定。还应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还需要说明的是,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
应理解,本申请实施例的技术方案可以应用于各种通信系统,例如:GSM(GlobalSystem of Mobile communication,全球移动通讯)系统、CDMA(Code Division MultipleAccess,码分多址)系统、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)系统、GPRS(General Packet Radio Service,通用分组无线业务)、LTE(Long TermEvolution,长期演进)系统、LTE FDD(Frequency Division Duplex,频分双工)系统、LTETDD(Time Division Duplex,时分双工)、UMTS(Universal Mobile TelecommunicationSystem,通用移动通信系统)、WiMAX(Worldwide Interoperability for MicrowaveAccess,全球互联微波接入)通信系统、微波通信系统等。
在本申请实施例中,移动通信的空中接口可以采用包括但不限于WAP(WirelessApplication Protocol,无线应用协议)、GPRS、CDMA1X或短消息技术。
本申请实施例的终端(Terminal)可以称为用户设备(UE,User Equipment),可以经无线接入网与一个或多个核心网进行通信,也可以经有线接入方式接入网络,实现与OTA服务器之间的通信。
终端可以是移动终端(Mobile Terminal)或移动用户设备。例如,终端可以是包括但不限于智能手机,平板电脑,智能手表,单兵设备,汽车、GPS(Global PositioningSystem,全球定位系统)、或便携式、袖珍式、手持式、计算机内置的或者车载的移动装置等。
终端也可以是智能设备(如智能家电或人工智能设备)。在一些实施例中,终端可以包括但不限于智能音箱、灯、窗帘等,空调、电视、智能厨卫、电饭煲、冰箱、洗衣机或空气净化器等。终端也可以包括但不限于智能3D人脸锁、猫眼、指纹锁、扫地机器人、或智能网络监控摄像头等网络设备。
终端还可以是各种工业传感器(如温度计、湿度计或采集卡等)。
终端可以是Android智能终端或者iOS智能终端。
应理解,本申请实施例对于终端的类型不做限制。
本申请实施例的技术方案可以应用于物联网的各个领域,包括但不限于以下应用场景:物流(如智能运输)、健康与医疗(如数字化医疗)、环境保护、社交智能交通、智能建筑、定位导航、视频监控、消防、管理、温感探测、工业自动化、军事、林业、农业、水务、电力、气象、石化、公共安全、煤炭、供应链、金融或移动POS(Point Of Sale,销售终端)等。应注意,上述例子并不意图穷举本申请实施例的所有可能的应用场景。
下面将结合附图详细说明本申请提供的技术方案。
图1是本申请实施例提供的一种终端升级方法的过程的示意性流程图。图1的方法可以由终端执行。
101,根据引导程序的启动标识从终端的至少两个存储空间中确定一个存储空间作为待启动存储空间。
该引导程序的启动标识用于指示下次启动从哪个存储空间启动固件,即下次从哪个分区启动固件。
该待启动存储空间为该终端在OTA升级过程中用于固件重启的一个存储分区。
该至少两个存储空间分别具有不同的存储地址。
该至少两个存储空间包括第一存储空间和第二存储空间,第一存储空间用于存储来自服务器的待升级固件,该第二存储空间用于存储第一原固件。
第一存储空间和第二存储空间具有不同的存储地址,在一些实施例中,第一存储空间和第二存储空间为不同的固件存储分区。
需要说明的是,待升级固件的版本比第一原固件的版本更新在一些实施例中,第一原固件可以是终端当前版本的固件,待升级固件的版本比当前版本高一级的版本;待升级固件可以为最新版本的固件,第一原固件的版本可以为比最新版本早的任一版本;或者,或者待升级固件可以为最新版本的固件,第一原固件的版本可以是次新版本。在本申请一些实施例中,待升级固件也可以称为“新固件”,第一原固件也可以称为“旧固件”。
应理解,本申请对于存储空间的类型不做限制,如存储空间可以是包括但不限于Flash(闪存)、磁盘、硬盘或文件夹等。
102,在该待启动存储空间中启动固件。
在本申请实施例中,多个存储空间用于存储不同的固件,如包括有用于存储待升级固件的存储分区和用于存储原固件的存储分区,使得终端在OTA升级过程中可以在其中的一个存储空间中启动新固件,即使升级失败也能够在其它存储空间启动原固件。这样,提高了终端在升级过程中的稳定性,能够有效地保证系统的正常启动,减少终端服务不可用情况的发生,从而降低维护或售后的成本。
在一些实施例中,在步骤101之前,可以将待升级固件存储到第一存储空间。
可选地,终端可以接收服务器发送的待升级固件,对该待升级固件的完整性进行校验,以及根据校验的结果确定是否将该待升级固件存储到所述第一存储空间。
在一些实施例中,在待升级固件校验为完整的情况下,将该待升级固件存储到第一存储空间。进一步地,设置引导程序的启动标识为用于指示第一存储空间为待启动存储空间,在第一存储空间中启动带升级固件。例如,设置引导程序的启动标识,以标识下次启动从存储新固件的分区启动。
在一些实施例中,终端在接收服务器发送的待升级固件之后,可以将待升级固件暂时存储到缓存区(如DDR(Double Data Rate,双倍数据率)缓存区),在缓存区对该待升级固件的完整性进行校验。
例如,在待升级固件校验为完整的情况下,将待升级固件从缓存区复制到第一存储空间,设置引导程序的启动标识以标识下次启动从存储待升级固件的第一存储空间中启动。
又例如,在待升级固件校验为不完整的情况下,可以不改变引导程序的启动标识,即此时,引导程序的启动标识可以仍为用于指示第二存储空间为待启动存储空间,以标识下次从存储第一原固件的第二存储空间中启动。
在一些实施例中,终端将接收到的待升级固件存储到第一存储空间之后对该待升级固件的完整性进行校验,根据校验的结果确定是否将引导程序的启动标识设置为用于指示从第一存储空间启动。类似的,在待升级固件校验为完整的情况下,设置引导程序的启动标识以标识下次启动从存储待升级固件的第一存储空间中启动,在待升级固件校验为不完整的情况下引导程序的启动标识可以仍为用于指示第二存储空间为待启动存储空间,以标识下次从存储第一原固件的第二存储空间中启动。
应理解,本申请对于固件完整性校验的次序和位置不做限定,无论是在存储到存储空间之前的缓存区还是在存储空间中进行校验都应落入本申请的范围内。
在一些实施例中,在终端对待升级固件的完整性的校验方式中,可以接收服务器发送的第一MD5校验码,通过计算接收到的待升级固件的第二MD5校验码(如在待升级固件包括多个数据包的情况下,终端接收到所有数据包后计算出第二MD5校验码),将第一MD5校验码与第二MD5校验码进行匹配(如比较第一MD5校验码与第二MD5校验码是否一致)。
可选地,若第一MD5校验码与第二MD5校验码一致,则确定校验成功(即待升级固件完整);若第一MD5校验码与第二MD5校验码不一致,则确定校验失败(即待升级固件不完整)。
可选地,若第一MD5校验码与第二MD5校验码一致,可以将缓存区的待升级固件复制到第一存储空间,将引导程序的启动标识设置为用于指示第一存储空间为待启动存储空间,以标识下次启动从存储待升级固件的第一存储空间中启动。
通过上述方案,对待升级固件的完整性进行校验,有效保证了第一存储空间存储的新版本的固件为能够正常启动的固件,增加终端升级的成功率。
在一些实施例中,待升级固件从缓存区复制到第一存储空间失败或者在终端从服务器接收待升级固件失败(即固件传输失败),例如掉电或者网络中断等。此时,第一存储空间和第二存储空间存储的内容均没有改变,可以都存储有能正常启动的旧版本的固件,引导程序的启动标识也可以不改变。可选地,引导程序的启动标识可以为用于指示第二存储空间为待启动存储空间,以标识下次启动从存储第一原固件的第二存储空间中启动。
例如,将DDR缓存区的带升级固件的内容复制到第一存储空间(如Flash(闪存)存储空间)失败,如出现掉电或网络中断,即第一存储空间的固件非法,则引导程序的启动标识仍用于指示第二存储空间为待启动存储空间,以标识下次启动从存储第一原固件的第二存储空间中启动。
可见,无论基于何种原因导致终端升级失败,终端能够启动可用版本的固件,从而有效地保证终端的正常启动,不会影响到系统的正常运行。
在一些实施例中,终端接收到的该待升级固件可以包括一个或多个数据包,终端可以对每个数据包进行正确性校验(如数据包的大小和/或次序等是否正确)。换句话说,若终端接收到正确的数据包,则校验通过,若终端接收到错误的数据包,则校验不通过。
可选地,在对每个数据包的校验都通过的情况下,可以进一步对固件的完整性进行校验。
可选地,在对数据包的正确性校验不通过的次数超过第一阈值的情况下,可以停止从服务器接收待升级固件的数据包(即结束OTA升级),其中第一阈值为大于或等于1的正整数。例如,校验不通过的次数超过3次时,结束OTA升级。这样,能够保证数据包传输过程中的可靠性和稳定性。
在一些实施例中,终端在接收由服务器发送的该待升级固件时,先对该待升级固件的头文件信息进行解析,在解析头文件信息为合法和/或在该头文件信息与终端的版本信息匹配的情况下,终端才开始接收服务器发送的该待升级固件的一个或多个数据包。
具体地,该待升级固件在固定地址(如首地址)上包括一段有序的数字序列,可称之为头文件信息,此序列可以包括版本信息。该版本信息包括但不限于如APP(应用软件)的系统版本、kernel版本、RootFS版本和/或算法版本等信息。例如,终端接收待升级固件时优先解析头文件信息,若头文件信息非法,则终端可以拒绝升级。又例如,终端可以将头文件信息中的版本信息与终端上存储空间中存储的固件的版本信息(如kernel版本和/或算法版本)进行匹配,若不匹配,则终端可以拒绝升级。再例如,终端解析该头文件信息为合法,且头文件的版本信息与终端上的版本信息匹配成功,终端开始接收服务器下发的待升级固件的一个或多个数据包。
通过上述方案,对待升级固件的每个数据包的正确性和待升级固件的完整性进行校验,校验都通过的固件存储在第一存储空间中,有效保证了第一存储空间存储的待升级固件为能够正常启动的固件,增加终端升级的成功率,即使终端升级失败也能够在其它存储空间启动原固件。这样,提高了终端在升级过程中的稳定性,能够有效地保证系统的正常启动,减少终端服务不可用情况的发生,从而降低维护或售后的成本。
在一些实施例中,待启动存储空间可以为第一存储空间,即在步骤102中,在第一存储空间中启动待升级固件,若启动失败,可以将引导程序的启动标识从用于指示第一存储空间作为待启动存储空间设置成用于指示第二存储空间作为待启动存储空间,则下次将在第二存储空间中重启第一原固件。
可选地,若在第二存储空间中重启第一原固件失败的次数超过第二阈值(第二阈值为大于或等于1的正整数,如第二阈值可以设为3),可以将引导程序的启动标识从用于指示第二存储空间作为待启动存储空间设置成用于指示第三存储空间作为待启动存储空间,则下次将在第二存储空间中重启第二原固件。其中,第三存储空间用于存储第二原固件,待升级固件的版本比第二原固件的版本更新。例如,第三存储空间可以为第一存储空间的备份,即第二原固件与第一原固件的版本相同。
需要说明的是,第二原固件的版本可以为比最新版本早的任一版本,如第二原固件的版本可以是次新版本或者次次新版本。应理解,本申请对此不做限制。
在一些实施例中,在终端升级失败的情况下,即终端在第一存储空间启动待升级固件失败的情况下,可以向服务器发送用于指示升级失败的信息,以便服务器检测待升级固件的有效性。这样,服务器可以给终端重新下发一个稳定可靠的新固件。
在一些实施例中,在终端升级成功的情况下,可以通知服务器升级成功,如向服务器发送用于指示升级成功的信息。
在一些实施例中,终端在启动成功后,可以向服务器发送启动成功的固件版本信息。例如,终端在第一存储空间启动成功,则可以向服务器发送待升级固件的版本信息。又例如,终端在第二存储空间启动成功,则可以向服务器发送第一原固件的版本信息。再例如,终端在第三存储空间启动成功,则可以向服务器发送第二原固件的版本信息。
在一些实施例中,引导程序的启动标识可能指示该至少两个存储空间中的多个存储空间,在此情况下,终端可以根据该多个存储空间的优先级次序确定一个存储空间作为待启动存储空间。例如,从该多个存储空间中将固件启动次数最多的存储空间确定为待启动存储空间。又例如,从该多个存储空间中将存储有较新版本固件的存储空间确定为待启动存储空间。当然,还可以从该多个存储空间中随机选择一个存储空间作为待启动存储空间。应理解,本申请对于该优先级的设置不做限制。
下面将结合图2和表格1对本申请的实施例进行更详细的说明,应理解,为了简洁且便于理解,以图2和表格1为例进行说明,但本申请实施例并不限于此。
如下面的表格1所示,将以至少两个存储空间包括3个APP存储分区进行举例说明,分别是A区、B区和C区的Flash(闪存)空间。至少两个存储空间还可以是两个或更多的存储空间,且存储空间的类型可以是Flash、磁盘、硬盘或文件夹等具有不同存储地址的存储分区。应注意,本申请实施例对存储空间的分区数目和存储空间的类型不做限制。
表格1
在上述的表格1中,以B区作为上述的第一存储空间,在此次终端升级的过程中将用于存储待升级的固件,以A区作为上述的第二存储空间,以及以C区作为上述的第三存储空间。在终端升级之前,A区和B区可以均为系统能够正常启动分区,C区可以为A区的备份区,B区以存储有比待升级固件的版本更早的固件为例,当然也可以不存储任何固件。A区和C区以存储有终端当前版本的固件为例,当然,A区和C区也可以存储版本比当前版本更早的固件,A区和C区可以存储相同或不同版本的原固件,本申请实施例对此不做限制。
表格1中的Boot_flag1、Boot_flag2和Boot_flag3分别是A区、B区和C区所对应的用于指示是否启动的标识信息;Boot_Seq1,Boot_Seq1、Boot_Seq2、Boot_Seq3分别是A区、B区和C区所对应的用于指示启动优先级(如启动次数);Boot_ErrNum1、Boot_ErrNum2和Boot_ErrNum3为分别是A区、B区和C区所对应的用于指示升级过程中当前分区启动失败的次数。当前Boot启动标识Boot_flag1(如为true)用于标识下次在A区启动。App_Header1信息、App_Heade2信息和App_Header3信息分别是A区、B区和C区对应的表示所在分区存储的固件的版本信息,可以用于对升级固件的版本信息进行匹配。
如图2所示,图2是本申请实施例提供的另一种升级方法的过程的示意性流程图。
201,服务器下发OTA_Header信息。
相应地,终端接收服务器下发的OTA_Header信息,该OTA_Header信息可以包括有MD5校验码(即为第一MD5校验码)。
终端接收服务器发送的待升级固件的头文件信息,在固定地址中可以包括有待升级固件的APP_Header信息(如系统版本、kernel版本、RootFS版本和/或算法版本)。
202,终端确定服务器下发的待升级固件的APP_Header信息是否匹配。
例如,终端将待升级固件的APP_Header信息与终端当前的版本的信息(如A区的APP_Header1信息)进行匹配。
可选地,若不匹配,终端可以拒绝升级,即结束OTA升级。
可选地,若匹配成功,可以执行步骤203。
203,终端接收服务器发送的待升级固件的数据包。
该待升级固件可以是一个数据包也可以是被服务器分割后的多个数据包,可选地,终端逐个接收待升级固件的数据包。
204,终端对接收到的待升级固件的数据包进行正确性校验。
可选地,若终端接收到正确的数据包,则校验通过,可执行步骤205。
可选地,若终端接收到错误的数据包,则校验不通过,终端可以请求服务器重发该数据包。终端确定校验不通过的次数是否大于某一阈值如3(参见图2中的步骤206),若校验不通过的次数超过3次,则终端可以结束OTA升级。
205,终端将校验通过的数据包暂时存储在DDR缓存区。
也就是说,终端对存储到DDR缓存区的每个数据包的正确性都进行了校验,能够有效地保证数据包的可靠性和稳定性。
若在待升级固件的传输过程中掉电或网络中断,在此情况下,A区和B区当前存储的内容没有改变,即A区和B区都可以存储有能正常启动的旧版本的固件,因此无论在A区还是在B区启动都能够保证系统下次正常启动。可选地,Boot启动标识Boot_flag1为true,可以从A区重新启动。可选地,若Boot启动标识Boot_flag1和Boot_flag2均为true,则可以通过Boot启动优先级信息Boot_Seq1和Boot_Seq2确定从A区重启还是从B区重启。例如,A区启动次数大于B区启动的次数或者A区存储的固件版本比B区存储的固件版本更新,则可以选择从A区重启。
207,终端确定该待升级固件的数据包是否是最后一个数据包。
可选地,待升级固件可以包括一个或多个数据包,当终端确定接收到待升级固件的数据包是最后一个数据包时,即终端接收了该待升级固件的所有数据包,则执行步骤208,否则继续接收该待升级固件的数据包,即返回步骤203。
208,终端对待升级固件的进行MD5校验。
可选地,终端计算接收到的待升级固件的MD5校验码(第二MD5校验码),与OTA_Header信息中包括的MD5校验码进行比较是否一致。若两者不一致(即检验失败),则结束OTA升级;若两者一致,则执行步骤209。
209,终端将待升级固件从缓存区复制到B区Flash空间。
若将DDR缓存区的升级固件复制到B区的Flash地址时掉电或网络中断,在此情况下,B区可能固件非法。此时,Boot启动标识Boot_flag1仍标识从A区启动,有效地保证了系统下次正常启动。
2010,终端设置Boot启动标识为用于指示从B区启动。
例如,当在步骤209中完成复制后,终端改变对应于A区的Boot启动标识Boot_flag1项,设置B区对应的Boot_flag2项为Boot启动标识,用于标识下次从B区启动。
2011,终端从B区重启。
即终端从B区重启新固件。
可选地,若重启成功(OTA升级成功),则可以执行步骤2012。
可选地,若终端此次升级成功,即此时B区存储有新版本的固件,且Boot启动标识设置为从B区启动,若有更新版本的固件需要升级,则可以将A区作为上述实施例中的第一存储空间,用于存储更新版本的固件。可选地,C区可以更改为B区的备份,也可以是任一原固件。
若在B区重启失败,则可以执行步骤2013。
2012,终端通知服务器OTA升级成功。
可选地,终端可以向服务器发送用于指示升级成功的信息。
可选地,终端可以向服务器发送新固件的版本信息。
2013,终端设置Boot启动标识为用于指示从A区启动。
例如,终端改变对应于B区的Boot启动标识Boot_flag2项,设置A区对应的Boot_flag1项为Boot启动标识,用于标识下次从A区启动。
2014,终端从A区重启。
可选地,当终端从A区重启成功时,可以通知服务器OTA升级失败(即可执行步骤2017),如终端向服务器发送用于指示升级失败的信息。
可选地,终端可以向服务器发送A区存储的固件的版本信息。
可选地,终端从A区重启失败,则执行步骤2015。
2015,终端确定从A区重启失败的次数是否大于3。
可选地,从A区重启失败的次数如Boot_ErrNum1小于或等于3时,终端可以选择继续从A区重启(即返回步骤2014)。
可选地,从A区重启失败的次数如大于3次时,可以执行步骤2016。
2016,终端设置Boot启动标识为用于指示从C区启动。
例如,终端改变对应于A区的Boot启动标识Boot_flag1项,设置C区对应的Boot_flag3项为Boot启动标识,用于标识下次从C区启动。
可见,无论基于何种原因导致终端发生异常,终端的系统能够自我恢复到一个可用版本,从而有效地保证终端的正常启动,不会影响到系统的正常运行。
2017,终端通知服务器OTA升级失败。
可选地,终端向服务器发送用于指示升级失败的信息。
服务器接收到终端发送的用于指示升级失败的信息,可以检测待升级固件的有效性。这样,服务器可以发送一个更可靠的新版本固件给终端,从而减少客诉和后期维护的成本。
可选地,终端可以向服务器发送用于指示该终端启动成功的固件版本信息。例如,若终端从B区启动成功,则向服务器发送B区存储的新固件的版本信息;若终端从A区启动成功,则向服务器发送A区存储的第一原固件的版本信息(如终端当前的固件版本号);若终端从C区启动成功,则向服务器发送C区存储的第二原固件的版本信息。
通过上述升级方法,对待升级固件的每个数据包的正确性和待升级固件的完整性进行校验,有效保证了B区存储的待升级固件为能够正常启动的固件,增加终端升级的成功率,提高了终端在升级过程中的稳定性。即使终端从B区启动失败也能够在A区重启原固件,若在A区重启失败可以从备份区C区重启。并且在升级过程在出现掉电或网络中断的情况下,终端也能启动可用版本的固件实现自我恢复。这样,能够有效地保证系统的正常启动,减少终端服务不可用情况的发生,从而降低维护或售后的成本。
图3是本申请实施例提供的一种终端的示意性结构框图。该终端300包括处理单元301。该处理单元301用于根据引导程序的启动标识从终端的至少两个存储空间中确定一个存储空间作为待启动存储空间,以及在该待启动存储空间中启动固件。
其中,该待启动存储空间为该终端在OTA升级过程中用于固件重启的一个存储分区。
该至少两个存储空间分别具有不同的存储地址,该至少两个存储空间包括第一存储空间和第二存储空间,该第一存储空间用于来自服务器的存储待升级固件以及该第二存储空间用于存储第一原固件,该待升级固件的版本比该第一原固件的版本更新。
在一些实施例中,该处理单元301可以具体用于在该引导程序的启动标识用于指示该至少两个存储空间中的多个存储空间的情况下,根据该多个存储空间的优先级次序确定一个存储空间作为待启动存储空间。
在一些实施例中,处理单元301还可以用于在根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,将该待升级固件存储到该第一存储空间。
可选地,该终端300还可以包括第一通信单元302,用于接收服务器发送的该待升级固件。该处理单元301还可以用于对该待升级固件的完整性进行校验(如上述的MD5校验),以及根据校验的结果确定是否将该待升级固件存储到该第一存储空间。例如,该处理单元301具体用于在该待升级固件的校验为完整的情况下,将该待升级固件存储到该第一存储空间。
在一些实施例中,该处理单元301还可以用于设置该引导程序的启动标识为用于指示该第一存储空间为该待启动存储空间,根据该引导程序的启动标识从该至少两个存储空间中确定该第一存储空间为该待启动存储空间,在该第一存储空间中启动该待升级固件。
可选地,该处理单元301还可以用于将该待升级固件存储到缓存区,在该待升级固件的校验为完整的情况下,将该待升级固件从该缓存区复制到该第一存储空间。
在一些实施例中,该处理单元301还可以用于在该第一存储空间中启动该待升级固件失败的情况下,将该引导程序的启动标识从用于指示该第一存储空间作为该待启动存储空间设置成用于指示该第二存储空间作为该待启动存储空间,以及根据该引导程序的启动标识在该第二存储空间中重启该第一原固件。
可选地,该处理单元301还可以用于若第二存储空间中重启第一原固件失败的次数超过第二阈值,则将引导程序的启动标识从用于指示该第二存储空间作为该待启动存储空间设置成用于指示该至少两个存储空间中的第三存储空间作为该待启动存储空间。其中,该第三存储空间存储该第二原固件,该待升级固件的版本比该第二原固件的版本更新,该第二阈值为大于或等于1的正整数。
可选地,该第一通信单元302还可以用于接收服务器发送的该待升级固件的头文件信息,该待升级固件的头文件信息可以包括该待升级固件的版本信息。进一步地,该处理单元301还可以用于对该待升级固件的头文件信息的进行解析;以及该第一通信单元301可以具体用于在解析该头文件信息为合法和/或该头文件信息与该终端当前的版本信息匹配的情况下,接收该服务器发送的该待升级固件的一个或多个数据包。
在一些实施例中,该终端300还可以包括第二通信单元303,第二通信单元303用于向该服务器发送用于指示升级失败的信息,以便该服务器根据该用于指示升级失败的信息检测该待升级固件的有效性。
在一些实施例中,该终端300还可以包括第三通信单元304,该第三通信单元304用于在该第一存储空间中启动该待升级固件成功的情况下,向该服务器发送用于指示升级成功的信息。
在一些实施例中,该终端300还可以包括第四通信单元305,该第四通信单元305用于向服务器发送用于指示该终端启动成功的固件版本信息。
图3所示的终端300可用于执行图1和/或图2的方法。
例如,处理单元301可用于执行图2方法中的步骤202、步骤204-2011和步骤2013-2016;第一通信单元302可用于执行图2方法的步骤201中接收服务器下发的OTA_Header信息,还可以用于执行步骤203;第二通信单元303可以用于执行2017,第三通信单元304可以用于执行步骤2012。
应理解,各个单元执行上述相应步骤的具体过程在上述方法实施例中已经详细说明,为了简洁,在此不再赘述。
本申请实施例的终端采用多个存储空间来存储能正常启动的固件,即通过固件分区,使得终端可以在其中的一个存储空间中启动新固件,即使升级失败也能够在其它存储空间启动原固件。这样,本申请实施例的终端在升级过程中的稳定性更高,能够有效地保证系统的正常启动,减少服务不可用情况的发生,从而降低维护或售后的成本。
图4是本申请实施例提供的另一种终端的示意性结构框图。如图4所示,终端400(可以是终端设备或者应用在终端设备上的芯片)包括一个或多个处理器401和一个或多个存储器402耦合,处理器401用于读取并执行该存储器402存储的指令(或计算机程序),使得该终端可以执行本申请的方法实施例中由终端执行的相应流程和/或操作。
可选地,该终端400还可以包括个或多个通信接口403,处理器401可以用于控制该通信接口403与外部设备(如前述的服务器)进行通信(如接收和/或发送数据),该通信接口可以为收发器、输入/输出接口、或电路等。
例如,终端400可以执行图1和图2中由终端设备执行的步骤,为了简洁,此处不再赘述。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、DSP(Digital SignalProcessing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM(read-onlymemory,只读存储器)、PROM(programmable ROM,可编程只读存储器)、EPROM(erasablePROM,可擦除可编程只读存储器)、EEPROM(electrically EPROM,电可擦除可编程只读存储器)或闪存。易失性存储器可以是RAM(random access memory,随机存取存储器),其用作外部高速缓存。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码被运行时,能够实现上述各个实施例中终端执行的方法。
图5是本申请实施例提供的一种升级系统的示意性结构框图。该升级系统500包括终端501和服务器502,该服务器502用于通过通信接口与该终端501进行通信,该终端501可以执行本申请的方法实施例中由终端执行的相应流程和/或操作,该服务器502可以执行本申请的方法实施例中涉及服务器执行的相应流程和/或操作。
为了简洁,此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种终端升级方法,其特征在于,包括:
根据引导程序的启动标识从终端的至少两个存储空间中确定一个存储空间作为待启动存储空间,所述待启动存储空间为所述终端在空间下载技术OTA升级过程中用于固件重启的一个存储分区;和
在所述待启动存储空间中启动固件;
其中,所述至少两个存储空间分别具有不同的存储地址,所述至少两个存储空间包括第一存储空间和第二存储空间,所述第一存储空间用于存储来自服务器的待升级固件以及所述第二存储空间用于存储第一原固件,所述待升级固件的版本比所述第一原固件的版本更新。
2.根据权利要求1所述的方法,其特征在于,在所述根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,所述方法还包括:
将所述待升级固件存储到所述第一存储空间。
3.根据权利要求2所述的方法,其特征在于,在所述将所述待升级固件存储到所述第一存储空间之前,所述方法还包括:
接收服务器发送的所述待升级固件;
对所述待升级固件的完整性进行校验;以及
所述将所述待升级固件存储到所述第一存储空间,包括:
根据校验的结果确定是否将所述待升级固件存储到所述第一存储空间。
4.根据权利要求3所述的方法,其特征在于,所述根据校验的结果确定是否将所述待升级固件存储到所述第一存储空间,包括:
在所述待升级固件的校验为完整的情况下,将所述待升级固件存储到所述第一存储空间;
优选地,设置所述引导程序的启动标识为用于指示所述第一存储空间为所述待启动存储空间,根据所述引导程序的启动标识从所述至少两个存储空间中确定所述第一存储空间为所述待启动存储空间,以及在所述第一存储空间中启动所述待升级固件。
5.根据权利要求3或4所述的方法,其特征在于,在所述接收所述服务器发送的待升级固件之后,所述方法还包括:
将所述待升级固件存储到缓存区;
所述根据校验的结果确定是否将所述待升级固件存储到所述第一存储空间,包括:
根据所述校验的结果确定是否将所述待升级固件从所述缓存区复制到所述第一存储空间。
6.根据权利要求5所述的方法,其特征在于,在所述待升级固件从所述缓存区复制到所述第一存储空间失败的情况下,所述引导程序的启动标识为用于指示所述第二存储空间为所述待启动存储空间,
所述根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间,包括:
根据所述引导程序的启动标识从所述至少两个存储空间中确定所述第二存储空间为所述待启动存储空间;
以及
所述在所述待启动存储空间中启动固件,包括:
在所述第二存储空间中启动所述第一原固件。
7.根据权利要求2所述的方法,其特征在于,在所述将所述待升级固件存储到所述第一存储空间之前,所述方法还包括:
接收服务器发送的待升级固件;
在所述将所述待升级固件存储到所述第一存储空间之后,所述根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,所述方法还包括:
在所述第一存储空间中对所述待升级固件的完整性进行校验;
根据所述校验的结果确定是否将所述引导程序的启动标识设置为用于指示从所述第一存储空间启动。
8.根据权利要求3-7任一项所述的方法,其特征在于,在对所述待升级固件的完整性校验失败的情况下或者在所述终端从所述服务器接收所述待升级固件失败的情况下,所述引导程序的启动标识为用于指示所述第二存储空间为所述待启动存储空间,
所述根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间,包括:
根据所述引导程序的启动标识从所述至少两个存储空间中确定所述第二存储空间为所述待启动存储空间;以及
所述在所述待启动存储空间中启动固件,包括:
在所述第二存储空间中启动所述第一原固件;
优选地,所述终端从所述服务器接收所述待升级固件失败的情况包括:在所述终端从所述服务器接收所述待升级固件的过程中网络中断或掉电的情况下。
9.根据权利要求3-8任一项所述的方法,其特征在于,所述接收服务器发送的待升级固件,包括:
接收所述服务器发送的所述待升级固件的一个或多个数据包;
对所述待升级固件的一个或多个数据包中的每个数据包进行正确性校验;以及
在正确性校验不通过的次数超过第一阈值的情况下,停止从所述服务器接收所述待升级固件,其中所述第一阈值为大于或等于1的正整数。
10.根据权利要求3-9任一项所述的方法,其特征在于,所述接收服务器发送的待升级固件,包括:
接收所述服务器发送的所述待升级固件的头文件信息,所述待升级固件的头文件信息包括所述待升级固件的版本信息‘
对所述待升级固件的头文件信息的进行解析‘
在解析所述头文件信息为合法和/或所述头文件信息与所述终端当前的版本信息匹配的情况下,接收所述服务器发送的所述待升级固件的一个或多个数据包。
11.根据权利要求3-10任一项所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的第一MD5校验码‘
所述对所述待升级固件的完整性进行校验,包括:
计算所述待升级固件的第二MD5校验码‘
比较所述第一MD5校验码与所述第二MD5校验码是否一致;以及
若所述第一MD5校验码与所述第二MD5校验码一致,则确定校验成功,若所述第一MD5校验码与所述第二MD5校验码不一致,则确定校验失败。
12.根据权利要求1-11任一项所述的方法,其特征在于,
所述在所述待启动存储空间中启动固件,包括:
在所述第一存储空间中启动所述待升级固件;
在启动失败的情况下,所述方法还包括:
将所述引导程序的启动标识从用于指示所述第一存储空间作为所述待启动存储空间设置成用于指示所述第二存储空间作为所述待启动存储空间;以及
根据所述引导程序的启动标识在所述第二存储空间中重启所述第一原固件。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
若所述第二存储空间中重启所述第一原固件失败的次数超过第二阈值,将所述引导程序的启动标识从用于指示所述第二存储空间作为所述待启动存储空间设置成用于指示所述至少两个存储空间中的第三存储空间作为所述待启动存储空间‘以及
根据所述引导程序的启动标识在所述第三存储空间重启第二原固件‘其中,所述第三存储空间用于存储所述第二原固件,所述待升级固件的版本比所述第二原固件的版本更新,所述第二阈值为大于或等于1的正整数;
优选地,所述第三存储空间为所述第一存储空间的备份,所述第二原固件与所述第一原固件的版本相同,或者所述第二原固件与所述第一原固件具有不同的版本。
14.根据权利要求12或13所述的方法,所述方法还包括:
向所述服务器发送用于指示升级失败的信息,以便所述服务器根据所述用于指示升级失败的信息检测所述待升级固件的有效性;
优选地,所述用于指示升级失败的信息包括所述终端启动成功的固件版本信息。
15.根据权利要求1-14任一项所述的方法,其特征在于,
所述在所述待启动存储空间中启动固件,包括:
在所述第一存储空间中启动所述待升级固件‘
在启动成功的情况下,所述方法还包括:
向所述服务器发送用于指示升级成功的信息‘
优选地,所述用于指示升级成功的信息包括所述终端启动成功的固件版本信息。
16.根据权利要求1-15任一项所述的方法,所述根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间,包括:
在所述引导程序的启动标识用于指示所述至少两个存储空间中的多个存储空间的情况下,根据所述多个存储空间的优先级次序确定一个存储空间作为待启动存储空间;
优选地,将所述多个存储空间中启动次数最多的存储空间确定为所述待启动存储空间。
17.一种终端,其特征在于,包括:
处理单元,用于根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间,以及在所述待启动存储空间中启动固件;其中,所述待启动存储空间为所述终端在空间下载技术OTA升级过程中用于固件重启的一个存储分区,所述至少两个存储空间分别具有不同的存储地址,所述至少两个存储空间包括第一存储空间和第二存储空间,所述第一存储空间用于存储来自服务器的待升级固件以及所述第二存储空间用于存储第一原固件,所述待升级固件的版本比所述第一原固件的版本更新。
18.根据权利要求17所述的终端,其特征在于,所述处理单元还用于在根据引导程序的启动标识从至少两个存储空间中确定一个存储空间作为待启动存储空间之前,将所述待升级固件存储到所述第一存储空间。
19.根据权利要求18所述的终端,其特征在于,
所述终端还包括第一通信单元,用于在所述处理单元将所述待升级固件存储到所述第一存储空间之前,接收服务器发送的所述待升级固件;以及
所述处理单元,还用于对所述待升级固件的完整性进行校验,以及根据校验的结果确定是否将所述待升级固件存储到所述第一存储空间,优选地,所述处理单元具体用于在所述待升级固件的校验为完整的情况下,将所述待升级固件存储到所述第一存储空间,优选地,所述处理单元还用于设置所述引导程序的启动标识为用于指示所述第一存储空间为所述待启动存储空间,根据所述引导程序的启动标识从所述至少两个存储空间中确定所述第一存储空间为所述待启动存储空间,在所述第一存储空间中启动所述待升级固件。
20.根据权利要求19所述的终端,其特征在于,
所述处理单元,还用于将所述待升级固件存储到缓存区,在所述待升级固件的校验为完整的情况下,将所述待升级固件从所述缓存区复制到所述第一存储空间;和/或
在将所述待升级固件从所述缓存区复制到所述第一存储空间失败的情况下,所述引导程序的启动标识为用于指示所述第二存储空间为所述待启动存储空间,所述处理单元还用于根据所述引导程序的启动标识从所述至少两个存储空间中确定所述第二存储空间为所述待启动存储空间,以及在所述第二存储空间中启动所述第一原固件。
21.根据权利要求19或20所述的终端,其特征在于,在对所述待升级固件的完整性校验失败的情况下或者在所述终端从所述服务器接收所述待升级固件失败的情况下,所述引导程序的启动标识为用于指示所述第二存储空间为所述待启动存储空间,所述处理单元还用于根据所述引导程序的启动标识从所述至少两个存储空间中确定所述第二存储空间为所述待启动存储空间,以及在所述第二存储空间中启动所述第一原固件。
22.根据权利要求19-21任一项所述的终端,其特征在于,
所述第一通信单元,具体用于接收所述服务器发送的所述待升级固件的一个或多个数据包,以及所述处理单元,还用于对所述待升级固件的一个或多个数据包中的每个数据包进行正确性校验,以及在正确性校验不通过的次数超过第一阈值的情况下,停止从所述服务器接收所述待升级固件,其中所述第一阈值为大于或等于1的正整数;和/或
所述第一通信单元,还用于接收所述服务器发送的所述待升级固件的头文件信息,所述待升级固件的头文件信息包括所述待升级固件的版本信息;所述处理单元,还用于对所述待升级固件的头文件信息的进行解析;以及所述第一通信单元,具体用于在解析所述头文件信息为合法和/或所述头文件信息与所述终端当前的版本信息匹配的情况下,接收所述服务器发送的所述待升级固件的一个或多个数据包。
23.根据权利要求19-22任一项所述的终端,其特征在于,
所述第一通信单元,还用于接收所述服务器发送的第一MD5校验码;以及
所述处理单元,还用于计算所述待升级固件的第二MD5校验码,比较所述第一MD5校验码与所述第二MD5校验码是否一致,以及若所述第一MD5校验码与所述第二MD5校验码一致,则确定校验成功,若所述第一MD5校验码与所述第二MD5校验码不一致,则确定校验失败。
24.根据权利要求17-23任一项所述的终端,其特征在于,
所述处理单元,还用于在所述第一存储空间中启动所述待升级固件失败的情况下,将所述引导程序的启动标识从用于指示所述第一存储空间作为所述待启动存储空间设置成用于指示所述第二存储空间作为所述待启动存储空间,以及根据所述引导程序的启动标识在所述第二存储空间中重启所述第一原固件‘
优选地,所述处理单元,还用于若所述第二存储空间中重启所述第一原固件失败的次数超过第二阈值,则将所述引导程序的启动标识从用于指示所述第二存储空间作为所述待启动存储空间设置成用于指示所述至少两个存储空间中的第三存储空间作为所述待启动存储空间,以及根据所述引导程序的启动标识在所述第三存储空间重启第二原固件;其中,所述第三存储空间用于存储所述第二原固件,所述待升级固件的版本比所述第二原固件的版本更新,所述第二阈值为大于或等于1的正整数,和/或
所述终端还包括第二通信单元,用于向所述服务器发送用于指示升级失败的信息,以便所述服务器根据所述用于指示升级失败的信息检测所述待升级固件的有效性。
25.根据权利要求17-23任一项所述的终端,其特征在于,所述终端还包括第三通信单元,用于在所述第一存储空间中启动所述待升级固件成功的情况下,向所述服务器发送用于指示升级成功的信息;和/或
所述终端还包括第四通信单元,用于向服务器发送用于指示所述终端启动成功的固件版本信息。
26.根据权利要求17-25任一项所述的终端,其特征在于,
所述处理单元,具体用于在所述引导程序的启动标识用于指示所述至少两个存储空间中的多个存储空间的情况下,根据所述多个存储空间的优先级次序确定一个存储空间作为待启动存储空间;
优选地,所述处理单元具体用于将所述多个存储空间中启动次数最多的存储空间确定为所述待启动存储空间。
27.一种终端,其特征在于,所述终端包括处理器和存储器,所述处理器与所述存储器耦合,所述处理器用于读取并执行所述存储器中的指令,以实现根据权利要求1-16任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被执行时,实现根据权利要求1-16任一项所述的方法。
29.一种升级系统,包括根据权利要求28所述的终端以及服务器,所述终端用于通过通信接口与所述服务器进行通信。
30.根据权利要求29所述的系统,其特征在于,
所述服务器用于向所述终端发送所述待升级固件,以及所述终端具体用于通过所述通信接口接收所述服务器发送的用于所述待升级固件;优选地,所述终端用于向所述服务器发送用于指示所述终端启动成功的固件版本信息,以及所述服务器用于接收所述终端发送的用于指示所述终端启动成功的固件版本信息;和/或
所述终端用于通过所述通信接口向所述服务器发送用于指示升级失败的信息,以及所述服务器用于接收所述终端发送的用于指示升级失败的信息,根据所述用于指示升级失败的信息检测所述待升级固件的有效性;或者所述终端用于通过所述通信接口向所述服务器发送用于指示升级成功的信息,以及所述服务器用于接收所述终端发送的用于指示升级成功的信息,根据所述用于指示升级成功的信息确定所述终端下次更新的固件版本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210536337.9A CN114911500A (zh) | 2022-05-17 | 2022-05-17 | 终端升级方法、终端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210536337.9A CN114911500A (zh) | 2022-05-17 | 2022-05-17 | 终端升级方法、终端及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114911500A true CN114911500A (zh) | 2022-08-16 |
Family
ID=82768940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210536337.9A Pending CN114911500A (zh) | 2022-05-17 | 2022-05-17 | 终端升级方法、终端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114911500A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543393A (zh) * | 2022-12-01 | 2022-12-30 | 摩尔线程智能科技(北京)有限责任公司 | 升级方法、电子设备及存储介质 |
CN116419217A (zh) * | 2023-06-09 | 2023-07-11 | 广州万协通信息技术有限公司 | Ota数据升级方法、系统、设备及存储介质 |
TWI823599B (zh) * | 2022-10-06 | 2023-11-21 | 新唐科技股份有限公司 | 韌體更新方法、電子裝置及伺服器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201586A (zh) * | 2016-06-28 | 2016-12-07 | 青岛海信移动通信技术股份有限公司 | 一种基于ota的系统升级方法及终端、系统 |
US20200257518A1 (en) * | 2020-04-24 | 2020-08-13 | Intel Corporation | Device firmware update techniques |
CN112230969A (zh) * | 2020-12-17 | 2021-01-15 | 飞天诚信科技股份有限公司 | 固件升级过程中对用户空间存储区格式化的方法及设备 |
CN113114730A (zh) * | 2021-03-22 | 2021-07-13 | 深圳市晨北科技有限公司 | 升级方法、装置、终端设备及存储介质 |
CN114265603A (zh) * | 2021-11-24 | 2022-04-01 | 青岛海尔科技有限公司 | 基于不对称分区的系统升级方法、装置和电子设备 |
-
2022
- 2022-05-17 CN CN202210536337.9A patent/CN114911500A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201586A (zh) * | 2016-06-28 | 2016-12-07 | 青岛海信移动通信技术股份有限公司 | 一种基于ota的系统升级方法及终端、系统 |
US20200257518A1 (en) * | 2020-04-24 | 2020-08-13 | Intel Corporation | Device firmware update techniques |
CN112230969A (zh) * | 2020-12-17 | 2021-01-15 | 飞天诚信科技股份有限公司 | 固件升级过程中对用户空间存储区格式化的方法及设备 |
CN113114730A (zh) * | 2021-03-22 | 2021-07-13 | 深圳市晨北科技有限公司 | 升级方法、装置、终端设备及存储介质 |
CN114265603A (zh) * | 2021-11-24 | 2022-04-01 | 青岛海尔科技有限公司 | 基于不对称分区的系统升级方法、装置和电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI823599B (zh) * | 2022-10-06 | 2023-11-21 | 新唐科技股份有限公司 | 韌體更新方法、電子裝置及伺服器 |
CN115543393A (zh) * | 2022-12-01 | 2022-12-30 | 摩尔线程智能科技(北京)有限责任公司 | 升级方法、电子设备及存储介质 |
CN115543393B (zh) * | 2022-12-01 | 2023-08-22 | 摩尔线程智能科技(北京)有限责任公司 | 升级方法、电子设备及存储介质 |
CN116419217A (zh) * | 2023-06-09 | 2023-07-11 | 广州万协通信息技术有限公司 | Ota数据升级方法、系统、设备及存储介质 |
CN116419217B (zh) * | 2023-06-09 | 2023-09-05 | 广州万协通信息技术有限公司 | Ota数据升级方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114911500A (zh) | 终端升级方法、终端及系统 | |
US10437680B2 (en) | Relay apparatus, relay method, and computer program product | |
CN110083374B (zh) | 一种升级回滚方法、系统及终端设备 | |
CN106020875B (zh) | 嵌入式终端的固件更新管理方法和装置 | |
WO2019062635A1 (zh) | 升级方法和装置 | |
CN107908417B (zh) | 固件升级方法及电子设备 | |
CN103488501A (zh) | 光网络终端设备及其系统软件升级方法 | |
CN116932010B (zh) | 系统固件升级方法、装置及服务器 | |
CN114840242A (zh) | 一种电子设备的系统升级方法、装置及可读存储介质 | |
CN110597545A (zh) | 一种基于ota组件的热补丁智能升级方法及系统 | |
CN112540725A (zh) | 非易失性数据存储方法、嵌入式系统以及存储介质 | |
CN109002305B (zh) | 一种设备程序的更新方法及其系统 | |
CN105677409A (zh) | 一种系统升级方法及装置 | |
CN117762455A (zh) | Bios固件文件的更新方法及装置、存储介质、电子设备 | |
CN117235707A (zh) | 一种应用程序启动方法、装置、电子设备及存储介质 | |
CN112214353A (zh) | 固件恢复方法、装置、计算机设备和存储介质 | |
CN115437674B (zh) | 一种固件升级方法、装置、介质及电子设备 | |
CN116483409A (zh) | 一种远程固件更新的方法、系统、电子设备及存储介质 | |
CN118276887A (zh) | 一种机顶盒跨系统升级方法、装置、机顶盒及存储介质 | |
CN107172610B (zh) | Gsm网络自适配方法、装置及电子设备 | |
CN114780122A (zh) | 嵌入式设备固件更新方法以及嵌入式设备 | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN117055926A (zh) | 一种远程升级方法和物联网设备 | |
CN118193029A (zh) | 一种微内存设备的远程升级方法及系统 | |
CN114430565B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230615 Address after: 8 / F, building 3, 1156 Gaoqiao Avenue, Tongxiang City, Jiaxing City, Zhejiang Province, 314500 Applicant after: JIAXING UPHOTON OPTOELECTRONICS TECHNOLOGY Co.,Ltd. Address before: Room 1206-6, floor 12, building 7, yard a 13, Huayuan Road, Haidian District, Beijing 100088 Applicant before: BEIJING THETO OPTICAL SCIENCE AND TECHNOLOGY DEVELOPMENT CO.,LTD. |