一种代码升级方法及装置的制造方法

文档序号:8528039阅读:197来源:国知局
一种代码升级方法及装置的制造方法
【技术领域】
[0001]本发明涉及电子技术领域,尤其涉及一种代码升级方法及装置。
【背景技术】
[0002]目前车用诊断仪读码卡的在线升级功能是普遍存在和经常使用的。在进行在线升级时,如果不对写入设备的升级数据进行有效性校验,那么写入设备的文件可能是一个未知的数据,运行写入设备中的错误的升级数据有可能造成设备功能异常,甚至设备损坏。

【发明内容】

[0003]本发明提供了一种代码升级方法及装置,通过对升级文件进行验证,并且在执行升级代码之前验证升级代码的有效性,可避免异常升级文件被执行而导致的设备异常。
[0004]第一方面,本发明实施例公开了一种代码升级方法,该方法包括:
[0005]在利用目标目录下的文件进行升级时,识别出所述目标目录下的升级文件;
[0006]验证所述升级文件是否是完整的,若是,则根据所述升级文件进行升级,若否,则停止升级;
[0007]如果所述升级文件是完整的,在运行所述升级文件中的可执行文件时,验证所述可执行文件中的升级代码是否正确,若是,则执行所述升级代码。
[0008]结合第一方面,在第一种可能的实现方式中,所述升级文件各自对应有特征值;所述验证所述升级文件是否是完整的,包括:
[0009]将所述升级文件各自通过第一预设散列算法进行计算,得到所述升级文件各自对应的计算结果;
[0010]比较所述升级文件各自对应的计算结果与所述升级文件各自对应的特征值是否一致,若是,则所述升级文件是完整的,若否,则所述升级文件损坏。
[0011]结合第一方面,在第二种可能的实现方式中,所述验证所述可执行文件中的升级代码是否正确,包括:将所述升级代码通过第二预设散列算法进行计算,得到所述升级代码对应的计算结果;所述升级代码对应有特征值;
[0012]比较所述升级代码对应的计算结果与所述升级代码对应的特征值是否一致,若是,则所述升级代码是正确的,若否,则所述升级代码是错误的。
[0013]结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述比较所述升级文件各自对应的计算结果与所述升级文件各自对应的特征值是否一致时,还包括:如果比较结果不一致,则输出第一提示信息,用于提示用户所述比较结果不一致的升级文件损坏。
[0014]结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,在所述比较所述升级代码对应的计算结果与所述升级代码对应的特征值是否一致时,还包括:如果比较结果不一致,则输出第二提示信息,用于提示用户所述升级代码错误。
[0015]第二方面,本发明实施例公开了一种代码升级装置,该装置包括:
[0016]识别模块,用于在对目标目录下的文件进行升级时,识别出所述目标目录下的待升级文件;
[0017]第一检验模块,用于验证所述升级文件是否是完整的;
[0018]升级模块,用于当所述第一检验模块的输出结果为是时,根据所述升级文件进行升级,当所述第一检验模块的输出结果为否时,停止升级;
[0019]第二检验模块,用于如果所述升级文件是完整的,在运行所述升级文件中的可执行文件时,验证所述可执行文件中的升级代码是否正确;
[0020]执行模块,用于当所述第二检验模块的输出结果为是时,执行所述升级代码。
[0021]结合第二方面,在第一种可能的实现方式中,所述升级文件各自对应有特征值;所述第一检验模块,包括:
[0022]第一计算模块,用于将所述升级文件各自通过第一预设散列算法进行计算,得到所述升级文件各自对应的计算结果;
[0023]第一比较模块,用于比较所述升级文件各自对应的计算结果与所述升级文件各自对应的特征值是否一致,若是,则所述升级文件是完整的,若否,则所述升级文件损坏。
[0024]结合第二方面,在第二种可能的实现方式中,所述第二检验模块,包括:
[0025]第二计算模块,用于将所述升级代码通过第二预设散列算法进行计算,得到所述升级代码对应的计算结果;所述升级代码对应有特征值;
[0026]第二比较模块,用于比较所述升级代码对应的计算结果与所述升级代码对应的特征值是否一致,若是,则所述升级代码是正确的,若否,则所述升级代码是错误的。
[0027]结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:第一提示模块,用于在所述第一比较模块比较所述升级文件各自对应的计算结果与所述升级文件各自对应的特征值是否一致时,如果比较结果不一致,则输出第一提示信息,用于提示用户所述比较结果不一致的升级文件损坏。
[0028]结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:第二提示模块,用于在所述第二比较模块比较所述升级代码对应的计算结果与所述升级代码对应的特征值是否一致时,如果比较结果不一致,则输出第二提示信息,用于提示用户所述升级代码错误。
[0029]实施本发明,通过在升级时,对升级文件的完整性进行验证,如果升级文件是正确的完整的,则继续升级,并在运行所述升级文件中的可执行文件时,对可执行文件中的升级代码进行验证,如果可执行文件中的代码错误,则停止运行所述可执行文件,可避免异常升级文件被执行而导致的设备异常。
【附图说明】
[0030]为了更清楚地说明本发明的技术方案,下面将对本发明描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1是本发明提供的代码升级方法的第一实施例的流程图;
[0032]图2是本发明提供的代码升级方法的第二实施例的流程图;
[0033]图3是本发明提供的代码升级方法的第三实施例的流程图;
[0034]图4是本发明提供的代码升级装置的第一实施例的结构示意图;
[0035]图5是本发明提供的代码升级装置的第二实施例的结构示意图;
[0036]图6是本发明提供的代码升级装置的第三实施例的结构示意图;
[0037]图7是本发明提供的代码升级装置的第四实施例的结构示意图。
【具体实施方式】
[0038]下面将结合本发明的附图和实施例,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]图1是本发明实施例提供的代码升级方法的第一实施例的流程图,该方法包括:
[0040]步骤SlOl:在利用目标目录下的文件进行升级时,识别出所述目标目录下的升级文件。
[0041]具体的,所述目标目录可以是远端服务器上的目录,升级设备通过网络通信连接,例如W1-Fi,与远端服务器相连,下载远端服务器上的目标目录下的升级文件。所述目标目录也可以是本地主机上的目录,升级设备通过本地连接,例如,USB连接或串口连接,获取主机发送的升级数据。
[0042]具体实现中,所述目标目录下的升级数据会打包成升级数据包。升级设备从所述目标目录下载升级数据包时,可识别出所述升级数据包中的升级文件,用以验证所述升级文件是否是完整的升级文件。
[0043]步骤S103:验证所述升级文件是否是完整的。
[0044]具体的,在从所述目标目录下载到所述升级文件后,升级设备可验证下载到的所述升级文件是否是完整的升级文件。
[0045]本发明实施例中,升级设备可通过消息摘要算法(Message Digest Algorithm)来验证升级文件的完整性。具体实现中,升级数据的提供方可以将升级文件通过消息摘要算法得到固定位数的信息摘要,并将生成的信息摘要隐藏在升级文件中。升级设备在下载到升级文件后,可以通过所述升级数据提供方使用的消息摘要来处理下载到的升级文件。如果下载到的升级文件计算得出的信息摘要与升级文件中隐藏的信息摘要一致,则升级设备可判定下载到的升级文件是完整的,在下载过程中没有发生损坏。需要说明的,在进行文件完整性的验证过程中,本发明实施例可以将升级数据包中的每一个升级文件对应一个信息摘要,也可以将升级数据包中的每一个功能(2个或2个以上的升级文件)对应一个信息摘要,还可以将整个升级数据包对应一个信息摘要,这里不作限制。
[0046]本发明实施例中,升级设备也可通过循环冗余校验码(Cyclic RedundancyCheck,CRC)来验证下载到的升级文件是否是完整的。具体实现中,升级数据的提供方可以根据所述升级文件生成信息字段,并且根据所述信息字段生成CRC码,之后一
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1