一种基于数字电视机顶盒软件的代码校验及版本存储方法

文档序号:6607506阅读:276来源:国知局
专利名称:一种基于数字电视机顶盒软件的代码校验及版本存储方法
一种基于数字电视机顶盒软件的代码校验及版本存储方法
技术领域
本发明涉及数字化终端嵌入式软件领域,具体是指一种基于数字电视机顶盒软件 的代码校验及版本存储方法。
背景技术
随着数字电视终端的发展,机顶盒新功能不断增加以及增值业务的推广,软件升 级成为机顶盒不可或缺的一项技术,而升级的安全就显得尤为的重要。数字电视机顶盒软件存储时一般分成若干分区保存,如果出现意外情况,只要有 其中一个分区出现错误,则机顶盒软件就会崩溃而无法工作。则在软件升级时保障和判断 软件的完整性的方法就具有其实际意义。

发明内容本发明所要解决的技术问题在于提供一种可以保障安全升级的基于数字电视机 顶盒软件的代码校验及版本存储方法。本发明采用以下技术方案解决上述技术问题一种基于数字电视机顶盒软件的代码校验及版本存储方法,包括如下步骤步骤一编译生成保存升级数据的app. bin文件;步骤二 KB manufacture, cfg 文^f牛以及 cpcb. cfg 文^f牛;其中 manufacturer, cfg 文件中指明了当前升级的版本信息,cpcb. Cfg文件指明了当前升级的指导信息以及升级的 数据块配置信息;步骤三在creatcpcb这个工具的目录下输入相应命令生成cpcb. bin文件;步骤四将app. bin文件与cpcb. cfg文件合并生成一个application, bin文件。所述步骤二中升级版本信息包括MANUFACTURE_IDENT 定义厂商编号,机顶盒厂商,区别不同机顶盒生产销售厂 商;HARDWARE_MODULE 定义硬件模块,硬件模块号;HARDWARE_VERSION 定义硬件版本,为8字节字段;S0FTWARE_M0DULE 定义软件模块、软件模块号;S0FTWARE_VERSI0N 定义软件版本,为8字节字段。所述步骤二中cpcb. cfg文件中升级的指导信息DownloadHeader_Data包括TRAN_DIRECTION:定义传输数据方向,0为上传,1为下载,其它值保留;PARTITI0N_C0UNT 定义升级数据块的个数;TRANS_TOTAL_SIZE 定义传输升级数据的总大小;N0R_CRC_PARTIT10N_C0UNT 定义非CRC校验的数据块的个数;C0MPRESS_FLAG 定义数据是否压缩的标志;ENCRYPT_FLAG 定义数据是否加密的标志;
ENCRYPT_KEY 定义数据加密的密钥;所述步骤二中cpcb. cfg文件中数据块配置信息Flash_Download_Configuration 主要定义所要升级的存储器件对应的内部结构;每一数据块配置信息定义3个参数Memory type 定义升级数据块类型,默认为0,其它值保留;Block start 定义升级数据块起始地址;Block size 定义升级数据块大小,描述升级数据块的数据长度;表示从升级数据 块起始地址开始,存在若干大小的升级数据。本发明的优点在于根据特定的数据组织管理,判断机顶盒内部软件代码部分是 否完整,若遭破坏loader能自动启动升级;下载时校验升级是否有效和为上载数据提供必 要的版本信息。本发明可以有效保障软件升级安全。

下面参照附图结合实施例对本发明作进一步的描述。图1是本发明流程示意图。
具体实施方式请参阅图1所示,一种基于数字电视机顶盒软件的代码校验及版本存储方法,包 括如下步骤步骤Sl 编译生成保存升级数据的app. bin文件;步骤 S2 Kg manufacture, cfg 以及 cpcb· cfgi^ ;^ψ manufacturer, cfg 文件中指明了当前升级的版本信息,cpcb. Cfg文件指明了当前升级的指导信息以及升级的 数据块配置信息;步骤S3 在creatcpcb这个工具的目录下输入相应命令生成cpcb. bin文件;步骤S4 将app. bin文件与cpcb. cfg文件合并生成一个application, bin文件。使用Creatcpcb这个工具主要是为了生成一个Ik大小的信息块(CPCB)。这个信 息块主要包括两个部分当前flash app的版本信息以及app中所有partition的crc校验值。flash app 的版本信息,包括 Manufacture_Ident, hardware module, hardware version, software module, software version等。在下载时我们通过读取这部分信息来 判断当前升级是否有效。上载时,则读取这部分信息填入download header的相应字段。在版本信息之后是partition的CRC校验信息。把除loader之外(all)的 partition *艮据性质分成 non crc partition 禾口 crc partiton。其中 non crc partiton 包括除代码以外的那部分数据块,既data key logo default。而crc partition则为app 块。生成时,non crc partition的4字节的crc均为Oxff0而crc partiton的crc贝Ij是 对相应partition中数据的校验。每次开机时,校验crc partiton来判断flash中的代码部分是否完整,如果校验 失败,说明代码部分遭到破坏,loader会自动启动ota升级。使用creatcpcb这个工具需要两个配置文件一个配置版本信息的 manufacturer, cfg l^XM,一yIvECfeMItf flash partition 的 cpcb. cfg。
其中manufacturer, cfg中指明了当前升级的版本信息。而cpcb. cfg则指明了当 前升级的指导信息以及升级的数据块配置信息。通过cpcb. Cfg中的升级的数据块配置信 息我们可以从app. bin这个文件中获取相应的升级数据。而根据cpcb. cfg中的升级指导 信息我们对升级数据进行相应的处理(e.g.压缩,加密)。在manufacturer, cfg文件中配置当前升级文件的升级版本信息,升级版本信息 包括MANUFACTURE_IDENT 定义厂商编号,机顶盒厂商,区别不同机顶盒生产销售厂 商;HARDWARE_MODULE 定义硬件模块,硬件模块号;HARDWARE_VERSION 定义硬件版本,为8字节字段;S0FTWARE_M0DULE 定义软件模块、软件模块号;S0FTWARE_VERSI0N 定义软件版本,为8字节字段;在cpcb. cfg文件中配置当前升级文件的升级指导信息和升级数据的数据块配置 fn息ο升级的指导信息DownloadHeader_Data包括TRAN_DIRECTION:定义传输数据方向,0为上传,1为下载,其它值保留;PARTITI0N_C0UNT 定义升级数据块的个数;TRANS_TOTAL_SIZE 定义传输升级数据的总大小;N0R_CRC_PARTIT10N_C0UNT 定义非CRC校验的数据块的个数;C0MPRESS_FLAG 定义数据是否压缩的标志;ENCRYPT_FLAG 定义数据是否加密的标志;ENCRYPT_KEY:定义数据加密的密钥。数据块配置信息主要定义所要升级的存储器件对应的内部结构;每一数据块配置 信息定义3个参数Memory type 定义升级数据块类型,默认为0,其它值保留;Block start 定义升级数据块起始地址;Block size 定义升级数据块大小,描述升级数据块的数据长度;表示从升级数据 块起始地址开始,存在若干大小的升级数据。因为cpcb是对app进行校验,并且存放于app的最后lk。所以需要先生成一个合 适大小的app.bin。再由这个app. bin生成cpcb. bin,然后将两者合并。在creatcpcb这 yIvXJIliItJ Ιξ| ^T"A :creatcpcb manufacturer, cfg cpcb. cfgapp. bin JJllJ^Itf |ξ[ 录下即可生成cpcb. bin。文件的大小为1024。版本存储及代码校验数据组织结构如下 本发明的有益效果在于1、能够检测flash的代码部分是否完整,若遭破坏 loader能自动启动升级。2、下载时校验升级是否有效和为上载数据提供必要的版本信息。
权利要求
一种基于数字电视机顶盒软件的代码校验及版本存储方法,其特征在于包括如下步骤步骤一编译生成保存升级数据的app.bin文件;步骤二配置manufacture.cfg文件以及cpcb.cfg文件;其中manufacturer.cfg文件中指明了当前升级的版本信息,cpcb.cfg文件指明了当前升级的指导信息以及升级的数据块配置信息;步骤三在creatcpcb这个工具的目录下输入相应命令生成cpcb.bin文件;步骤四将app.bin文件与cpcb.cfg文件合并生成一个application.bin文件。
2.如权利要求1所述的一种基于数字电视机顶盒软件的代码校验及版本存储方法,其 特征在于所述步骤二中升级版本信息包括MANUFACTURE_IDENT 定义厂商编号,机顶盒厂商,区别不同机顶盒生产销售厂商;HARDWARE_MODULE 定义硬件模块,硬件模块号;HARDWARE_VERSION 定义硬件版本,为8字节字段;S0FTWARE_M0DULE 定义软件模块、软件模块号;S0FTWARE_VERSI0N 定义软件版本,为8字节字段。
3.如权利要求1所述的一种基于数字电视机顶盒软件的代码校验及版本存储方法,其 特征在于所述步骤二中cpcb. Cfg文件中升级的指导信息D0wnl0adHeader_Data包括TRAN_DIRECTION:定义传输数据方向,0为上传,1为下载,其它值保留;PARTITI0N_C0UNT 定义升级数据块的个数;TRANS_TOTAL_SIZE 定义传输升级数据的总大小;N0R_CRC_PARTIT10N_C0UNT 定义非CRC校验的数据块的个数;C0MPRESS_FLAG 定义数据是否压缩的标志;ENCRYPT_FLAG 定义数据是否加密的标志;ENCRYPT_KEY 定义数据加密的密钥;所述步骤二中cpcb. cfg文件中数据块配置信息Flash_Download_Configuration主要 定义所要升级的存储器件对应的内部结构;每一数据块配置信息定义3个参数 Memory type 定义升级数据块类型,默认为0,其它值保留; Block start 定义升级数据块起始地址;Block size 定义升级数据块大小,描述升级数据块的数据长度;表示从升级数据块起 始地址开始,存在若干大小的升级数据。
全文摘要
一种基于数字电视机顶盒软件的代码校验及版本存储方法,包括如下步骤编译生成保存升级数据的app.bin文件;配置manufacture.cfg文件以及cpcb.cfg文件;其中manufacturer.cfg文件中指明了当前升级的版本信息,cpcb.cfg文件指明了当前升级的指导信息以及升级的数据块配置信息;在creatcpcb这个工具的目录下输入相应命令生成cpcb.bin文件;将app.bin文件与cpcb.cfg文件合并生成一个application.bin文件。本发明根据特定的数据组织管理,判断机顶盒内部软件代码部分是否完整,若遭破坏loader能自动启动升级;下载时校验升级是否有效和为上载数据提供必要的版本信息。本发明可以有效保障软件升级安全。
文档编号G06F9/445GK101923478SQ201010250128
公开日2010年12月22日 申请日期2010年8月11日 优先权日2010年8月11日
发明者郭鑫俊 申请人:福建新大陆通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1