CN107479924A - 基于Android系统的软件升级校验方法 - Google Patents
基于Android系统的软件升级校验方法 Download PDFInfo
- Publication number
- CN107479924A CN107479924A CN201710676989.1A CN201710676989A CN107479924A CN 107479924 A CN107479924 A CN 107479924A CN 201710676989 A CN201710676989 A CN 201710676989A CN 107479924 A CN107479924 A CN 107479924A
- Authority
- CN
- China
- Prior art keywords
- upgrade file
- expansion area
- crc
- data
- information
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management 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/458—Scheduling 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/4586—Content 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智能电视市场整体平稳增长和软件功能的更新迭代,为处理售后维护和功能更新采用本地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 (7)
1.一种基于Android系统的软件升级校验方法,其特征在于包括如下步骤:
步骤1、在升级文件最后的部分打包一个升级文件扩展区,扩展区包含固件标识代码MagicString、扩展区校验信息CRC_Padd_value、升级文件全校验信息CRC_All_value;
步骤2、在系统引导程序中,读出升级文件的扩展区中的全部内容,通过标准的CRC校验和算法计算出扩展区数据的实际校验信息并同扩展区校验信息CRC_Padd_value的数据比较,如数据一致,进入下步骤检查;如果数据不一致,进入正常启动开机;
步骤3、在系统引导程序中,读出升级文件的扩展区中的固件标识代码MagicString,并同引导程序代码中内置的标识代码数据比较;如果一致,进入下步骤检查;如果数据不一致,则退出升级引导,进入正常启动开机;
步骤4、在系统引导程序中,将有效的升级文件内容的数据依次按照共享内存块2M的大小下载并计算CRC校验结果,再依次汇总各块的CRC计算值,得到整个有效升级文件的实际的CRC的数据值,同扩展区中在指定位置放置的升级文件全校验信息CRC_All_value进行比较;如果正确,这时启动进入正常升级流程;如果数据不一致,则退出升级引导,进入正常启动开机。
2.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
步骤1中,升级文件扩展区的大小为16K。
3.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
所述固件标识代码MagicString为根据整机技术方案平台的特征信息生成的一个固件标识流信息,用于表征升级软件匹配标志这部分信息。
4.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
所述升级文件全校验CRC_All_value为对编译后的升级文件的内容以标准的CRC校验和算法生成对应的全校验CRC信息,用于表征升级软件内容正确性的信息。
5.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
所述扩展区校验CRC_Padd_value为对文件扩展区内容以标准的CRC校验和算法生成对应的扩展区校验CRC信息,用于表征扩展区内容的正确性的信息。
6.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
步骤4中,有效的升级文件内容指不包括扩展区的升级文件的内容。
7.根据权利要求1所述基于Android系统的软件升级校验方法,其特征在于:
步骤4中,共享内存块大小为2M。
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 true CN107479924A (zh) | 2017-12-15 |
CN107479924B 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697081A (zh) * | 2018-12-19 | 2019-04-30 | 广州小鹏汽车科技有限公司 | 固件安全升级方法、装置、车载系统和车辆 |
CN111142954A (zh) * | 2019-12-30 | 2020-05-12 | Oppo(重庆)智能科技有限公司 | 一种开机控制方法、装置及计算机可读存储介质 |
CN111240885A (zh) * | 2019-12-28 | 2020-06-05 | 杭州拓深科技有限公司 | 一种嵌入式在线升级防错检测方法 |
Citations (2)
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 | 苏州汇川技术有限公司 | 嵌入式设备程序升级系统及方法 |
-
2017
- 2017-08-09 CN CN201710676989.1A patent/CN107479924B/zh active Active
Patent Citations (2)
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 | 苏州汇川技术有限公司 | 嵌入式设备程序升级系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697081A (zh) * | 2018-12-19 | 2019-04-30 | 广州小鹏汽车科技有限公司 | 固件安全升级方法、装置、车载系统和车辆 |
CN111240885A (zh) * | 2019-12-28 | 2020-06-05 | 杭州拓深科技有限公司 | 一种嵌入式在线升级防错检测方法 |
CN111142954A (zh) * | 2019-12-30 | 2020-05-12 | Oppo(重庆)智能科技有限公司 | 一种开机控制方法、装置及计算机可读存储介质 |
CN111142954B (zh) * | 2019-12-30 | 2023-06-23 | Oppo(重庆)智能科技有限公司 | 一种开机控制方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107479924B (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189405B (zh) | 一种验证程序Flash数据一致性的方法及系统 | |
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
CN105893090B (zh) | 一种嵌入式系统bootrom和应用程序升级方法 | |
CN107479924A (zh) | 基于Android系统的软件升级校验方法 | |
CN110032377B (zh) | 通信模块软件升级方法、系统及通信模块 | |
CN109902005A (zh) | 一种自动化测试的方法和系统 | |
CN105677409B (zh) | 一种系统升级方法及装置 | |
CN107977222A (zh) | 适用于eMMC的升级文件的转换、生成方法及装置 | |
CN103425932B (zh) | 签名校验方法和终端设备 | |
CN102799494B (zh) | 一种校验内存中应用程序的方法和装置 | |
CN111459496B (zh) | 一种防篡改的程序文件的生成方法、设备的升级方法 | |
CN113157282B (zh) | 一种烧录镜像文件生成方法 | |
CN102572591B (zh) | 一种高级安全数字电视机顶盒生产方法及装置 | |
CN111966369B (zh) | 一种nand存储器离线烧录镜像制作及验证方法 | |
CN113741934A (zh) | 一种逆变器程序升级方法 | |
CN107368383B (zh) | 一种汽车控制器配置文件校验方法及设备 | |
US6539338B1 (en) | Self-diagnostic testing of a network interface adapter | |
CN116755735A (zh) | 嵌入式软件在线升级方法、装置、腹膜透析仪、存储介质 | |
CN116719729A (zh) | 通用验证平台、通用验证方法、介质及电子设备 | |
CN105301480A (zh) | Soc芯片的测试方法 | |
US11397662B2 (en) | Method for debugging computer program, device employing method, and storage medium | |
CN102722380A (zh) | 移动通信终端的升级方法 | |
CN104657184A (zh) | 一种文件对应多嵌入式设备的升级方法 | |
CN115309426A (zh) | 系统升级方法、装置、计算机设备及计算机可读存储介质 | |
CN113672260B (zh) | 一种处理器cpu初始化方法 |
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 |