一种机顶盒的升级方法及系统与流程

文档序号:13011296阅读:1158来源:国知局
一种机顶盒的升级方法及系统与流程

本发明涉及数据处理技术领域,特别涉及一种机顶盒的升级方法及系统。



背景技术:

随着数字电视的普及,机顶盒进入了千家万户,成为人们日常生活中必不可少的数字电视接收终端。其中,机顶盒为一种可以增强或扩展电视机功能的信息设备。随着人们对机顶盒业务需求的不断增加,同时对机顶盒内软件bug修复的迫切需要,机顶盒升级功能也变得越来越重要。

目前,现有通用linux机顶盒软件系统的升级方法为:将升级文件打包下发,机顶盒的升级模块(loader)下载升级数据校验,并按照loader中既定的升级逻辑安装,比如将升级文件的某些升级数据写到系统的某个分区。

然而,这样的升级方式中,升级模块自身可能也需要升级,为了保证升级模块自身升级在突然断电的过程中不会因擦写flash过程断电导致升级模块无法再次启动的情况,一般需要额外备份一个升级模块,这样会占用更多宝贵的存储空间。



技术实现要素:

本发明提供一种机顶盒的升级方法及系统,能够节省机顶盒内的存储空间。

为实现上述目的,本申请一方面提供一种机顶盒的升级方法,所述方法包括:

下载器下载并解压缩升级数据包,所述升级数据包中包括安装器、安装脚本以及经过数字签名的升级文件;

所述下载器对所述升级数据包进行数字签名校验,在通过校验后,调用解压缩得到的安装器;

所述安装器执行解压缩得到的安装脚本,以根据所述安装脚本中的描述内容,对所述升级文件执行升级操作,并将执行结果反馈给所述下载器;

当所述执行结果表征升级成功时,所述下载器清除升级标识,并将所述升级数据包以及解压缩得到的数据清除。

进一步地,所述升级数据包按照下述方式生成:

分别计算安装器、安装脚本以及升级文件的哈希值;

生成一对公私密钥,其中,私钥用于对各个所述哈希值进行数字签名,公钥在所述机顶盒生成时预置于所述机顶盒内的下载器模块中;

将经过数字签名的升级文件、安装器以及安装脚本进行压缩打包,生成升级数据包。

进一步地,所述升级数据包中的各个文件经过下述处理:

获取待打包目录的文件列表,所述待打包目录包括用于存放签名文件的第一文件夹、用于存放安装器和安装脚本的第二文件夹以及用于存放升级数据的第三文件夹;

创建签名文件,所述签名文件中包括初始信息,所述初始信息包括所述签名文件的创建时间;

分别对所述第一文件夹、第二文件夹以及第三文件夹中的数据进行数字签名,并将各个数字签名值存放于对应的签名文件中;

将完成数字签名后的三个文件夹中的数据进行压缩,以生成升级数据包。

进一步地,在解压缩升级数据包之后,所述方法还包括:

接收指定解压算法反馈的解压标识,当所述解压标识表征解压成功时,所述下载器读取预置到所述机顶盒中的公钥;

相应地,对所述升级数据包进行数字签名校验包括:

读取所述第一文件夹中的签名文件,并基于所述签名文件中各个数据对应的数字签名值,对各个数据进行数字签名校验。

进一步地,当所述执行结果表征升级失败时,所述方法还包括:

接收升级过程中反馈的错误码,并向技术人员展示所述错误码。

为实现上述目的,本申请另一方面还提供一种机顶盒的升级系统,所述系统包括下载器以及安装器,其中:

所述下载器,用于下载并解压缩升级数据包,所述升级数据包中包括安装器、安装脚本以及经过数字签名的升级文件;对所述升级数据包进行数字签名校验,在通过校验后,调用解压缩得到的安装器;

所述安装器,用于执行解压缩得到的安装脚本,以根据所述安装脚本中的描述内容,对所述升级文件执行升级操作,并将执行结果反馈给所述下载器;

其中,当所述执行结果表征升级成功时,所述下载器清除升级标识,并将所述升级数据包以及解压缩得到的数据清除。

进一步地,所述系统还包括升级数据包制作模块,所述升级数据包制作模块用于分别计算安装器、安装脚本以及升级文件的哈希值;生成一对公私密钥,其中,私钥用于对各个所述哈希值进行数字签名,公钥在所述机顶盒生成时预置于所述机顶盒内的下载器模块中;将经过数字签名的升级文件、安装器以及安装脚本进行压缩打包,生成升级数据包。

进一步地,所述系统还包括:

文件列表获取单元,用于获取待打包目录的文件列表,所述待打包目录包括用于存放签名文件的第一文件夹、用于存放安装器和安装脚本的第二文件夹以及用于存放升级数据的第三文件夹;

签名文件创建单元,用于创建签名文件,所述签名文件中包括初始信息,所述初始信息包括所述签名文件的创建时间;

数字签名单元,用于分别对所述第一文件夹、第二文件夹以及第三文件夹中的数据进行数字签名,并将各个数字签名值存放于对应的签名文件中;

压缩打包单元,用于将完成数字签名后的三个文件夹中的数据进行压缩,以生成升级数据包。

进一步地,所述系统还包括:

解压标识接收单元,用于接收指定解压算法反馈的解压标识,当所述解压标识表征解压成功时,所述下载器读取预置到所述机顶盒中的公钥;

校验单元,用于读取所述第一文件夹中的签名文件,并基于所述签名文件中各个数据对应的数字签名值,对各个数据进行数字签名校验。

进一步地,所述下载器还用于接收升级过程中反馈的错误码,并向技术人员展示所述错误码。

由上可见,本申请中在进行升级时,将下载器和安装器分开,并且安装器随着升级数据包下载至机顶盒中,从而能够保证安装器能够正常地对升级数据包中的升级文件进行更新。进一步地,在升级成功后,可以将下载的升级数据包以及解压的数据均清除,从而节省了机顶盒中的存储空间。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中机顶盒的升级方法流程图;

图2为本发明实施例中机顶盒的升级系统示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

请参阅图1,本申请提供一种机顶盒的升级方法,所述方法包括:

s1:下载器下载并解压缩升级数据包,所述升级数据包中包括安装器、安装脚本以及经过数字签名的升级文件;

s2:所述下载器对所述升级数据包进行数字签名校验,在通过校验后,调用解压缩得到的安装器;

s3:所述安装器执行解压缩得到的安装脚本,以根据所述安装脚本中的描述内容,对所述升级文件执行升级操作,并将执行结果反馈给所述下载器;

s4:当所述执行结果表征升级成功时,所述下载器清除升级标识,并将所述升级数据包以及解压缩得到的数据清除。

在本实施方式中,所述升级数据包按照下述方式生成:

分别计算安装器、安装脚本以及升级文件的哈希值;

生成一对公私密钥,其中,私钥用于对各个所述哈希值进行数字签名,公钥在所述机顶盒生成时预置于所述机顶盒内的下载器模块中;

将经过数字签名的升级文件、安装器以及安装脚本进行压缩打包,生成升级数据包。

在本实施方式中,所述升级数据包中的各个文件经过下述处理:

获取待打包目录的文件列表,所述待打包目录包括用于存放签名文件的第一文件夹、用于存放安装器和安装脚本的第二文件夹以及用于存放升级数据的第三文件夹;

创建签名文件,所述签名文件中包括初始信息,所述初始信息包括所述签名文件的创建时间;

分别对所述第一文件夹、第二文件夹以及第三文件夹中的数据进行数字签名,并将各个数字签名值存放于对应的签名文件中;

将完成数字签名后的三个文件夹中的数据进行压缩,以生成升级数据包。

在本实施方式中,在解压缩升级数据包之后,所述方法还包括:

接收指定解压算法反馈的解压标识,当所述解压标识表征解压成功时,所述下载器读取预置到所述机顶盒中的公钥;

相应地,对所述升级数据包进行数字签名校验包括:

读取所述第一文件夹中的签名文件,并基于所述签名文件中各个数据对应的数字签名值,对各个数据进行数字签名校验。

在本实施方式中,当所述执行结果表征升级失败时,所述方法还包括:

接收升级过程中反馈的错误码,并向技术人员展示所述错误码。

在实际应用场景中,为了解决现有linux系统机顶盒升级方法中,当升级模块需要同时进行升级时,先要对升级模块进行升级,再升级系统软件,最终影响软件系统升级效率的问题以及升级业务功能在升级模块中预设定比较死板,不利于升级业务的灵活设计等问题,本发明实施例提供一种机顶盒升级方法及系统,以实现对机顶盒软件系统更加灵活方便的升级。需要说明的是,本发明实施例提供的软件系统升级方法可以适用于linux系统机顶盒。升级方法可以包括以下步骤:

s101:将安装器、安装脚本和升级文件进行签名打包;

需要说明的是,为了保证数据的完整性,工具计算每个文件的sha-1值,并可以根据需要随机产生一对rsa秘钥,使用rsa私钥对其sha-1值进行加密,为了节约网络带宽,使用zlib压缩算法,对文件进行打包压缩。

s102:下载器下载升级数据,并对升级文件进行解压;

下载器使用zlib对升级包进行解压缩,对升级包进行初步性的完整性校验。

s103:下载器解压升级包,并对文件进行数字签名,保证文件没有被修改。

升级包制作工具会随机生成一对rsa公私秘钥,私钥用来对升级包文件进行数字签名,机顶盒生产环节,公钥通过串口预置到flash的某个参数区域,下载器解压完升级包后,利用此rsa公钥,对升级数据包中的文件进行数字签名校验,以保证文件未被篡改。

s104:下载器对文件数字签名校验通过后,调用解压出来的安装器;

下载器为机顶盒内升级模块程序,确认文件完整后,会通过系统调用把执行权交给安装器,由安装器来进行后续安装。

s105:安装器解释执行安装脚本,对升级文件进行安装操作;

安装器和下载器都是具有特定功能的linux系统下的elf程序,只是各有侧重点,下载器主要是负责根据参数区传递的参数从网络或cable线下载升级数据并对升级文件进行解压和数字签名校验,安装器封装了一些升级功能接口,如挂载功能,flash读擦写,ui进度条百分比显示等,这些功能都是可以通过安装脚本的语句来调用的,此外它还提供接口让安装脚本通过调用.sh来引用外部程序来执行。

安装脚本是具有特定语法格式的脚本,他安排了升级的每一步操作动作,这些动作交由安装器来执行,它只负责发号施令。

s106:安装器按照安装脚本中的描述,对升级文件完成升级后,将安装返回结果反馈下载器,下载根据反馈结果,提示升级成功或者失败,然后根据结果决定是否清楚升级标志,最后进行重启动作。

本发明实施例通过下载器、安装器、安装脚本三者分开的做法,并且安装器和安装脚本随升级文件一同被下载到机顶盒。可见,本方案中,升级方式非常灵活,且对于升级业务的自身升级也是非常具有效率、和很高的可执行性。

下面结合具体的应用实例,对本发明实施例所提供的linux系统软件升级方法进行介绍。

在实际应用中,具体的打包方法可以包括:

s201:获取待打包目录文件列表,待打包目录分为三个文件夹:sign、updater、data,其中sign目录存放签名文件,updater目录存放安装器和安装脚本,data目录存放升级数据文件;

s202:创建一个签名文件仅写入一些头信息,如创建时间等,视需要可以从配置脚本中导入,为后面写入每个文件的签名信息做准备;

s203:根据获取到的目录文件列表,分别先后对updater目录下的安装器、安装脚本和data目录下的升级文件进行数字签名,数字签名使用的rsa私钥与预置到机顶盒内用于校验的公钥是一对密钥,数字签名是使用rsa私钥对文件的sha-1值进行加密,并按照目录+文件名与数字签名值一一对应的关系放在签名文件中。

s204:完成对文件的签名后将这三个目录,及目录下的所有文件使用zlib提供的压缩算法进行压缩,生成升级包文件,压缩的目的除了可以减小对网络带宽的占用,在解压的时候也能利用压缩算法本身存在的对文件完整性校验的机制,对文件的完整性做一个初步校验;

本发明的升级包打包工具模块可以很好的保证升级数据的安全性,并且更少的占用网络资源,节约带宽。

升级包已经制作完成,进一步的,播发下载部分本专利不做赘述,无论是通过传统的有线电视网络将升级包进一步打包成mepg标准的ts流格式,通过比对特定pid的表参数信息来确定版本是否有更新,进而通过cable线单向网络下载升级数据的方式,还是通过tcp/ip双向网络下载升级数据的方式,与本发明都是兼容的。此外,linux系统机顶盒的升级方法可以包括:

s301:使用zlib提供的解压算法解压升级包;

s302:通过返回值判断是否解压成功;

如果是,则执行步骤s303;如果否,则执行步骤s314;

s303:解压成功后下载器读取生产时候预置到flash某个分区的rsa公钥;

s304:读取sign目录下的签名文件,并根据签名文件的中的文件列表信息以及签名数据逐个对文件进行数字签名校验。

s305:数字签名校验成功?

如果是,则执行步骤s306;如果否,则执行步骤s314;

s306:在对文件校验都通过后下载器的动作暂时告一段落,接下来下载器通过系统调用,调用从安装包解压出来的安装器;

s307:安装器读取安装脚本。

安装器读取同级目录下的安装脚本。

s308:安装器解释执行安装脚本;

安装器各个功能接口抽象处理,由器内部的解释执行单元调用,安装脚本根据安装器提供的功能按照既定的语法规则,组织安装操作业务流程。

其功能接口大致分为以下几类,并且可以根据项目需求进行拓展和扩充:

文件操作接口,提供文件的删除、替换、解压等操作,比如可以将升级包里的一个压缩包解压到固定目录下等。

flash操作接口,提供对系统flash分区的读、擦、写接口。

osd显示操作接口,提供升级进度条显示控制,或升级信息显的操作接口。

分区格式化操作接口,提供对系统分区的格式化操作接口,可以将系统分区格式化成各种已经支持的文件系统格式,如ubi、ext4,cramfs等,也可以按照升级包内某一已经做好的系统分区文件进行格式化操作。

挂载操作接口,提供分区或外设的挂载操作接口。

系统调用接口,最为灵活的接口,通过该接口调用sh执行其他系统中已经存在的其他工具,如“systemcall(“/bin/sh”,“/bin/chmod”,“777”,“/cache/test”);”,通过这条语句就可以实现将系统中/cache下面的test文件权限修改成为对所有用户都具有可读可写可执行的权限。

安装器的功能是可以不断拓展升级的,脚本中的语句也是可以拓展升级的,只要保证升级包中安装脚本的语句是安装器支持的,是能被安装器解释执行的。

s309:安装器按照安装脚本中的指令对升级文件操作完成后,将执行的结果返回给下载器。

s310:下载器根据安装器返回的安装结果去判断安装过程是否成功,如果安装成功,执行步骤s311,如果升级过程出现异常,执行步骤s314,并同时返回错误码。

s311:提示升级成功,并继续执行s312;

s312:清除升级标志,以免再次进入升级模块,同时清空升级包和解压出来的文件。

s313:重启,完成本次升级。

s314:提升升级失败,同时显示前面步骤返回的错误码,以便技术人员确定升级失败原因。

本发明实施下载器、安装器、安装脚本三个模块独立分开,并且安装器和安装脚本是随升级文件下载到机顶盒的。可见,本方案中,在保证安全可靠的前提下,本方案实现了一种更加灵活更方便布局升级业务逻辑其利于升级模块自身升级的升级方法。

相应于上面的方法实施例,本发明实施例还提供一种软件系统升级装置,该装置可以包括以下模块:

升级包制作工具模块,包含rsa非对称加密单元、sha-1哈希算法单元、zlib压缩单元,用于对安装器、安装脚本、升级文件进行数字签名打包操作。

下载器模块,是一个独立于机顶盒系统之外的子系统,外部有裁剪的kernel单元和busybox制作的文件系统单元,其本身是一个linux程序,内部含有tuner单元、demux单元、osd单元、网络单元、zlib解压单元、sha-1哈希值计算单元、rsa解密单元,如果支持手动下载的话还包含前面板/遥控器单元。

安装器模块,主要含有解释单元、执行单元和功能接口单元,其中功能接口单元又按照功能不同,可以分为文件操作接口单元、flash操作接口单元、osd显示操作接口单元、格式化接口单元、挂载接口单元、系统调用接口单元。这些功能单元可以根据业务需求进行拓展,安装器主要用来解释执行安装脚本中的升级操作步骤指令,完成安装核心操作。

安装脚本模块,是按照和安装器解释单元既定好的语法规则,调用已经被安装器支持的函数接口实现的脚本文件,是一行行可被安装器解释执行的函数接口和参数,如之前提到的“systemcall(“/bin/sh”,“/bin/chmod”,“777”,“/cache/test”);”,其中systemcall就是可被安装器识别的已经被支持的函数,大括号中的就是传递给其的参数。

请参阅图2,本申请还提供一种机顶盒的升级系统,所述系统包括下载器以及安装器,其中:

所述下载器100,用于下载并解压缩升级数据包,所述升级数据包中包括安装器、安装脚本以及经过数字签名的升级文件;对所述升级数据包进行数字签名校验,在通过校验后,调用解压缩得到的安装器;

所述安装器200,用于执行解压缩得到的安装脚本,以根据所述安装脚本中的描述内容,对所述升级文件执行升级操作,并将执行结果反馈给所述下载器;

其中,当所述执行结果表征升级成功时,所述下载器清除升级标识,并将所述升级数据包以及解压缩得到的数据清除。

在本实施方式中,所述系统还包括升级数据包制作模块,所述升级数据包制作模块用于分别计算安装器、安装脚本以及升级文件的哈希值;生成一对公私密钥,其中,私钥用于对各个所述哈希值进行数字签名,公钥在所述机顶盒生成时预置于所述机顶盒内的下载器模块中;将经过数字签名的升级文件、安装器以及安装脚本进行压缩打包,生成升级数据包。

在本实施方式中,所述系统还包括:

文件列表获取单元,用于获取待打包目录的文件列表,所述待打包目录包括用于存放签名文件的第一文件夹、用于存放安装器和安装脚本的第二文件夹以及用于存放升级数据的第三文件夹;

签名文件创建单元,用于创建签名文件,所述签名文件中包括初始信息,所述初始信息包括所述签名文件的创建时间;

数字签名单元,用于分别对所述第一文件夹、第二文件夹以及第三文件夹中的数据进行数字签名,并将各个数字签名值存放于对应的签名文件中;

压缩打包单元,用于将完成数字签名后的三个文件夹中的数据进行压缩,以生成升级数据包。

在本实施方式中,所述系统还包括:

解压标识接收单元,用于接收指定解压算法反馈的解压标识,当所述解压标识表征解压成功时,所述下载器读取预置到所述机顶盒中的公钥;

校验单元,用于读取所述第一文件夹中的签名文件,并基于所述签名文件中各个数据对应的数字签名值,对各个数据进行数字签名校验。

在本实施方式中,所述下载器还用于接收升级过程中反馈的错误码,并向技术人员展示所述错误码。

由上可见,本申请中在进行升级时,将下载器和安装器分开,并且安装器随着升级数据包下载至机顶盒中,从而能够保证安装器能够正常地对升级数据包中的升级文件进行更新。进一步地,在升级成功后,可以将下载的升级数据包以及解压的数据均清除,从而节省了机顶盒中的存储空间。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1