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

文档序号:8528039阅读:来源:国知局
起将升级文件和CRC码作为升级数据。升级设备在接收到下载到的升级数据之后,根据信息字段和CRC码之间所遵循的规则进行检验,以确定升级文件传送中是否出错。需要说明的,在进行文件完整性的验证过程中,本发明实施例可以将升级数据包中的每一个升级文件对应一个CRC码,也可以将升级数据包中的每一个功能(2个或2个以上的升级文件)对应一个CRC码,还可以将整个升级数据包对应一个CRC码,这里不作限制。
[0047]需要说明的,升级设备还可通过其他检验方法去判断所述升级文件的完整性,本发明实施例不作限制。
[0048]具体的,如果所述升级文件是完整的,S卩,在下载所述升级文件的过程中没有出错,则执行步骤S105,否则,执行步骤S107,实际应用中,还可以执行其他操作,这里不作限制。
[0049]步骤S105:根据所述升级文件进行升级。
[0050]具体的,如果所述升级文件在传输过程中没有发生损坏,升级设备接收到的升级文件是完整的,则升级设备可以将下载到的升级文件写入到预设存储器中来完成升级。
[0051]步骤S107:停止升级。
[0052]具体的,如果升级设备接收到的升级文件不是完整的,即所述升级文件在传输过程中发生了损坏,则升级设备可立即停止将所述升级文件写入到预设存储器中,停止升级。
[0053]步骤S109,在运行所述升级文件中的可执行文件时,验证所述可执行文件中的升级代码是否正确。
[0054]可选的,在执行步骤S109之前,升级设备可接收运行指令,用以触发运行所述升级文件中的可执行文件。具体实现中,所述运行指令可以是用户交互界面上的用户输入产生的指令,所述运行指令也可以是升级设备上的实体按键被按下产生的指令,这里不作限制。
[0055]本发明实施例中,升级设备可通过消息摘要算法(Message Digest Algorithm)来验证所述升级代码的正确性。具体实现中,所述升级代码的提供方可以将所述升级代码通过消息摘要算法得到固定位数的信息摘要,并将生成的信息摘要隐藏在所述升级代码中。在运行所述升级代码之前,升级设备可采用所述升级代码的提供方采用的消息摘要算法计算出所述升级代码对应的信息摘要,如果计算得到的信息摘要与所述升级代码中隐藏的信息摘要一致,则可判定所述升级代码是正确的。
[0056]本发明实施例中,升级设备也可通过循环冗余校验码(Cyclic RedundancyCheck,CRC)来验证所述升级代码是否是正确的。具体实现中,所述升级代码的提供方可以根据所述升级代码生成信息字段,并且根据所述信息字段生成CRC码。升级设备在运行所述升级代码之前,根据信息字段和CRC码之间所遵循的规则进行检验,以确定所述升级代码是否是正确的。
[0057]具体的,如果所述升级代码是正确的,则可判定在根据所述升级文件进行升级的过程中,将所述可执行文件中的升级代码写入预设存储器的过程中没有产生错误,即所述升级代码是正确的,执行步骤S111,否则,则可判定升级过程中发生了错误,结束当前操作。
[0058]步骤Slll:执行所述升级代码。
[0059]实施本发明实施例,通过在升级时,对升级文件的完整性进行验证,如果升级文件是正确的完整的,则将升级文件写入预设存储器来完成升级,并在运行所述升级文件中的可执行文件时,对可执行文件中的升级代码进行验证,如果可执行文件中的代码正确,则运行所述可执行文件,可实现对升级设备进行正确有效的升级。
[0060]图2是本发明实施例提供的代码升级方法的第二实施例的流程图。图2的实施例进一步的详细说明了本发明实施例提供的升级文件的有效性验证方法。图2的实施例中没有提及的内容请参考图1实施例所述的内容。该方法包括:
[0061]步骤S201:在利用目标目录下的文件进行升级时,识别出所述目标目录下的升级文件。
[0062]具体的,所述目标目录可以是远端服务器上的目录,升级设备通过网络通信连接,例如W1-Fi,与远端服务器相连,下载远端服务器上的目标目录下的升级文件。所述目标目录也可以是本地主机上的目录,升级设备通过本地连接,例如,USB连接或串口连接,获取主机发送的升级数据。
[0063]具体实现中,所述目标目录下的升级数据会打包成升级数据包。升级设备从所述目标目录下载升级数据包时,可识别出所述升级数据包中的升级文件,用以验证所述升级文件是否是完整的升级文件。
[0064]步骤S203:将所述升级文件各自通过第一预设散列算法进行计算,得到所述升级文件各自对应的计算结果。
[0065]具体的,所述第一预设散列算法是升级数据的提供方和升级设备预先约定的散列算法,例如MD5算法。升级数据的提供方通过所述第一预设散列算法将所述升级文件生成与之相对应的特征值,并将所述升级文件对应的特征值隐藏在所述升级文件中。需要说明的,所述第一预设散列算法也可以隐藏在所述升级文件中。
[0066]具体的,在升级设备下载到所述升级文件时,升级设备可将接收到的所述升级文件进行所述第一预设散列算法的计算,得出计算结果。
[0067]优选的,本发明实施例中,升级数据的提供方可以将升级数据包中的每一个升级文件进行一次所述第一预设散列算法的散列运算,即,每一个升级文件对应一个散列特征值;相应的,在下载到所述升级文件后,升级设备需要对每一个升级文件按照所述第一预设散列算法进行一次散列运算,得到各个升级文件对应的计算结果,用以比较各个升级文件的计算结果是否与各个升级文件中隐藏的散列特征值一致。
[0068]需要说明的,本发明实施例也可以将升级数据包中的每一个更新的功能包(包含2个或2个以上的升级文件)对应一个散列特征值,那么,升级设备需要对每一个更新的功能包按照所述第一预设散列算法进行一次散列运算,得到各个更新的功能包对应的计算结果,用以比较各个更新的功能包的计算结果是否与各个更新的功能包中隐藏的散列特征值一致。本发明实施例还可以将整个升级数据包对应一个散列特征值,那么,升级设备只需要对整个升级数据包按照所述第一预设散列算法进行一次散列运算即可。
[0069]可理解的是,由于散列算法的特征,可实现将较大的待验证信息,例如所述升级文件,对应成较小的散列特征值,可减少存储资源的使用,十分适用存储资源有限的设备,例如车用诊断仪读码卡。
[0070]步骤S205:比较所述升级文件各自对应的计算结果与所述升级文件各自对应的特征值是否一致。
[0071 ] 具体的,所述升级文件各自对应的特征值各自存储在所述升级文件的第一预设位置处,例如,文件的最后一行。示例仅仅是本发明实施例的一种实现方式,实际使用中可以不同,不应构成限定。
[0072]在执行步骤S203之后,升级设备可比较所述升级文件各自对应的计算结果与所述升级文件各自对应的特征值是否一致。如果比较结果一致,即,所述升级文件的下载过程没有出错,则执行步骤S205,否则,执行步骤S207,实际应用中,还可以执行其他操作,这里不作限制。
[0073]步骤S207:所述升级文件是完整的,根据所述升级文件进行升级。
[0074]具体的,如果所述升级文件在传输过程中没有发生损坏,升级设备接收到的升级文件是完整的,则升级设备可以将下载到的升级文件写入到预设存储器中来完成升级。
[0075]步骤S209:所述升级文件损坏,停止升级。
[0076]具体的,如果升级设备接收到的升级文件不是完整的,即所述升级文件在传输过程中发生了损坏,则升级设备可立即停止将所述升级文件写入到预设存储器中,停止升级。
[0077]另外,如果升级设备接收到的升级文件不是完整的,即所述升级文件在传输过程中发生了损坏,升级设备还可输出第一提示信息,用于提示用户所述比较结果不一致的升级文件损坏。
[0078]实施本发明实施例,通过散列算法来验证所述升级文件的完整性,可实现利用较小的存储资源来存储所述升级文件对应的特征值,简单有效地验证了所述升级文件在下载过程中是否出现损坏,若所述升级文件出现损坏,则立即停止升级,可避免将错误的升级数据写入预设存储器。
[0079]图3是本发明实施例提供的代码升级方法的第三实施例的流程图。图3的实施例进一步的详细说明了本发明实施例提供的可执行的升级代码的有效性验证方法。图3的实施例中没有提及的内容请参考图1实施例所述的内容。该方法包括:
[0080]步骤S301:根据升级文件进行升级。
[0081]具体的,如果所述升级文件在传输过程中没有发生损坏,升级设备接收到的升级文件是完整的,则升级设备可以将下载到的升级文件写入到预设存储器中来完成升级,以使升级设备运行预设存储器中的可执行文件。
[0082]步骤S303:将所述升级代码通过第二预设散列算法进行计算,得到所述升级代码对应的计算结果。
[0083]具体的,
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1