CN107479924B - 基于Android系统的软件升级校验方法 - Google Patents

基于Android系统的软件升级校验方法 Download PDF

Info

Publication number
CN107479924B
CN107479924B CN201710676989.1A CN201710676989A CN107479924B CN 107479924 B CN107479924 B CN 107479924B CN 201710676989 A CN201710676989 A CN 201710676989A CN 107479924 B CN107479924 B CN 107479924B
Authority
CN
China
Prior art keywords
crc
upgrade file
data
information
upgrade
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.)
Active
Application number
CN201710676989.1A
Other languages
English (en)
Other versions
CN107479924A (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201710676989.1A priority Critical patent/CN107479924B/zh
Publication of CN107479924A publication Critical patent/CN107479924A/zh
Application granted granted Critical
Publication of CN107479924B publication Critical patent/CN107479924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Detection And Correction Of Errors (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于Android系统的软件升级校验方法,包括如下步骤:步骤1、在升级文件最后的部分打包一个升级文件扩展区,扩展区包含固件标识代码、扩展区校验信息、升级文件全校验信息;步骤2、验证扩展区校验信息,如数据一致,进入下步骤检查;如果数据不一致,进入正常启动开机;步骤3、验证固件标识代码;如果一致,进入下步骤检查;如果数据不一致,进入正常启动开机;步骤4、升级文件全校验信息进行比较;如果正确,这时启动进入正常升级流程;如果数据不一致,则退出升级引导,进入正常启动开机。本发明极大提高了升级刷机的安全性。减低了售后的维护成本,提高了售后软件服务效率。

Description

基于Android系统的软件升级校验方法
技术领域
本发明涉及一种软件升级校验方法,具体涉及一种基于Android系统的软件升级校验方法,属于Android智能电视机技术领域。
背景技术
随着这几年Android智能电视市场整体平稳增长和软件功能的更新迭代,为处理售后维护和功能更新采用本地U盘刷机包的方式更新电视机软件系统成为比较常用的方式,为保证升级的安全性各大电视制造商都进行了升级文件的安全校验,来保证升级后系统能够正常启动和使用。
就目前来说,有二种方法比较常用的验证升级文件的正确性的方法。方法一,很多整机厂商会对升级文件的文件名进行严格的编写命名(如:采用主芯片方式或技术方案命名号等),在整机的引导升级中按照该规范进行检查。这种方法实施比较简单,如73机芯系列智能电视升级时只是对名称为ZLS73×××××.bin的升级文件认为是合法的,当检查到U盘中有该升级文件“ZLS73×××××.bin”就启动升级流程,将该升级文件升级到系统中。但该方法没有对升级文件内容本身有任何进行有效的检查,无法解决在升级文件内容不匹配但文件名称正常,升级后会造成系统无法启动或功能异常无法使用的情况;方法二,在升级文件中插入一个文件头,包括在升级引导中检查该文件头信息(如:采用主芯片方式或技术方案命名号等)。这种方式一定程度上对升级文件内容本身检查(对升级文件头区域进行检查),但没有对整个升级文件的进行有效的检查,无法解决因升级文件内容被损坏(传输过程或传输煤质原因),升级后会造成系统无法启动或功能异常无法使用等情况。
发明内容
本发明克服了现有技术的缺陷,提供了一种安全、可靠的基于Android系统的软件升级校验方法。
本发明是这样实现的:
一种基于Android系统的软件升级校验方法,包括如下步骤:
步骤1、在升级文件最后的部分打包一个升级文件扩展区,扩展区包含固件标识代码(MagicString)、扩展区校验信息(CRC_Padd_value)、升级文件全校验信息(CRC_All_value);
步骤2、在系统引导程序中,读出升级文件的扩展区中的全部内容,通过标准的CRC校验和算法计算出扩展区数据的实际校验信息并同扩展区校验信息(CRC_Padd_value)的数据比较,如数据一致,进入下步骤检查;如果数据不一致,说明扩展区数据遭到损坏,则退出升级引导,进入正常启动开机;
步骤3、在系统引导程序中,读出升级文件的扩展区中的固件标识代码(MagicString),并同引导程序代码中内置的标识代码数据比较;如果一致,进入下步骤检查;如果数据不一致,说明升级文件不能匹配系统,则退出升级引导,进入正常启动开机;
步骤4、在系统引导程序中,将有效的升级文件内容的数据依次按照共享内存块(2M)的大小下载并计算CRC校验结果,再依次汇总各块的CRC计算值,得到整个有效升级文件的实际的CRC的数据值,同扩展区中在指定位置放置的升级文件全校验信息(CRC_All_value)进行比较;如果正确,这时启动进入正常升级流程;如果数据不一致,说明有效的升级文件有数据的损坏,则退出升级引导,进入正常启动开机。
更进一步的方案是:
步骤1中,升级文件扩展区的大小为16K。
更进一步的方案是:
所述固件标识代码(MagicString)为根据整机技术方案平台的特征信息生成的一个固件标识流信息,用于表征升级软件匹配标志这部分信息。
更进一步的方案是:
所述升级文件全校验信息(CRC_All_value)为对编译后的升级文件的内容以标准的CRC校验和算法生成对应的升级文件全校验信息,用于表征升级软件内容正确性的信息。
更进一步的方案是:
所述扩展区校验(CRC_Padd_value)为对文件扩展区内容以标准的CRC校验和算法生成对应的扩展区校验CRC信息,用于表征扩展区内容的正确性的信息。
更进一步的方案是:
步骤4中,有效的升级文件内容指不包括扩展区的升级文件的内容。
更进一步的方案是:
步骤4中,共享内存块大小为2M。
本发明中,在生成和编译完升级文件后,对整个升级文件的内容按照标准的CRC校验和算法生成对应的升级文件全校验信息(CRC_All_value),作为有效升级文件的正确性的保证信息(防止软件内容被破坏);根据整机技术方案平台的特征信息(如:分区表信息,技术方案命名信息等,按照各逻辑分区名称+分区分配大小+指定附件数据+技术方案命名等方式)生成一个固件标识流信息(MagicString,约12K大小),用于表征升级软件匹配标志,作为升级文件的合法性的保证信息(防止软件固件的误升级,如:防止ZLS73机芯的软件固件升级到ZLS58平台中)。同时在原先的升级文件的末尾增加一个升级文件扩展信息区(如:16K),将这两部分信息打包到扩展信息区中,完成后生成一个该区域的校验信息(CRC_Padd_value),放在扩展信息区中,以保证扩展区的数据安全。
本发明的方法主要通过对整个升级文件内容(有效升级文件和扩展文件信息)均采用了校验的方式,通过对固件标识代码(MagicString)和升级文件全校验信息(CRC_All_value)的验证保证了升级文件的合法性和正确性。特别是技术上采用了内存共享方式、分块读取有效升级文件内容等技术手段来校验有效升级文件。解决了目前在售后和生产维护阶段出现的因升级文件内容被损坏(传输过程或传输煤质原因)导致升级后系统无法正常启动的问题。极大提高了升级刷机的安全性。减低了售后的维护成本,提高了售后软件服务效率。
附图说明
图1为本发明的升级校验流程图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
如附图1所示,基于Android系统的软件升级校验方法,包括如下步骤:
步骤1、改造升级文件,增加升级文件扩展区:在编译升级文件生成后,在该升级文件的最后的部分打包一个文件扩展区,该扩展区包含升级文件的技术方案标识(MagicString)、扩展区校验(CRC_Padd_value)、升级文件全校验信息(CRC_All_value)。这部分信息用于后续对升级文件检查并认定正常性的依据。
1)技术方案标识(MagicString):为一个固定的文件数据流(按照各逻辑分区名称+分区分配大小+指定附件数据+技术方案命名等内容的文件内容加载而成,约12K)以文件内容的方式打包到扩展区预先约定的位置;
2)升级文件全校验信息(CRC_All_value):对编译后的升级文件的内容按照标准的Linux命令运行的方式,以标准的CRC校验和算法生成对应的升级文件全校验信息,并通过数据的方式打包到扩展区预先约定的位置;
3)扩展区校验(CRC_Padd_value):对已经打包数据的文件扩展区内容,以标准的CRC校验和算法生成对应的扩展区校验CRC信息,并通过数据的方式打包到扩展区预先约定的位置。
步骤2、在系统引导程序中,先读出升级文件的扩展区中的全部内容,并验证扩展区的数据安全性。
1)按照升级文件预定的文件格式,读取升级文件末尾的整个扩展区文件内容(设定的扩展区文件大小16K);
2)通过标准的CRC校验和算法计算出扩展区数据的实际校验信息;
3)根据以读取扩展区的数据,在指定的位置获取打包的扩展区校验(CRC_Padd_value)。
4)比较这两个数据,如数据一致进入下步骤检查;如果数据不一致,说明扩展区数据遭到损坏,则退出升级引导,进入正常启动开机;
步骤3、读出升级文件的扩展区中读取固件标识代码(MagicString),并验证该状态。
1)按照扩展区的文件格式,在指定的位置读取打包的固件标识代码(MagicString,约12K)并将该信息先放入一个内存Buffer1中;
2)将引导程序代码中内置的标识数据读入到另一个Buffer2中;
3)比较这两个数据,如果一致,进入下步骤检查(确保升级文件的合法性);如果数据不一致,说明升级文件不能匹配我们的系统,则退出升级引导,进入正常启动开机;
步骤4、计算有效升级文件的校验和,并验证该状态。
1)将有效的升级文件内容(升级文件按照设定的扩展区文件大小,剔除文件末尾的该部分的内容)的按照固定大小的分块(如:2M)从头到尾依次下载到整机DDR中;
2)通过标准的CRC校验和算法计算本次下载文件数据的CRC校验信息;
3)再依次汇总各块的CRC计算值,得到整个有效升级文件的实际的CRC的数据值;
4)同扩展区中在指定位置放置的升级文件全校验信息(CRC_All_value)进行比较;如果正确,这时启动进入正常升级流程;如果数据不一致,则退出升级引导,进入正常启动开机。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

Claims (3)

1.一种基于Android系统的软件升级校验方法,其特征在于包括如下步骤:
步骤1、在升级文件最后的部分打包一个升级文件扩展区,扩展区包含固件标识代码MagicString、扩展区校验信息CRC_Padd_value、升级文件全校验信息CRC_All_value;所述固件标识代码MagicString为根据整机技术方案平台的特征信息生成的一个固件标识流信息,用于表征升级软件匹配标志这部分信息;所述升级文件全校验CRC_All_value为对编译后的升级文件的内容以标准的CRC校验和算法生成对应的全校验CRC信息,用于表征升级软件内容正确性的信息;所述扩展区校验CRC_Padd_value为对文件扩展区内容以标准的CRC校验和算法生成对应的扩展区校验CRC信息,用于表征扩展区内容的正确性的信息;
步骤2、在系统引导程序中,读出升级文件的扩展区中的全部内容,通过标准的CRC校验和算法计算出扩展区数据的实际校验信息并同扩展区校验信息CRC_Padd_value的数据比较,如数据一致,进入下步骤检查;如果数据不一致,进入正常启动开机;
步骤3、在系统引导程序中,读出升级文件的扩展区中的固件标识代码MagicString,并同引导程序代码中内置的标识代码数据比较;如果一致,进入下步骤检查;如果数据不一致,则退出升级引导,进入正常启动开机;
步骤4、在系统引导程序中,将有效的升级文件内容的数据依次按照共享内存块2M的大小下载并计算CRC校验结果,再依次汇总各块的CRC计算值,得到整个有效升级文件的实际的CRC的数据值,同扩展区中在指定位置放置的升级文件全校验信息CRC_All_value进行比较;如果正确,这时启动进入正常升级流程;如果数据不一致,则退出升级引导,进入正常启动开机,有效的升级文件内容指不包括扩展区的升级文件的内容。
2.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
步骤1中,升级文件扩展区的大小为16K。
3.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
步骤4中,共享内存块大小为2M。
CN201710676989.1A 2017-08-09 2017-08-09 基于Android系统的软件升级校验方法 Active CN107479924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710676989.1A CN107479924B (zh) 2017-08-09 2017-08-09 基于Android系统的软件升级校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710676989.1A CN107479924B (zh) 2017-08-09 2017-08-09 基于Android系统的软件升级校验方法

Publications (2)

Publication Number Publication Date
CN107479924A CN107479924A (zh) 2017-12-15
CN107479924B true CN107479924B (zh) 2020-07-28

Family

ID=60599291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710676989.1A Active CN107479924B (zh) 2017-08-09 2017-08-09 基于Android系统的软件升级校验方法

Country Status (1)

Country Link
CN (1) CN107479924B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109697081B (zh) * 2018-12-19 2021-04-13 广州小鹏汽车科技有限公司 固件安全升级方法、装置、车载系统和车辆
CN111240885A (zh) * 2019-12-28 2020-06-05 杭州拓深科技有限公司 一种嵌入式在线升级防错检测方法
CN111142954B (zh) * 2019-12-30 2023-06-23 Oppo(重庆)智能科技有限公司 一种开机控制方法、装置及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419713A (zh) * 2011-12-31 2012-04-18 四川长虹电器股份有限公司 基于nandflash的机顶盒的软件升级方法
CN104021011A (zh) * 2014-05-09 2014-09-03 苏州汇川技术有限公司 嵌入式设备程序升级系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419713A (zh) * 2011-12-31 2012-04-18 四川长虹电器股份有限公司 基于nandflash的机顶盒的软件升级方法
CN104021011A (zh) * 2014-05-09 2014-09-03 苏州汇川技术有限公司 嵌入式设备程序升级系统及方法

Also Published As

Publication number Publication date
CN107479924A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN110134415A (zh) 一种控制器及其软件升级方法和装置
CN109189405B (zh) 一种验证程序Flash数据一致性的方法及系统
CN107479924B (zh) 基于Android系统的软件升级校验方法
CN103473088B (zh) 一种单片机在线升级方法和系统
CN106843942B (zh) 穿戴式设备的固件升级方法及穿戴式设备
CN108089876B (zh) 一种星载dsp软件在轨更新方法
CN105893090B (zh) 一种嵌入式系统bootrom和应用程序升级方法
US6842858B2 (en) Mechanism for updating firmware of an electronic device
CN111045713A (zh) 一种计算机系统的升级方法、系统及装置
CN104850427B (zh) 一种代码升级方法及装置
CN106155734B (zh) 一种软件版本的下载方法及装置
CN102163155A (zh) 存储设备的升级方法及升级控制装置
CN108182078B (zh) 一种优化的弹载设备不拆弹软件在线升级方法
CN104133743B (zh) 一种将文件烧录到emmc芯片的方法及装置
CN113467813A (zh) 一种控制器在线升级方法、装置、电子设备及存储介质
CN108255510B (zh) 一种基于iap在线升级待升级固件传输校验设计方法
CN112286565B (zh) 一种基于存储容器的嵌入式系统差分升级方法
CN107729043B (zh) 增量升级包的校验方法、装置和计算机可读存储介质
CN116755735A (zh) 嵌入式软件在线升级方法、装置、腹膜透析仪、存储介质
CN115543375A (zh) 逆变器固件升级方法、系统及存储介质
CN102722380A (zh) 移动通信终端的升级方法
CN114237654A (zh) 一种ota升级方法及系统
CN113010195B (zh) 一种系统升级方法、存储介质及终端设备
CN115827012A (zh) 充电桩子部件软件升级方法、装置、介质和充电桩
CN114691174A (zh) 一种车载软件升级方法、装置及设备

Legal Events

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