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

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

Info

Publication number
CN105487888A
CN105487888A CN201510833805.9A CN201510833805A CN105487888A CN 105487888 A CN105487888 A CN 105487888A CN 201510833805 A CN201510833805 A CN 201510833805A CN 105487888 A CN105487888 A CN 105487888A
Authority
CN
China
Prior art keywords
upgrade
upgrade file
file
head
crc
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
Application number
CN201510833805.9A
Other languages
English (en)
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.)
Accelink Technologies Co Ltd
Original Assignee
Accelink 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 Accelink Technologies Co Ltd filed Critical Accelink Technologies Co Ltd
Priority to CN201510833805.9A priority Critical patent/CN105487888A/zh
Publication of CN105487888A publication Critical patent/CN105487888A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种保证完整性及合法性的升级文件生成方法,包括生成在系统升级和/或在应用升级的升级文件的方法,以及使用这种方法生成的用于在系统升级和/或在应用升级的升级文件,以及使用这种升级文件进行在系统升级和/或在应用升级的升级方法。所述生成升级文件的方法包括将升级对象型号信息,升级对象的创建者信息,升级镜像校验信息、升级文件头校验信息以及随机填充字节组合成固定长度的升级文件头,升级过程中通过对升级文件头的检查保证升级文件相对升级对象的合法性。本发明提供一种完备的升级文件生成方法,可以保证生成的文件一定是升级对象合法且完整的升级文件。

Description

一种生成在系统升级和/或在应用升级的升级文件的方法
技术领域
本发明涉及嵌入式系统及产品在系统升级(ISP)和在应用升级(IAP)的技术领域,特别涉及一种保证完整性及合法性的升级文件生成和校验方法。
背景技术
当前嵌入式产品已经广泛深入包括工业控制,家用电器,汽车电子及个人消费产品的各种领域,为了消除缺陷、完善系统及增加功能等,经常需要对嵌入式产品的软件或固件实施在系统和在应用升级,在不需要召回产品和使用专用设备的条件下,升级嵌入式产品内置的程序。
然而当前的在系统和在应用升级,往往只重视升级过程完整无差错,却忽视了升级文件的完整性与合法性;或者只简单的检查升级镜像的完整性却忽视合法性,导致升级过程无法识别由于网络传输等原因所损坏的文件、非本产品适合的文件或恶意仿制的文件等,从而将不合适的程序下载到嵌入式产品,导致需要反复升级,产品功能异常,甚至需要被召回维修。
发明内容
本发明的目的在于克服现有技术的不足,提供一种保证完整性及合法性的升级文件生成和校验方法。
本发明提供一种生成在系统升级和/或在应用升级的升级文件的方法,其包括如下步骤:
步骤1.1,创建初始文件头;
步骤1.2,将升级对象型号信息、升级对象创建者信息加入初始文件头,形成升级文件头;
步骤1.3,将升级镜像填充到1024字节的整数倍,形成新镜像,对新镜像进行循环冗余(CRC)校验,将新镜像的校验结果加入升级文件头的尾部;
步骤1.4,将升级文件头填充到升级文件头的固定长度减去2字节,对填充后的升级文件头实施循环冗余(CRC)校验,将校验结果加入升级文件头,使升级文件长度变成其固定长度;
步骤2.1,将升级文件头附着在所述新镜像的前面,生成升级文件。
在上述技术方案中,所述对象型号信息包括产品类型、型号、编码中的一项或多项;所述升级对象创建者信息包括升级对象的生产者信息和/或销售者信息。
在上述技术方案中,包括升级文件头和升级镜像数据;所述升级文件头包括升级对象型号信息、升级对象创建者信息、镜像文件的循环冗余校验(CRC)、填充字节、升级文件头的循环冗余校验(CRC);所述升级镜像数据包括镜像文件数据和填充字节。
在上述技术方案中,所述对象型号信息包括产品类型、型号、编码中的一项或多项;所述升级对象创建者信息包括升级对象的生产者信息和/或销售者信息。
在上述技术方案中,通过若干个固定或随机的填充字节将升级文件头的固定长度调整为1024的整数倍;通过若干个固定或随机的填充字节将升级镜像数据的长度调整为1024的整数倍。
本发明还提供一种使用上述升级文件进行在系统升级和/或在应用升级的升级方法,其包括如下步骤:
步骤3.1,升级对象接收升级文件头;
步骤3.2,检查升级文件头中的升级对象型号信息是否与升级对象的期望符合,符合则继续下一步,否则给出型号信息错误并退出;
步骤3.3,检查升级文件头中的升级对象创建者信息是否与升级对象的期望符合,符合则继续下一步,否则给出创建者信息错误并退出;
步骤3.4,对升级文件头除最后2字节以外的数据实施循环冗余(CRC)校验,并将结果与升级文件头中储存的相应校验值比对,两者相同则继续下一步,否则给出升级文件头CRC校验错误并退出;
步骤3.5,升级对象继续接收升级镜像数据;
步骤3.6,对升级镜像数据的全部数据实施循环冗余(CRC)校验,并将结果与升级文件头中储存的相应校验值比对,两者相同则认为升级文件的完整性及合法性正确,否则给出升级镜像CRC校验错误并退出。
本发明能够克服当前普通升级文件生成方法的缺点,在轻微增加升级文件大小的代价下,能够以简单的方法保证升级文件的合法性和完整性,从而具有以下有益效果:
1、将升级对象的创建者信息加入升级文件头中,能够识别升级文件是否与特定硬件具有对应关系,是否适合于升级对象的具体型号;能够识别升级文件是否属于升级对象指定的创建者所产生,从而避免升级了错误型号的程序,或者错误提供者的程序,或者恶意仿制的程序;例如,当一个客户购买了两个厂家的同类产品,这样通过类型、型号、版本号等可能无法判定该程序是否属于某一个硬件,而通过创建者(厂家)信息则可以进行判定。
2、对升级镜像和文件头的双重循环冗余校验(CRC)可以保证升级文件准确无错误。特别是对文件头本身做了CRC校验,防止文件头个别重要字节被破坏造成的严重后果,例如文件长度字节被破坏导致程序接收不完整,文件版本字节被破坏导致将早期版本误认为是更新的版本等情况。
3、在升级文件中增加了插入随机字节,防止文件头被破解,而现有的其它方案只要破解了文件头,就可以仿制升级文件。
附图说明
图1是升级文件的形成过程示意图。
图2是升级文件的结构示意图。
图3是对升级文件实施校验的流程示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及具体实施方式对本发明作进一步的详细描述。
本发明的设计主要包括三个部分:形成升级文件头,将升级文件头与升级镜像合成升级文件,以及检查升级文件完整性和合法性。
形成升级文件头的过程,是将型号信息,创建者信息,升级镜像校验,头文件自身的校验和随机填充字节等内容,按照一定的地址和步骤合成一个固定大小(例如1024字节)的文件。参见图1,其具体实施步骤如下:
步骤1.1,创建一个空的二进制文件作为初始的文件头;
步骤1.2,将升级对象的型号信息加入升级文件头,该型号信息可以是产品类型,型号,编码等,用于区别升级对象与其它类似对象;
步骤1.3,将升级对象的创建者信息加入升级文件头的尾部,该创建者信息可以是升级对象的生产者,销售者等,用于和升级对象使用者的其它供应者区分;
步骤1.4,用固定或随机的数据将升级镜像填充到1024字节的整数倍,形成新镜像;
步骤1.5,对新镜像实施循环冗余(CRC)校验,
步骤1.6,将校验结果加入升级文件头的尾部;
步骤1.7,使用随机字节将升级文件头填充到固定长度-2字节;
步骤1.8,对填充后的升级文件头实施循环冗余(CRC)校验;
步骤1.9,将校验结果加入升级文件头,使升级文件长度变成固定长度。
将升级文件头与升级镜像合成升级文件的实施步骤如下:。
步骤2.1,将文件头附着在新镜像的前面,文件头占据低地址,长度为1024字节的整数倍;新镜像占据高地址,长度也为1024字节的整数倍。这样文件头将首先被升级对象接收和检查,便于尽早发现升级文件的合法性问题,从而提高发现异常时的退出效率。合成后的升级文件结构如图2所示,升级文件从低地址到高地址包括升级对象型号信息、升级对象创建者信息、镜像文件的循环冗余校验(CRC)、随机填充字节、升级文件头的循环冗余校验(CRC)、镜像文件、镜像文件的填充字节。
检查升级文件完整性和合法性,包括检查升级文件头包含的型号信息和创建者信息是否符合升级对象的要求,以及检查升级镜像和升级文件头的循环冗余(CRC)校验实际值,是否和升级文件头保存的校验值相等。参见图3,实施步骤如下:
步骤3.1,升级对象接收文件头;
步骤3.2,检查文件头中的型号信息是否与升级对象的型号信息符合,符合则继续下一步,否则给出型号信息错误并退出;
步骤3.3,检查文件头中的创建者信息是否与升级对象的期望符合,符合则继续下一步,否则给出创建者信息错误并退出;
步骤3.4,对文件头除最后2字节以外的数据实施循环冗余(CRC)校验,并将结果与文件头中储存的相应校验值比对,两者相同则继续下一步,否则给出文件头CRC校验错误并退出;
步骤3.5,升级对象接收升级镜像;
步骤3.6,对升级镜像的全部数据实施循环冗余(CRC)校验,并将结果与文件头中储存的相应校验值比对,两者相同则认为升级文件的完整性及合法性正确,否则给出升级镜像CRC校验错误并退出。
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式中所述的实施例,凡是由本领域技术人员这样根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

Claims (6)

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校验错误并退出。
CN201510833805.9A 2015-11-26 2015-11-26 一种生成在系统升级和/或在应用升级的升级文件的方法 Pending CN105487888A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510833805.9A CN105487888A (zh) 2015-11-26 2015-11-26 一种生成在系统升级和/或在应用升级的升级文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510833805.9A CN105487888A (zh) 2015-11-26 2015-11-26 一种生成在系统升级和/或在应用升级的升级文件的方法

Publications (1)

Publication Number Publication Date
CN105487888A true CN105487888A (zh) 2016-04-13

Family

ID=55674884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510833805.9A Pending CN105487888A (zh) 2015-11-26 2015-11-26 一种生成在系统升级和/或在应用升级的升级文件的方法

Country Status (1)

Country Link
CN (1) CN105487888A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126297A (zh) * 2016-06-30 2016-11-16 西安诺瓦电子科技有限公司 基于Android操作系统的系统升级方法
CN106250188A (zh) * 2016-07-29 2016-12-21 捷开通讯(深圳)有限公司 一种系统固件映像文件的生成方法及系统
WO2018001082A1 (zh) * 2016-06-30 2018-01-04 中兴通讯股份有限公司 升级文件的制作方法、升级方法、装置及设备
CN107688463A (zh) * 2017-09-21 2018-02-13 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN108632024A (zh) * 2017-03-21 2018-10-09 中兴通讯股份有限公司 一种运行引导程序的方法及装置
CN109271190A (zh) * 2018-10-15 2019-01-25 迈普通信技术股份有限公司 一种设备升级方法及嵌入式设备
CN109582334A (zh) * 2018-11-29 2019-04-05 杭州迪普科技股份有限公司 可编程逻辑器件的升级方法及装置
CN110932891A (zh) * 2019-11-21 2020-03-27 广州邦讯信息系统有限公司 防出错ota升级方法、装置、计算机设备及存储介质
CN111213123A (zh) * 2017-10-11 2020-05-29 深圳传音通讯有限公司 一种用于智能终端的软件升级方法及软件升级系统
CN111240885A (zh) * 2019-12-28 2020-06-05 杭州拓深科技有限公司 一种嵌入式在线升级防错检测方法
CN112732310A (zh) * 2021-01-22 2021-04-30 深圳市信义科技有限公司 基于嵌入式引导分区固件升级方法、系统、设备及介质
CN115225494A (zh) * 2022-07-26 2022-10-21 武汉烽火技术服务有限公司 一种网关设备进行复合镜像升级的方法和装置
CN115514498A (zh) * 2022-09-27 2022-12-23 四川长虹电器股份有限公司 快速检测安卓电视系统镜像文件中签名信息的方法
CN115544521A (zh) * 2022-11-25 2022-12-30 神州灵云(北京)科技有限公司 一种离线安装文件生成和校验方法、装置、介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325475A (zh) * 2008-07-10 2008-12-17 中兴通讯股份有限公司 一种嵌入式系统软件远程升级方法
CN101557308A (zh) * 2009-05-06 2009-10-14 成都市华为赛门铁克科技有限公司 一种文件的升级方法及终端设备
CN102662789A (zh) * 2012-03-27 2012-09-12 株洲南车时代电气股份有限公司 一种elf文件添加crc校验的方法
CN103235829A (zh) * 2013-05-14 2013-08-07 厦门市美亚柏科信息股份有限公司 Rar文件的解压缩方法和装置
CN103646082A (zh) * 2013-12-12 2014-03-19 北京奇虎科技有限公司 一种文件校验的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325475A (zh) * 2008-07-10 2008-12-17 中兴通讯股份有限公司 一种嵌入式系统软件远程升级方法
CN101557308A (zh) * 2009-05-06 2009-10-14 成都市华为赛门铁克科技有限公司 一种文件的升级方法及终端设备
CN102662789A (zh) * 2012-03-27 2012-09-12 株洲南车时代电气股份有限公司 一种elf文件添加crc校验的方法
CN103235829A (zh) * 2013-05-14 2013-08-07 厦门市美亚柏科信息股份有限公司 Rar文件的解压缩方法和装置
CN103646082A (zh) * 2013-12-12 2014-03-19 北京奇虎科技有限公司 一种文件校验的方法及装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018001082A1 (zh) * 2016-06-30 2018-01-04 中兴通讯股份有限公司 升级文件的制作方法、升级方法、装置及设备
CN107562434A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 升级文件的制作方法、升级方法、装置及设备
CN106126297A (zh) * 2016-06-30 2016-11-16 西安诺瓦电子科技有限公司 基于Android操作系统的系统升级方法
CN106250188B (zh) * 2016-07-29 2019-08-23 捷开通讯(深圳)有限公司 一种系统固件映像文件的生成方法及系统
CN106250188A (zh) * 2016-07-29 2016-12-21 捷开通讯(深圳)有限公司 一种系统固件映像文件的生成方法及系统
CN108632024A (zh) * 2017-03-21 2018-10-09 中兴通讯股份有限公司 一种运行引导程序的方法及装置
CN107688463A (zh) * 2017-09-21 2018-02-13 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN107688463B (zh) * 2017-09-21 2020-08-18 杭州全维技术股份有限公司 一种嵌入式设备版本文件打包的方法
CN111213123A (zh) * 2017-10-11 2020-05-29 深圳传音通讯有限公司 一种用于智能终端的软件升级方法及软件升级系统
CN109271190A (zh) * 2018-10-15 2019-01-25 迈普通信技术股份有限公司 一种设备升级方法及嵌入式设备
CN109582334A (zh) * 2018-11-29 2019-04-05 杭州迪普科技股份有限公司 可编程逻辑器件的升级方法及装置
CN109582334B (zh) * 2018-11-29 2022-04-26 杭州迪普科技股份有限公司 可编程逻辑器件的升级方法及装置
CN110932891A (zh) * 2019-11-21 2020-03-27 广州邦讯信息系统有限公司 防出错ota升级方法、装置、计算机设备及存储介质
CN111240885A (zh) * 2019-12-28 2020-06-05 杭州拓深科技有限公司 一种嵌入式在线升级防错检测方法
CN112732310A (zh) * 2021-01-22 2021-04-30 深圳市信义科技有限公司 基于嵌入式引导分区固件升级方法、系统、设备及介质
CN115225494A (zh) * 2022-07-26 2022-10-21 武汉烽火技术服务有限公司 一种网关设备进行复合镜像升级的方法和装置
CN115225494B (zh) * 2022-07-26 2023-08-15 烽火通信科技股份有限公司 一种网关设备进行复合镜像升级的方法和装置
CN115514498A (zh) * 2022-09-27 2022-12-23 四川长虹电器股份有限公司 快速检测安卓电视系统镜像文件中签名信息的方法
CN115544521A (zh) * 2022-11-25 2022-12-30 神州灵云(北京)科技有限公司 一种离线安装文件生成和校验方法、装置、介质及电子设备
CN115544521B (zh) * 2022-11-25 2023-03-03 神州灵云(北京)科技有限公司 一种离线安装文件的校验和生成方法及装置

Similar Documents

Publication Publication Date Title
CN105487888A (zh) 一种生成在系统升级和/或在应用升级的升级文件的方法
CN106104508B (zh) 用于利用时钟设置模块的地址的方法及装置
CN107770622B (zh) 一种更新Linux系统中文件的方法
CN108363640B (zh) 数据校验方法及装置、计算机可读存储介质
US9632765B1 (en) Customized application package with context specific token
JP2015232553A (ja) センサシステムにおけるキャリブレーションデータ
CN104579558A (zh) 一种数据传输过程中完整性检测方法
CN111158751B (zh) 一种Windows环境部署方法、电子设备及存储介质
US20130133076A1 (en) Web vulnerability repair apparatus, web server, web vulnerability repair method, and program
CN112100081B (zh) 基于双芯智能电表的升级测试方法、装置和计算机设备
CN104077373A (zh) 一种数据一致性校验方法
CN105528325A (zh) 一种标准spi协议高速传输的保护方法及系统
CN103763067A (zh) 一种通信数据包纠错校验方法与装置
CN106533622B (zh) 基于can fd总线的数据帧的数据场校验方法及装置
CN104133701A (zh) 一种应用程序安装方法和装置
CN117836770A (zh) 生成和分发定制的嵌入式操作系统
CN102999397A (zh) 一种嵌入式软件升级校验的方法
JP4839364B2 (ja) 結合されたコマンドおよびデータ・コード
CN103685471A (zh) 一种以独占方式对软件客户端进行更新的方法及系统
CN114220380B (zh) 校准数字电路、源级驱动器和显示面板
CN116074308A (zh) 车端升级包下载方法、系统、设备及可读存储介质
CN107203359B (zh) 耗材芯片的通信方法、耗材芯片
CN106155709B (zh) 插件加载方法、装置及设备
US20170270020A1 (en) Information processing device, information processing method and computer program product
CN105376646B (zh) 一种机顶盒升级程序配置方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160413