一种生成在系统升级和/或在应用升级的升级文件的方法

xiaoxiao2021-3-1  172

一种生成在系统升级和/或在应用升级的升级文件的方法
【技术领域】
[0001]本发明涉及嵌入式系统及产品在系统升级(ISP)和在应用升级(IAP)的技术领域,特别涉及一种保证完整性及合法性的升级文件生成和校验方法。
【背景技术】
[0002]当前嵌入式产品已经广泛深入包括工业控制,家用电器,汽车电子及个人消费产品的各种领域,为了消除缺陷、完善系统及增加功能等,经常需要对嵌入式产品的软件或固件实施在系统和在应用升级,在不需要召回产品和使用专用设备的条件下,升级嵌入式产品内置的程序。
[0003]然而当前的在系统和在应用升级,往往只重视升级过程完整无差错,却忽视了升级文件的完整性与合法性;或者只简单的检查升级镜像的完整性却忽视合法性,导致升级过程无法识别由于网络传输等原因所损坏的文件、非本产品适合的文件或恶意仿制的文件等,从而将不合适的程序下载到嵌入式产品,导致需要反复升级,产品功能异常,甚至需要被召回维修。

【发明内容】

[0004]本发明的目的在于克服现有技术的不足,提供一种保证完整性及合法性的升级文件生成和校验方法。
[0005]本发明提供一种生成在系统升级和/或在应用升级的升级文件的方法,其包括如下步骤:
[0006]步骤1.1,创建初始文件头;
[0007]步骤1.2,将升级对象型号信息、升级对象创建者信息加入初始文件头,形成升级文件头;
[0008]步骤1.3,将升级镜像填充到1024字节的整数倍,形成新镜像,对新镜像进行循环冗余(CRC)校验,将新镜像的校验结果加入升级文件头的尾部;
[0009]步骤1.4,将升级文件头填充到升级文件头的固定长度减去2字节,对填充后的升级文件头实施循环冗余(CRC)校验,将校验结果加入升级文件头,使升级文件长度变成其固定长度;
[0010]步骤2.1,将升级文件头附着在所述新镜像的前面,生成升级文件。
[0011]在上述技术方案中,所述对象型号信息包括产品类型、型号、编码中的一项或多项;所述升级对象创建者信息包括升级对象的生产者信息和/或销售者信息。
[0012]在上述技术方案中,包括升级文件头和升级镜像数据;所述升级文件头包括升级对象型号信息、升级对象创建者信息、镜像文件的循环冗余校验(CRC)、填充字节、升级文件头的循环冗余校验(CRC);所述升级镜像数据包括镜像文件数据和填充字节。
[0013]在上述技术方案中,所述对象型号信息包括产品类型、型号、编码中的一项或多项;所述升级对象创建者信息包括升级对象的生产者信息和/或销售者信息。
[0014]在上述技术方案中,通过若干个固定或随机的填充字节将升级文件头的固定长度调整为1024的整数倍;通过若干个固定或随机的填充字节将升级镜像数据的长度调整为1024的整数倍。
[0015]本发明还提供一种使用上述升级文件进行在系统升级和/或在应用升级的升级方法,其包括如下步骤:
[0016]步骤3.1,升级对象接收升级文件头;
[0017]步骤3.2,检查升级文件头中的升级对象型号信息是否与升级对象的期望符合,符合则继续下一步,否则给出型号信息错误并退出;
[0018]步骤3.3,检查升级文件头中的升级对象创建者信息是否与升级对象的期望符合,符合则继续下一步,否则给出创建者信息错误并退出;
[0019]步骤3.4,对升级文件头除最后2字节以外的数据实施循环冗余(CRC)校验,并将结果与升级文件头中储存的相应校验值比对,两者相同则继续下一步,否则给出升级文件头CRC校验错误并退出;
[0020]步骤3.5,升级对象继续接收升级镜像数据;
[0021]步骤3.6,对升级镜像数据的全部数据实施循环冗余(CRC)校验,并将结果与升级文件头中储存的相应校验值比对,两者相同则认为升级文件的完整性及合法性正确,否则给出升级镜像CRC校验错误并退出。
[0022]本发明能够克服当前普通升级文件生成方法的缺点,在轻微增加升级文件大小的代价下,能够以简单的方法保证升级文件的合法性和完整性,从而具有以下有益效果:
[0023]1、将升级对象的创建者信息加入升级文件头中,能够识别升级文件是否与特定硬件具有对应关系,是否适合于升级对象的具体型号;能够识别升级文件是否属于升级对象指定的创建者所产生,从而避免升级了错误型号的程序,或者错误提供者的程序,或者恶意仿制的程序;例如,当一个客户购买了两个厂家的同类产品,这样通过类型、型号、版本号等可能无法判定该程序是否属于某一个硬件,而通过创建者(厂家)信息则可以进行判定。
[0024]2、对升级镜像和文件头的双重循环冗余校验(CRC)可以保证升级文件准确无错误。特别是对文件头本身做了 CRC校验,防止文件头个别重要字节被破坏造成的严重后果,例如文件长度字节被破坏导致程序接收不完整,文件版本字节被破坏导致将早期版本误认为是更新的版本等情况。
[0025]3、在升级文件中增加了插入随机字节,防止文件头被破解,而现有的其它方案只要破解了文件头,就可以仿制升级文件。
【附图说明】
[0026]图1是升级文件的形成过程示意图。
[0027]图2是升级文件的结构示意图。
[0028]图3是对升级文件实施校验的流程示意图。
【具体实施方式】
[0029]为了便于本领域普通技术人员理解和实施本发明,下面结合附图及【具体实施方式】对本发明作进一步的详细描述。
[0030]本发明的设计主要包括三个部分:形成升级文件头,将升级文件头与升级镜像合成升级文件,以及检查升级文件完整性和合法性。
[0031]形成升级文件头的过程,是将型号信息,创建者信息,升级镜像校验,头文件自身的校验和随机填充字节等内容,按照一定的地址和步骤合成一个固定大小(例如1024字节)的文件。参见图1,其具体实施步骤如下:
[0032]步骤1.1,创建一个空的二进制文件作为初始的文件头;
[0033]步骤1.2,将升级对象的型号信息加入升级文件头,该型号信息可以是产品类型,型号,编码等,用于区别升级对象与其它类似对象;
[0034]步骤1.3,将升级对象的创建者信息加入升级文件头的尾部,该创建者信息可以是升级对象的生产者,销售者等,用于和升级对象使用者的其它供应者区分;
[0035]步骤1.4,用固定 或随机的数据将升级镜像填充到1024字节的整数倍,形成新镜像;
[0036]步骤1.5,对新镜像实施循环冗余(CRC)校验,
[0037]步骤1.6,将校验结果加入升级文件头的尾部;
[0038]步骤1.7,使用随机字节将升级文件头填充到固定长度-2字节;
[0039]步骤1.8,对填充后的升级文件头实施循环冗余(CRC)校验;
[0040]步骤1.9,将校验结果加入升级文件头,使升级文件长度变成固定长度。
[0041 ]将升级文件头与升级镜像合成升级文件的实施步骤如下:。
[0042]步骤2.1,将文件头附着在新镜像的前面,文件头占据低地址,长度为1024字节的整数倍;新镜像占据高地址,长度也为1024字节的整数倍。这样文件头将首先被升级对象接收和检查,便于尽早发现升级文件的合法性问题,从而提高发现异常时的退出效率。合成后的升级文件结构如图2所示,升级文件从低地址到高地址包括升级对象型号信息、升级对象创建者信息、镜像文件的循环冗余校验(CRC)、随机填充字节、升级文件头的循环冗余校验(CRC)、镜像文件、镜像文件的填充字节。
[0043]检查升级文件完整性和合法性,包括检查升级文件头包含的型号信息和创建者信息是否符合升级对象的要求,以及检查升级镜像和升级文件头的循环冗余(CRC)校验实际值,是否和升级文件头保存的校验值相等。参见图3,实施步骤如下:
[0044]步骤3.1,升级对象接收文件头;
[0045]步骤3.2,检查文件头中的型号信息是否与升级对象的型号信息符合,符合则继续下一步,否则给出型号信息错误并退出;
[0046]步骤3.3,检查文件头中的创建者信息是否与升级对象的期望符合,符合则继续下一步,否则给出创建者信息错误并退出;
[0047]步骤3.4,对文件头除最后2字节以外的数据实施循环冗余(CRC)校验,并将结果与文件头中储存的相应校验值比对,两者相同则继续下一步,否则给出文件头CRC校验错误并退出;
[0048]步骤3.5,升级对象接收升级镜像;
[0049]步骤3.6,对升级镜像的全部数据实施循环冗余(CRC)校验,并将结果与文件头中储存的相应校验值比对,两者相同则认为升级文件的完整性及合法性正确,否则给出升级镜像CRC校验错误并退出。
[0050]需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于【具体实施方式】中所述的实施例,凡是由本领域技术人员这样根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
【主权项】
1.一种生成在系统升级和/或在应用升级的升级文件的方法,其特征在于包括如下步骤: 步骤1.1,创建初始文件头; 步骤1.2,将升级对象型号信息、升级对象创建者信息加入初始文件头,形成升级文件头; 步骤1.3,将升级镜像填充到1024字节的整数倍,形成新镜像,对新镜像进行循环冗余(CRC)校验,将新镜像的校验结果加入升级文件头的尾部; 步骤1.4,将升级文件头填充到升级文件头的固定长度减去2字节,对填充后的升级文件头实施循环冗余(CRC)校验,将校验结果加入升级文件头,使升级文件长度变成其固定长度; 步骤2.1,将升级文件头附着在所述新镜像的前面,生成升级文件。2.根据权利要求1所述的一种生成在系统升级和/或在应用升级的升级文件的方法,其特征在于:所述对象型号信息包括产品类型、型号、编码中的一项或多项;所述升级对象创建者信息包括升级对象的生产者信息和/或销售者信息。3.—种用于在系统升级和/或在应用升级的升级文件,其特征在于:包括升级文件头和升级镜像数据;所述升级文件头包括升级对象型号信息、升级对象创建者信息、镜像文件的循环冗余校验(CRC)、填充字节、升级文件头的循环冗余校验(CRC);所述升级镜像数据包括镜像文件数据和填充字节。4.根据权利要求3所述的一种生成在系统升级和/或在应用升级的升级文件的方法,其特征在于:所述对象型号信息包括产品类型、型号、编码中的一项或多项;所述升级对象创建者信息包括升级对象的生产者信息和/或销售者信息。5.根据权利要求3或4所述的一种生成在系统升级和/或在应用升级的升级文件的方法,其特征在于:通过若干个固定或随机的填充字节将升级文件头的固定长度调整为1024的整数倍;通过若干个固定或随机的填充字节将升级镜像数据的长度调整为1024的整数倍。6.—种使用如权利要求3-5中任一项所述升级文件进行在系统升级和/或在应用升级的升级方法,其特征在于包括如下步骤: 步骤3.1,升级对象接收升级文件头; 步骤3.2,检查升级文件头中的升级对象型号信息是否与升级对象的期望符合,符合则继续下一步,否则给出型号信息错误并退出; 步骤3.3,检查升级文件头中的升级对象创建者信息是否与升级对象的期望符合,符合则继续下一步,否则给出创建者信息错误并退出; 步骤3.4,对升级文件头除最后2字节以外的数据实施循环冗余(CRC)校验,并将结果与升级文件头中储存的相应校验值比对,两者相同则继续下一步,否则给出升级文件头CRC校验错误并退出; 步骤3.5,升级对象继续接收升级镜像数据; 步骤3.6,对升级镜像数据的全部数据实施循环冗余(CRC)校验,并将结果与升级文件头中储存的相应校验值比对,两者相同则认为升级文件的完整性及合法性正确,否则给出升级镜像CRC校验错误并退出。
【专利摘要】本发明涉及一种保证完整性及合法性的升级文件生成方法,包括生成在系统升级和/或在应用升级的升级文件的方法,以及使用这种方法生成的用于在系统升级和/或在应用升级的升级文件,以及使用这种升级文件进行在系统升级和/或在应用升级的升级方法。所述生成升级文件的方法包括将升级对象型号信息,升级对象的创建者信息,升级镜像校验信息、升级文件头校验信息以及随机填充字节组合成固定长度的升级文件头,升级过程中通过对升级文件头的检查保证升级文件相对升级对象的合法性。本发明提供一种完备的升级文件生成方法,可以保证生成的文件一定是升级对象合法且完整的升级文件。
【IPC分类】G06F9/445, G06F11/10
【公开号】CN105487888
【申请号】CN201510833805
【发明人】杨智, 彭莉, 程丽晶, 蔡潇, 汤晓敏
【申请人】武汉光迅科技股份有限公司
【公开日】2016年4月13日
【申请日】2015年11月26日

最新回复(0)