CN110879765A - 一种避免终端异常的方法及装置 - Google Patents

一种避免终端异常的方法及装置 Download PDF

Info

Publication number
CN110879765A
CN110879765A CN201911117101.6A CN201911117101A CN110879765A CN 110879765 A CN110879765 A CN 110879765A CN 201911117101 A CN201911117101 A CN 201911117101A CN 110879765 A CN110879765 A CN 110879765A
Authority
CN
China
Prior art keywords
communication protocol
storage area
file
terminal
recovery program
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.)
Granted
Application number
CN201911117101.6A
Other languages
English (en)
Other versions
CN110879765B (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.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies 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 Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201911117101.6A priority Critical patent/CN110879765B/zh
Publication of CN110879765A publication Critical patent/CN110879765A/zh
Application granted granted Critical
Publication of CN110879765B publication Critical patent/CN110879765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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
    • 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/3247Cryptographic 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 involving digital signatures

Landscapes

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

Abstract

本发明公开一种避免终端异常的方法及装置,通信协议变更时引导程序不需要更新,而是对恢复程序签名文件进行更新操作,当终端运行第二通信协议的应用程序失败后可提醒并等待接收用户触发的恢复信号,当终端接收到恢复信号后终端将外部flash的第一存储区中支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区,写入成功后终端运行第二通信协议的应用程序并判断运行是否成功,直至运行成功后终端正常工作;避免在恢复程序签名文件更新过程中出现引导程序丢失而造成终端无法恢复的情况,省去返厂维修的过程,节约成本,方便使用。

Description

一种避免终端异常的方法及装置
技术领域
本发明涉及终端产品领域,尤其涉及一种避免终端异常的方法及装置。
背景技术
应用程序可执行文件为应用程序代码编译链接后得到的可以被终端识别的二进制文件;恢复程序签名文件为包含证书和恢复程序可执行文件的签名文件包;恢复程序可执行文件为恢复程序代码编译链接后得到的可以被机器识别的二进制文件;引导程序用于对终端硬件模块进行初始化操作并建立适当的硬件环境。
在现有技术中,终端包括引导装入程序和应用程序两部分,引导装入程序的功能包括接收恢复信号、加载应用程序可执行文件、通信,引导装入程序由于通信功能的变更在进行更新操作时可能出现接收恢复信号功能或加载应用程序可执行文件功能丢失的情况,在使用引导装入程序更新应用程序时如失败则无法恢复,从而导致终端瘫痪,需要将终端返厂维修,造成用户使用不便捷的同时又增加了厂商售后的服务成本。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种避免终端异常的方法及装置。
本发明提供了一种避免终端异常的方法,包括:
步骤R1:终端运行第一通信协议的应用程序,接收上位机发送的支持第二通信协议的恢复程序签名文件并保存到通信缓存区,使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件;
步骤R2:所述终端判断所述通信缓存区的支持第二通信协议的恢复程序签名文件替换所述外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否成功,是则执行步骤R3,否则返回步骤R1;
步骤R3:所述终端接收所述上位机发送的支持第二通信协议的应用程序可执行文件并保存到所述通信缓存区,将所述通信缓存区的支持第二通信协议的应用程序可执行文件写入到外部flash的第二存储区;
步骤R4:所述终端运行引导程序,将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区;
步骤R5:所述终端判断所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到所述内部flash的第一存储区是否成功,是则执行步骤R8,否则执行步骤R6;
步骤R6:所述终端将所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区;
步骤R7:所述终端判断所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区是否成功,是则执行步骤R8,否则执行步骤R9;
步骤R8:所述终端运行第二通信协议的应用程序,判断运行第二通信协议的应用程序是否成功,是则所述终端正常工作,否则执行步骤R9;
步骤R9:所述终端提醒并等待接收用户触发的恢复信号,当所述终端接收到所述恢复信号时返回步骤R6。
本发明又提供了一种避免终端异常的装置,包括:
运行替换模块,用于运行第一通信协议的应用程序,接收上位机发送的支持第二通信协议的恢复程序签名文件并保存到通信缓存区,使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件;
第一判断模块,用于判断所述运行替换模块使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否成功,是则触发接收写入模块,否则触发所述运行替换模块;
所述接收写入模块,用于接收所述上位机发送的支持第二通信协议的应用程序可执行文件并保存到所述通信缓存区,将所述通信缓存区的支持第二通信协议的应用程序可执行文件写入到外部flash的第二存储区;
运行写入模块,用于运行引导程序,将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区;
第二判断模块,用于判断所述运行写入模块将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区是否成功,是则触发运行判断模块,否则触发写入模块;
所述写入模块,用于将所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区;
第三判断模块,用于判断写入模块将所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区是否成功,是则触发运行判断模块,否则触发提醒接收模块;
所述运行判断模块,用于运行第二通信协议的应用程序,判断运行第二通信协议的应用程序是否成功,是则所述终端正常工作,否则触发提醒接收模块;
所述提醒接收模块,用于提醒并等待接收用户触发的恢复信号,当接收到所述触发信号时触发写入模块。
本发明取得的有益效果是:采用本发明的技术方案,终端将原有的引导装入程序分为引导程序和恢复程序签名文件,当通信协议变更时对恢复程序签名文件进行更新操作,终端运行第二通信协议的应用程序失败后可提醒并等待接收用户触发的恢复信号,当终端接收到恢复信号后终端将外部flash的第一存储区中支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区,写入成功后终端运行第二通信协议的应用程序并判断运行是否成功,直至运行成功后终端正常工作;避免在恢复程序签名文件更新过程中出现引导程序丢失而造成终端无法恢复的情况,省去返厂维修的过程,节约成本,方便使用。
附图说明
图1为本发明实施例一提供的一种避免终端异常的方法的流程图;
图2为本发明实施例二提供的一种避免终端异常的方法的流程图;
图3为本发明实施例二中步骤103的细化流程图;
图4为本发明实施例二中步骤114的细化流程图;
图5为本发明实施例二中步骤116的细化流程图;
图6为本实施例二中应用程序的执行流程图;
图7为本实施例二中恢复程序签名文件的执行流程图;
图8为本实施例二中引导程序的执行流程图;
图9为本实施例三提供的一种避免终端异常的装置的方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种避免终端异常的方法,如图1所示,包括:
步骤R1:终端运行第一通信协议的应用程序,接收上位机发送的支持第二通信协议的恢复程序签名文件并保存到通信缓存区,使用通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件;
在本实施例中,步骤R1之前还包括:
步骤R01:终端接收文件数据包,保存文件数据包中的文件数据到通信缓存区;
步骤R02:终端根据文件数据的长度判断通信缓存区中的文件数据是否完整,是则执行步骤R03,否则返回步骤R01;
步骤R03:终端判断通信缓存区中的文件数据是否合法,是则执行步骤R04,否则结束;
步骤R04:终端判断接收到的文件数据包中的文件类型,如为恢复程序签名文件则执行步骤R1,如为应用程序可执行文件则执行步骤R3。
在本实施例中,步骤R03具体包括:
终端对通信缓存区中的文件数据进行哈希运算得到第五哈希值,使用保存的CA证书(Certification Authority,认证机构证书)的公钥解密文件数据包中的签名值得到第六哈希值,终端判断第五哈希值和第六哈希值是否相等,是则执行步骤S04,否则结束。
在本实施例中,步骤R1中使用通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件具体为:
步骤A1:终端判断通信缓存区的支持第二通信协议的恢复程序签名文件是否合法,是则执行步骤A2,否则报错;
步骤A2:终端判断外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否合法,是则执行步骤A3,否则报错;
具体的,步骤A1和步骤A2可调换顺序,既可以先判断通信缓存区的支持第二通信协议的恢复程序签名文件是否合法后判断外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否合法,也可以先判断外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否合法后判断通信缓存区的支持第二通信协议的恢复程序签名文件是否合法;
步骤A3:终端擦除外部flash的第一存储区;
步骤A4:终端将通信缓存区的支持第二通信协议的恢复程序签名文件写入到外部flash的第一存储区。
步骤R2:终端判断通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否成功,是则执行步骤R3,否则返回步骤R1;
步骤R3:终端接收上位机发送的支持第二通信协议的应用程序可执行文件并保存到通信缓存区,将通信缓存区的支持第二通信协议的应用程序可执行文件写入到外部flash的第二存储区;
在本实施例中,步骤R3还包括:终端将第一标志位置位。
步骤R4:终端运行引导程序,将外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区;
在本实施例中,步骤R4具体为:
步骤C1:终端擦除内部flash的第一存储区;
步骤C2:终端将外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区。
步骤R5:终端判断外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区是否成功,是则执行步骤R8,否则执行步骤R6;
步骤R6:终端将外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区;
在本实施例中,步骤R6具体包括:
步骤E1:终端判断外部flash的第一存储区的支持第二通信协议的恢复程序签名文件是否合法,是则执行步骤E2,否则报错;
步骤E2:终端擦除内部flash的第一存储区;
步骤E3:终端将外部flash的第一存储区中的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区。
在本实施例中,步骤E1具体包括:
步骤B1:终端对外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的证书体进行哈希运算得到第一哈希值,使用保存的CA证书中的公钥解密外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的签名值得到第二哈希值;
步骤B2:终端判断第一哈希值和第二哈希值是否相等,是则执行步骤B3,否则报错;
步骤B3:终端对外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的头域和恢复程序可执行文件进行哈希运算得到第三哈希值,使用外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的公钥解密恢复程序签名文件中的签名值得到第四哈希值;
步骤B4:终端判断第三哈希值和第四哈希值是否相等,是则外部flash的第一存储区的支持第二通信协议的恢复程序签名文件合法,执行步骤E2,否则报错。
步骤R7:终端判断外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区是否成功,是则执行步骤R8,否则执行步骤R9;
步骤R8:终端运行第二通信协议的应用程序,判断运行第二通信协议的应用程序是否成功,是则终端正常工作,否则执行步骤R9;
步骤R9:终端提醒并等待接收用户触发的恢复信号,当终端接收到恢复信号时返回步骤R6。
具体的,恢复信号由用户通过按键进行触发生成。
实施例二
本发明实施例二提供一种避免终端异常的方法,如图2所示,包括:
步骤101:终端运行引导程序;
具体的,终端开机后运行引导程序,终端包括POS机等终端产品;
步骤102:终端判断是否接收到第一恢复信号,是则执行步骤103,否则执行步骤105;
具体的,第一恢复信号由用户通过按键触发生成;
步骤103:终端将外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区;
具体的,内部flash存储空间小,读取速度快,外部flash存储空间大,读取速度慢;
具体的,外部flash的第一存储区存储恢复程序签名文件;
具体的,恢复程序签名文件包括头域、证书、恢复程序可执行文件和签名值,其中恢复程序可执行文件放在应用程序的代码区后在运行时实现更新恢复;
恢复程序可执行文件为恢复程序代码编译链接后得到的可以被机器识别的二进制文件;
具体的,内部flash的第一存储区存储应用程序;
在本实施例中,步骤103的实现过程如图3所示,具体包括:
步骤201:终端对恢复程序签名文件的证书中的证书体进行哈希运算得到第一哈希值,使用保存的CA证书中的公钥解密恢复程序签名文件的证书中的签名值得到第二哈希值;
步骤202:终端判断第一哈希值和第二哈希值是否相等,是则执行步骤204,否则报错;
步骤203:终端对恢复程序签名文件的头域和恢复程序可执行文件进行哈希运算得到第三哈希值,使用恢复程序签名文件的证书中的公钥解密恢复程序签名文件中的签名值得到第四哈希值;
步骤204:终端判断第三哈希值和第四哈希值是否相等,是则执行步骤207,否则报错;
步骤205:终端擦除内部flash的第一存储区;
步骤206:终端将外部flash的第一存储区中的恢复程序可执行文件写入到内部flash的第一存储区;
步骤104:终端判断外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区是否成功,是则执行步骤105,否则结束;
具体的,终端根据恢复程序签名文件中的恢复程序可执行文件写入到指定位置函数的返回值来判断,如果返回值为1则恢复程序签名文件中的恢复程序可执行文件写入到内部flash中应用程序的存储区成功,否则失败;
步骤105:终端根据第一标志位判断是否有应用程序可执行文件需要更新,是则执行步骤106,否则执行步骤108;
具体的,应用程序可执行文件是通过源代码方式输入的一组应用程序编译、链接后生成的可以存储在flash中的二进制文件;
步骤105中终端通过第一标志位(flag)的状态判断是否有应用程序可执行文件更新,如flag=0则应用程序可执行文件不需要更新,如flag=1则应用程序可执行文件需要更新;
步骤106:终端更新应用程序可执行文件;
在本实施例中,步骤106中更新应用程序可执行文件的实现过程具体包括:
步骤301:终端擦除内部flash的第一存储区;
步骤302:终端将外部flash的第二存储区的应用程序可执行文件写入到内部flash的第一存储区;
具体的,外部flash的第二存储区为应用程序可执行文件的临时存储区;
步骤107:终端判断更新应用程序可执行文件是否成功,是则执行步骤108,否则结束;
步骤108:终端判断应用程序自检是否异常,是则执行步骤109,否则执行步骤112;
步骤109:终端判断是否接收到第二恢复信号,是则执行步骤110,否则结束;
具体的,终端判断应用程序异常后继续等待第二恢复信号;本实施例中的恢复信号均由用户触发生成;
步骤110:终端将外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区;
步骤111:终端判断外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区是否成功,是则执行步骤112,否则结束;
具体的,终端根据恢复程序签名文件中的恢复程序可执行文件写入到指定位置函数的返回值来判断,如果返回值为1则恢复程序签名文件中的恢复程序可执行文件写入到内部flash中应用程序的存储区成功;
步骤112:终端运行应用程序;
步骤113:终端判断是否有上位机发送的新的应用程序可执行文件或恢复程序签名文件等待接收,是则执行步骤114,否则执行步骤119;
步骤114:终端接收并保存新的应用程序可执行文件或恢复程序签名文件;
在本实施例中,步骤114实现过程如图4所示,具体包括:
步骤501:终端接收文件数据包;
具体的,文件数据包包括文件类型、文件总长度和文件数据;
步骤502:终端保存文件数据包中的文件数据到通信缓存区;
步骤503:终端判断通信缓存区中的文件数据是否完整,是则执行步骤504,否则返回步骤501;
具体的,如果终端判断通信缓存区中的文件数据的长度与接收的文件总长度一致则终端接收保存的文件数据完整,反之不完整;
步骤504:终端对通信缓存区中的文件数据进行哈希运算得到第五哈希值,使用保存的CA证书的公钥解密文件数据包中的签名值得到第六哈希值;
步骤505:终端判断第五哈希值和第六哈希值是否相等,是则保存文件成功,否则报错;
步骤115:终端判断接收到的文件数据包中的文件类型,如为恢复程序签名文件则执行步骤116,如为应用程序可执行文件则执行步骤117;
具体的,步骤115根据保存的文件类型的标识进行判断,文件类型的标识如为1则为恢复程序签名文件,文件类型的标识如为0则为应用程序可执行文件;
步骤116:终端使用通信缓存区的恢复程序签名文件替换外部flash的第一存储区的恢复程序签名文件,执行步骤119;
在本实施例中,步骤116实现过程如图5所示,具体包括:
步骤601:终端判断通信缓存区的恢复程序签名文件是否合法,是则执行步骤602,否则报错;
步骤602:终端判断外部flash的第一存储区的恢复程序签名文件是否合法,是则执行步骤603,否则报错;
具体的,步骤601和步骤602可以调换顺序,既可以先判断通信缓存区的恢复程序签名文件是否合法后判断外部flash的第一存储区的恢复程序签名文件是否合法,也可以先判断外部flash的第一存储区的恢复程序签名文件时候合法后判断通信缓存区的恢复程序签名文件是否合法;
步骤603:终端擦除外部flash的第一存储区;
步骤604:终端将通信缓存区的恢复程序签名文件写入到外部flash的第一存储区;
步骤117:终端将通信缓存区的应用程序可执行文件写入到外部flash的第二存储区,终端将第一标志位置位;
具体的,步骤117终端将第一标志位置位,例如flag=1;
步骤118:终端关机重启,执行步骤101;
步骤119:终端开始正常工作,之后执行步骤113。
本发明实施例二中应用程序的执行流程图如图6所示,包括:
步骤801:终端运行应用程序;
步骤802:终端判断是否有上位机发送的新的应用程序可执行文件或恢复程序签名文件等待接收,是则执行步骤803,否则执行其他功能;
具体的,其他功能为配置文件下载解析、交易处理、日志保存或日志上传;
步骤803:终端接收并保存新的应用程序可执行文件或恢复程序签名文件,判断接收的文件是否为恢复程序签名文件,是则终端用通信缓存区的恢复程序签名文件替换外部flash的第一存储区的恢复程序签名文件,执行其他功能,否则终端将通信缓存区的应用程序可执行文件写入到外部flash的第二存储区,终端将第一标志位置位,终端关机重启。
本发明实施例二中恢复程序签名文件的执行流程图如图7所示,包括:
步骤901:终端运行恢复程序;
步骤902:终端判断是否有上位机发送的新的应用程序可执行文件或恢复程序签名文件等待接收,是则执行步骤903,否则继续判断操作;
步骤903:终端接收并保存新的应用程序可执行文件或恢复程序签名文件,判断接收的文件是否为恢复程序签名文件,是则终端用通信缓存区的恢复程序签名文件替换外部flash的第一存储区的恢复程序签名文件,否则终端将通信缓存区的应用程序可执行文件写入到外部flash的第二存储区,终端将第一标志位置位,终端关机重启。
本发明实施例二中引导程序的执行流程图如图8所示,包括:
步骤1001:终端运行引导程序;
步骤1002:终端判断是否接收到恢复信号,是则执行步骤1003,否则执行步骤1005;
步骤1003:终端将外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区;
步骤1004:终端判断外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区是否成功,是则执行步骤1005,否则结束;
步骤1005:终端根据第一标志位判断是否有应用程序可执行文件需要更新,是则执行步骤1006,否则执行步骤1008;
步骤1006:终端更新应用程序可执行文件;
步骤1007:终端判断更新应用程序可执行文件是否成功,是则执行步骤1008,否则执行步骤1009;
步骤1008:终端运行应用程序;
步骤1009:终端将外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区;
步骤1010:终端判断外部flash的第一存储区中恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区是否成功,是则执行步骤1008,否则结束。
实施例三
本发明实施例三提供一种避免终端异常的装置,如图9所示,包括:
运行替换模块11,用于运行第一通信协议的应用程序,接收上位机发送的支持第二通信协议的恢复程序签名文件并保存到通信缓存区,使用通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件;
第一判断模块12,用于判断运行替换模块11使用通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否成功,是则触发接收写入模块13,否则触发运行替换模块11;
接收写入模块13,用于接收上位机发送的支持第二通信协议的应用程序可执行文件并保存到通信缓存区,将通信缓存区的支持第二通信协议的应用程序可执行文件写入到外部flash的第二存储区;
运行写入模块14,用于运行引导程序,将外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区;
第二判断模块15,用于判断运行写入模块14将外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区是否成功,是则触发运行判断模块18,否则触发写入模块16;
写入模块16,用于将外部flash的第一存储区中的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区;
第三判断模块17,用于判断写入模块16将外部flash的第一存储区中的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区是否成功,是则触发运行判断模块18,否则触发提醒接收模块19;
运行判断模块18,用于运行第二通信协议的应用程序,判断运行第二通信协议的应用程序是否成功,是则终端正常工作,否则触发提醒接收模块19;
提醒接收模块19,用于等待用户触发的恢复信号,当终端接收到触发信号时触发写入模块16。
可选的,在本实施例中,还包括:
接收模块,用于接收文件数据包,保存文件数据包中的文件数据到通信缓存区;
第四判断模块,用于根据文件数据的长度判断通信缓存区中的文件数据是否完整,是则触发第五判断模块,否则触发接收模块;
第五判断模块,用于判断通信缓存区中的文件数据是否合法,是则触发第六判断模块,否则结束;
第六判断模块,用于判断接收到的文件数据包中的文件类型,如为恢复程序签名文件则触发运行替换模块,如为应用程序可执行文件则触发接收写入模块。
可选的,在本实施例中,第五判断模块包括:
第一运算子模块,用于终端对通信缓存区中的文件数据进行哈希运算得到第五哈希值;
第一解密子模块,用于使用保存的CA证书的公钥解密文件数据包中的签名值得到第六哈希值;
第一判断子模块,用于判断第五哈希值和第六哈希值是否相等,是则触发第六判断模块,否则结束。
可选的,在本实施例中,运行替换模块11具体包括:
第一运行子模块,用于运行第一通信协议的应用程序;
第二判断子模块,用于判断通信缓存区的支持第二通信协议的恢复程序签名文件是否合法,是则触发第三判断子模块,否则报错;
第三判断子模块,用于判断外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否合法,是则触发第一擦除子模块,否则报错;
第一擦除子模块,用于擦除外部flash的第一存储区;
第一写入子模块,用于将通信缓存区的支持第二通信协议的恢复程序签名文件写入到外部flash的第一存储区。
可选的,在本实施例中,运行写入模块14具体包括:
第二运行子模块,用于运行引导程序;
第二擦除子模块,用于擦除内部flash的第一存储区;
第二写入子模块,用于将外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区。
可选的,在本实施例中,写入模块16包括:
第四判断子模块,用于判断外部flash的第一存储区中的支持第二通信协议的恢复程序签名文件是否合法,是则触发第三擦除子模块,否则报错;
第三擦除子模块,用于擦除内部flash的第一存储区;
第三写入子模块,用于将外部flash的第一存储区中的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区。
可选的,在本实施中,第四判断子模块具体包括:
第一运算单元,用于对外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的证书体进行哈希运算得到第一哈希值;
第一解密单元,用于使用保存的认证机构证书中的公钥解密外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的签名值得到第二哈希值;
第一判断单元,用于判断第一哈希值和第二哈希值是否相等,是则触发第二运算单元,否则报错;
第二运算单元,用于对外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的头域和恢复程序可执行文件进行哈希运算得到第三哈希值;
第二解密单元,用于使用外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的公钥解密外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的签名值得到第四哈希值;
第二判断单元,用于判断第三哈希值和第四哈希值是否相等,是则外部flash的第一存储区的支持第二通信协议的恢复程序签名文件合法,否则报错。
可选的,在本实施例中,接收写入模块13,还用于将第一标志位置位。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (16)

1.一种避免终端异常的方法,其特征在于,包括:
步骤R1:终端运行第一通信协议的应用程序,接收上位机发送的支持第二通信协议的恢复程序签名文件并保存到通信缓存区,使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件;
步骤R2:所述终端判断所述通信缓存区的支持第二通信协议的恢复程序签名文件替换所述外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否成功,是则执行步骤R3,否则返回步骤R1;
步骤R3:所述终端接收所述上位机发送的支持第二通信协议的应用程序可执行文件并保存到所述通信缓存区,将所述通信缓存区的支持第二通信协议的应用程序可执行文件写入到外部flash的第二存储区;
步骤R4:所述终端运行引导程序,将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区;
步骤R5:所述终端判断所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到所述内部flash的第一存储区是否成功,是则执行步骤R8,否则执行步骤R6;
步骤R6:所述终端将所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区;
步骤R7:所述终端判断所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区是否成功,是则执行步骤R8,否则执行步骤R9;
步骤R8:所述终端运行第二通信协议的应用程序,判断运行第二通信协议的应用程序是否成功,是则所述终端正常工作,否则执行步骤R9;
步骤R9:所述终端提醒并等待接收用户触发的恢复信号,当所述终端接收到所述恢复信号时返回步骤R6。
2.如权利要求1所述的方法,其特征在于,所述步骤R1之前还包括:
步骤R01:所述终端接收文件数据包,保存所述文件数据包中的文件数据到所述通信缓存区;
步骤R02:所述终端根据文件数据的长度判断所述通信缓存区中的文件数据是否完整,是则执行步骤R03,否则返回步骤R01;
步骤R03:所述终端判断所述通信缓存区中的文件数据是否合法,是则执行步骤R04,否则结束;
步骤R04:所述终端判断接收到的文件数据包中的文件类型,如为恢复程序签名文件则执行步骤R1,如为应用程序可执行文件则执行步骤R3。
3.如权利要求2所述的方法,其特征在于,所述步骤R03具体为:
所述终端对所述通信缓存区中的文件数据进行哈希运算得到第五哈希值,使用保存的认证机构证书的公钥解密所述文件数据包中的签名值得到第六哈希值,所述终端判断所述第五哈希值和所述第六哈希值是否相等,是则执行步骤R04,否则结束。
4.如权利要求1所述的方法,其特征在于,所述步骤R1中使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件具体为:
步骤A1:所述终端判断所述通信缓存区的支持第二通信协议的恢复程序签名文件是否合法,是则执行步骤A2,否则报错;
步骤A2:终端判断外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否合法,是则执行步骤A3,否则报错;
步骤A3:所述终端擦除所述外部flash的第一存储区;
步骤A4:所述终端将所述通信缓存区的支持第二通信协议的恢复程序签名文件写入到外部flash的第一存储区。
5.如权利要求1所述的方法,其特征在于,所述步骤R4中将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区具体为:
步骤C1:所述终端擦除内部flash的第一存储区;
步骤C2:所述终端将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到所述内部flash的第一存储区。
6.如权利要求1所述的方法,其特征在于,所述步骤R6具体包括:
步骤E1:终端判断所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件是否合法,是则执行步骤E2,否则报错;
步骤E2:终端擦除内部flash的第一存储区;
步骤E3:终端将外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区。
7.如权利要求6所述的方法,其特征在于,所述步骤E1具体包括:
步骤B1:所述终端对所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的证书体进行哈希运算得到第一哈希值,使用保存的认证机构证书中的公钥解密所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的签名值得到第二哈希值;
步骤B2:所述终端判断所述第一哈希值和所述第二哈希值是否相等,是则执行步骤B3,否则报错;
步骤B3:所述终端对所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的头域和恢复程序可执行文件进行哈希运算得到第三哈希值,使用所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的公钥解密所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的签名值得到第四哈希值;
步骤B4:所述终端判断所述第三哈希值和所述第四哈希值是否相等,是则外部flash的第一存储区的支持第二通信协议的恢复程序签名文件合法,否则报错。
8.如权利要求1所述的方法,其特征在于,所述步骤R3还包括:所述终端将第一标志位置位。
9.一种避免终端异常的装置,其特征在于,包括:
运行替换模块,用于运行第一通信协议的应用程序,接收上位机发送的支持第二通信协议的恢复程序签名文件并保存到通信缓存区,使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件;
第一判断模块,用于判断所述运行替换模块使用所述通信缓存区的支持第二通信协议的恢复程序签名文件替换外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否成功,是则触发接收写入模块,否则触发所述运行替换模块;
所述接收写入模块,用于接收所述上位机发送的支持第二通信协议的应用程序可执行文件并保存到所述通信缓存区,将所述通信缓存区的支持第二通信协议的应用程序可执行文件写入到外部flash的第二存储区;
运行写入模块,用于运行引导程序,将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区;
第二判断模块,用于判断所述运行写入模块将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到内部flash的第一存储区是否成功,是则触发运行判断模块,否则触发写入模块;
所述写入模块,用于将所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区;
第三判断模块,用于判断写入模块将所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到所述内部flash的第一存储区是否成功,是则触发运行判断模块,否则触发提醒接收模块;
所述运行判断模块,用于运行第二通信协议的应用程序,判断运行第二通信协议的应用程序是否成功,是则所述终端正常工作,否则触发提醒接收模块;
所述提醒接收模块,用于提醒并等待接收用户触发的恢复信号,当接收到所述触发信号时触发写入模块。
10.如权利要求9所述的装置,其特征在于,还包括:
接收模块,用于接收文件数据包,保存所述文件数据包中的文件数据到所述通信缓存区;
第四判断模块,用于根据文件数据的长度判断所述通信缓存区中的文件数据是否完整,是则触发第五判断模块,否则触发接收模块;
所述第五判断模块,用于判断所述通信缓存区中的文件数据是否合法,是则触发第六判断模块,否则结束;
所述第六判断模块,用于判断接收到的文件数据包中的文件类型,如为恢复程序签名文件则触发所述运行替换模块,如为应用程序可执行文件则触发所述接收写入模块。
11.如权利要求10所述的装置,其特征在于,所述第五判断模块包括:
第一运算子模块,用于对所述通信缓存区中的文件数据进行哈希运算得到第五哈希值;
第一解密子模块,用于使用保存的认证机构证书的公钥解密所述文件数据包中的签名值得到第六哈希值;
第一判断子模块,用于判断所述第五哈希值和所述第六哈希值是否相等,是则触发所述第六判断模块,否则结束。
12.如权利要求9所述的装置,其特征在于,所述运行替换模块具体包括:
第一运行子模块,用于运行第一通信协议的应用程序;
第二判断子模块,用于判断所述通信缓存区的支持第二通信协议的恢复程序签名文件是否合法,是则触发第三判断子模块,否则报错;
所述第三判断子模块,用于判断外部flash的第一存储区的支持第一通信协议的恢复程序签名文件是否合法,是则触发第一擦除子模块,否则报错;
所述第一擦除子模块,用于擦除所述外部flash的第一存储区;
第一写入子模块,用于将所述通信缓存区的支持第二通信协议的恢复程序签名文件写入到外部flash的第一存储区。
13.如权利要求9所述的装置,其特征在于,所述运行写入模块具体包括:
第二运行子模块,用于运行引导程序;
第二擦除子模块,用于擦除内部flash的第一存储区;
第二写入子模块,用于将所述外部flash的第二存储区的支持第二通信协议的应用程序可执行文件写入到所述内部flash的第一存储区。
14.如权利要求9所述的装置,其特征在于,所述写入模块包括:
第四判断子模块,用于判断所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件是否合法,是则触发第三擦除子模块,否则报错;
所述第三擦除子模块,用于擦除内部flash的第一存储区;
第三写入子模块,用于将外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的恢复程序可执行文件写入到内部flash的第一存储区。
15.如权利要求14所述的装置,其特征在于,所述第四判断子模块具体包括:
第一运算单元,用于对所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的证书体进行哈希运算得到第一哈希值;
第一解密单元,用于使用保存的认证机构证书中的公钥解密所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的签名值得到第二哈希值;
第一判断单元,用于判断所述第一哈希值和所述第二哈希值是否相等,是则触发第二运算单元,否则报错;
所述第二运算单元,用于对所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的头域和恢复程序可执行文件进行哈希运算得到第三哈希值;
第二解密单元,用于使用所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件的证书中的公钥解密所述外部flash的第一存储区的支持第二通信协议的恢复程序签名文件中的签名值得到第四哈希值;
第二判断单元,用于判断所述第三哈希值和所述第四哈希值是否相等,是则外部flash的第一存储区的支持第二通信协议的恢复程序签名文件合法,否则报错。
16.如权利要求9所述的装置,其特征在于,所述接收写入模块,还用于将第一标志位置位。
CN201911117101.6A 2019-11-15 2019-11-15 一种避免终端异常的方法及装置 Active CN110879765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911117101.6A CN110879765B (zh) 2019-11-15 2019-11-15 一种避免终端异常的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911117101.6A CN110879765B (zh) 2019-11-15 2019-11-15 一种避免终端异常的方法及装置

Publications (2)

Publication Number Publication Date
CN110879765A true CN110879765A (zh) 2020-03-13
CN110879765B CN110879765B (zh) 2022-01-14

Family

ID=69729903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911117101.6A Active CN110879765B (zh) 2019-11-15 2019-11-15 一种避免终端异常的方法及装置

Country Status (1)

Country Link
CN (1) CN110879765B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859162A (zh) * 2005-06-15 2006-11-08 华为技术有限公司 自动恢复设备故障的实现方法及***
CN102681915A (zh) * 2011-01-17 2012-09-19 三星电子株式会社 计算机***及其程序恢复方法
CN104077196A (zh) * 2014-07-02 2014-10-01 浪潮(北京)电子信息产业有限公司 一种Linux引导失败的恢复方法及装置
CN104090796A (zh) * 2014-07-08 2014-10-08 成都万维图新信息技术有限公司 一种嵌入式设备程序更新方法和***
CN104572206A (zh) * 2015-01-14 2015-04-29 厦门为那通信科技有限公司 应用程序自更新和备份恢复的方法
CN108111265A (zh) * 2016-11-25 2018-06-01 株洲中车时代电气股份有限公司 一种通信协议一致性自动化测试方法
US20180349228A1 (en) * 2017-06-06 2018-12-06 BSD Research LLC Devices and methods for recovering data from computers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859162A (zh) * 2005-06-15 2006-11-08 华为技术有限公司 自动恢复设备故障的实现方法及***
CN102681915A (zh) * 2011-01-17 2012-09-19 三星电子株式会社 计算机***及其程序恢复方法
CN104077196A (zh) * 2014-07-02 2014-10-01 浪潮(北京)电子信息产业有限公司 一种Linux引导失败的恢复方法及装置
CN104090796A (zh) * 2014-07-08 2014-10-08 成都万维图新信息技术有限公司 一种嵌入式设备程序更新方法和***
CN104572206A (zh) * 2015-01-14 2015-04-29 厦门为那通信科技有限公司 应用程序自更新和备份恢复的方法
CN108111265A (zh) * 2016-11-25 2018-06-01 株洲中车时代电气股份有限公司 一种通信协议一致性自动化测试方法
US20180349228A1 (en) * 2017-06-06 2018-12-06 BSD Research LLC Devices and methods for recovering data from computers

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
方冲,任海兰,王成丽: "基于MCU的嵌入式在线升级***的设计与实现", 《电视技术》 *

Also Published As

Publication number Publication date
CN110879765B (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
US8612722B2 (en) Determining an end of valid log in a log of write records
US7512749B2 (en) Safe software revision for embedded systems
JP6585072B2 (ja) 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
CN109086078B (zh) 安卓***升级方法、装置、服务器及移动终端
CN110333891A (zh) 基于物联网的增强型ota升级的方法
CN107783776B (zh) 固件升级包的处理方法及装置、电子设备
CN104090790A (zh) 一种安全终端的双芯片方案的固件更新方法
GB2466685A (en) Fault tolerant updating of firmware
US20150370653A1 (en) Replacement of a corrupt driver variable record
JP5167936B2 (ja) 情報処理装置
WO2018049798A1 (zh) 一种缓存分区重构的方法和装置
CN110879765B (zh) 一种避免终端异常的方法及装置
CN112416527A (zh) 一种数据恢复方法、装置、设备及存储介质
CN106843892A (zh) 一种重写Flash的方法及装置
JP2014099097A (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
KR20060088654A (ko) 이동통신 단말기의 데이터 복구 시스템 및 방법
CN112764787B (zh) 一种基于UDS的安全升级Bootloader设计方法
CN110427203B (zh) Sim卡、sim卡的更新方法及对sim卡操作***进行更新的方法
JP2010079382A (ja) ソフトウエア更新方法
KR100628176B1 (ko) 정보 단말기의 저장 프로그램 갱신 방법
KR100575927B1 (ko) 이동통신 단말기에서 부팅 방법
CN107656747B (zh) 一种数据升级方法及移动终端
US20220129198A1 (en) Data updates for controllers

Legal Events

Date Code Title Description
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