软件升级方法、装置及设备
技术领域
本发明实施例涉及通信技术,尤其涉及一种软件升级方法、装置及设备。
背景技术
随着数字电视业务和技术的发展,需要对数字电视终端的软件进行升级更新,以解决数字电视终端的缺陷,或是增加新的业务功能。
目前的数字电视终端软件升级主要可以分为两类:维护升级和在线升级。其中,在线升级主要通过前端服务器下发软件升级消息和软件数据,给全部或部分数字电视终端进行统一升级。一般情况下,当数字电视终端检测到软件升级消息时,会提醒用户,由用户确定是否对软件进行升级。也因此,用户在遇到数字电视终端升级时,希望了解更多关于升级软件的描述信息。
在现有技术中,服务器将升级软件描述信息与程序资源共同编译,作为升级软件镜像;然后,采用数字存储媒体命令与控制(Digital Storage Media-Command andControl,简称:DSM-CC),将升级软件镜像封装为传输流(Transport Stream,简称:TS)包,并下发给数字电视终端;而数字电视终端在接收所有TS包之后,将其还原成原始的升级软件镜像,并对该升级软件镜像进行完整性检验;若校验通过,则数字电视终端提取升级软件镜像中的升级软件描述信息,显示给用户。其中,现有技术的TS包格式及各部分所包含信息如图1所示,斜线部分为升级软件描述信息所在位置。
但采用现有技术进行软件在线升级的方法,使得用户等待升级软件描述信息的时间较长,影响用户体验。
发明内容
本发明提供一种软件升级方法、装置及设备,以实现在数字电视终端中软件升级过程中,快速将升级软件描述信息显示给用户。
第一方面,本发明提供一种软件升级方法,应用于数字电视终端中软件升级,所述方法包括:
根据升级通知消息中携带的升级数据流的位置信息,获取所述升级数据流中的下载服务器指示DSI表,所述DSI表中携带升级软件描述信息;
若根据所述升级软件描述信息,确定对本地软件进行升级,则显示所述升级软件描述信息及升级提示信息给用户;
在所述用户确定对软件升级之后,获取所述升级数据流中的升级软件镜像,并根据所述升级软件镜像更新所述本地软件。
在第一方面的第一种可能的实现方式中,所述根据升级通知消息中携带的升级数据流的位置信息,获取所述升级数据流中的DSI表,包括:
根据所述升级通知消息中携带的所述升级数据流的位置信息,获取所述升级数据流中的传输流包;
还原所述传输流包,获得数据段部分包含的所述DSI表。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述还原所述传输流包,获得数据段部分包含的所述DSI表,包括:
还原所述传输流包,获得所述数据段部分;
通过所述数据段部分中的表标识table_id和DSI信息标识message_id,找到所述DSI表。
根据第一方面、第一方面的第一种至第二种可能的实现方式中的任意一种,在第一方面的第三种可能的实现方式中,所述若根据所述升级软件描述信息,确定对本地软件进行升级,则显示所述升级软件描述信息及升级提示信息给用户,包括:
将所述升级软件描述信息和本机的版本信息进行比较,判断是否对所述本地软件进行升级;
若是,则显示所述升级软件描述信息及所述升级提示信息给用户。
根据第一方面、第一方面的第一种至第三种可能的实现方式中的任意一种,在第一方面的第四种可能的实现方式中,所述在所述用户确定对软件升级之后,获取所述升级数据流中的升级软件镜像,并根据所述升级软件镜像更新所述本地软件,包括:
在所述用户确定对软件升级之后,获取所述升级数据流中的下载信息指示DII及下载数据块DBB;
根据所述DBB,获得所述升级软件镜像,并对所述升级软件镜像进行完整性校验;
利用通过完整性校验的升级软件镜像更新所述本地软件。
第二方面,本发明提供一种软件升级方法,应用于数字电视终端中软件升级,所述方法包括:
将升级软件描述信息添加到数字存储媒体命令与控制DSM-CC的下载服务器指示DSI表中;
根据所述DSI表和升级软件对应的升级软件镜像,获得升级数据流;
发送升级通知消息到数字电视终端,所述升级通知消息中携带所述升级数据流的位置信息,以使所述数字电视终端根据所述升级通知消息确定是否下载所述升级数据流以升级本地软件。
在第二方面的第一种可能的实现方式中,所述将升级软件描述信息添加到DSM-CC的DSI表中,包括:
将所述升级软件描述信息添加到所述DSI表的私有字段。
根据第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述根据所述DSI表和升级软件对应的升级软件镜像,获得升级数据流,包括:
采用所述DSM-CC封装所述升级软件镜像;
将封装后的升级软件镜像及所述DSI表加载到数据段部分,获得所述升级数据流,所述升级数据流包括至少一个传输流包。
第三方面,本发明提供一种软件升级装置,应用于数字电视终端中软件升级,所述装置包括:
获取模块,用于根据升级通知消息中携带的升级数据流的位置信息,获取所述升级数据流中的下载服务器指示DSI表,所述DSI表中携带升级软件描述信息;
确定模块,用于若根据所述获取模块获取的所述升级软件描述信息,确定对本地软件进行升级,则触发显示模块;
所述显示模块,用于显示所述升级软件描述信息及升级提示信息给用户;
升级模块,用于在所述用户根据所述显示模块的显示,确定对软件升级之后,获取所述升级数据流中的升级软件镜像,并根据所述升级软件镜像更新所述本地软件。
在第三方面的第一种可能的实现方式中,所述获取模块包括:
传输流包获取单元,用于根据所述升级通知消息中携带的所述升级数据流的位置信息,获取所述升级数据流中的传输流包;
DSI表获取单元,用于还原所述传输流包获取单元获取的所述传输流包,获得数据段部分包含的所述DSI表。
根据第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述DSI表获取单元具体用于:
还原所述传输流包,获得所述数据段部分;
通过所述数据段部分中的表标识table_id和DSI信息标识message_id,找到所述DSI表。
根据第三方面、第三方面的第一种至第二种可能的实现方式中的任意一种,在第三方面的第三种可能的实现方式中,所述确定模块具体用于:
将所述升级软件描述信息和本机的版本信息进行比较,判断是否对所述本地软件进行升级;
若是,则触发所述显示模块显示所述升级软件描述信息及所述升级提示信息给用户。
根据第三方面、第三方面的第一种至第三种可能的实现方式中的任意一种,在第三方面的第四种可能的实现方式中,所述升级模块具体用于:
在所述用户根据所述显示模块的显示确定对软件升级之后,获取所述升级数据流中的下载信息指示DII及下载数据块DBB;
根据所述DBB,获得所述升级软件镜像,并对所述升级软件镜像进行完整性校验;
利用通过完整性校验的升级软件镜像更新所述本地软件。
第四方面,本发明提供一种软件升级装置,应用于数字电视终端中软件升级,所述装置包括:
信息添加模块,用于将升级软件描述信息添加到数字存储媒体命令与控制DSM-CC的下载服务器指示DSI表中;
升级数据流获取模块,用于根据所述信息添加模块获得的所述DSI表和升级软件对应的升级软件镜像,获得升级数据流;
发送模块,用于发送升级通知消息到数字电视终端,所述升级通知消息中携带所述升级数据流获取模块获取的所述升级数据流的位置信息,以使所述数字电视终端根据所述升级通知消息确定是否下载所述升级数据流以升级本地软件。
在第四方面的第一种可能的实现方式中,所述信息添加模块具体用于:
将所述升级软件描述信息添加到所述DSI表的私有字段。
根据第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述升级数据流获取模块具体用于:
采用所述DSM-CC封装所述升级软件镜像;
将封装后的升级软件镜像及所述DSI表加载到数据段部分,获得所述升级数据流,所述升级数据流包括至少一个传输流包。
第五方面,本发明提供一种数字电视终端,包括:
第一处理器,用于根据升级通知消息中携带的升级数据流的位置信息,获取所述升级数据流中的下载服务器指示DSI表,所述DSI表中携带升级软件描述信息;及,若根据所述升级软件描述信息,确定对本地软件进行升级,则触发显示器;
所述显示器,用于显示所述第一处理器获得的所述升级软件描述信息及升级提示信息给用户;
所述第一处理器还用于在所述用户根据所述显示器的显示确定对软件升级之后,获取所述升级数据流中的升级软件镜像,并根据所述升级软件镜像更新所述本地软件。
在第五方面的第一种可能的实现方式中,所述第一处理器具体用于:
根据所述升级通知消息中携带的所述升级数据流的位置信息,获取所述升级数据流中的传输流包;
还原所述传输流包,获得数据段部分包含的所述DSI表。
根据第五方面的第一种可能的实现方式,在第五方面的第二种可能的实现方式中,所述第一处理器进一步用于:
还原所述传输流包,获得所述数据段部分;
通过所述数据段部分中的表标识table_id和DSI信息标识message_id,找到所述DSI表。
根据第五方面、第五方面的第一种至第二种可能的实现方式中的任意一种,在第五方面的第三种可能的实现方式中,所述第一处理器还用于:
将所述升级软件描述信息和本机的版本信息进行比较,判断是否对所述本地软件进行升级;
若是,则触发所述显示器显示所述升级软件描述信息及所述升级提示信息给用户。
根据第五方面、第五方面的第一种至第三种可能的实现方式中的任意一种,在第五方面的第四种可能的实现方式中,所述第一处理器还用于:
在所述用户确定对软件升级之后,获取所述升级数据流中的下载信息指示DII及下载数据块DBB;
根据所述DBB,获得所述升级软件镜像,并对所述升级软件镜像进行完整性校验;
利用通过完整性校验的升级软件镜像更新所述本地软件。
第六方面,本发明通过一种服务器,所述服务器包括:
第二处理器,用于将升级软件描述信息添加到数字存储媒体命令与控制DSM-CC的下载服务器指示DSI表中;及,根据所述DSI表和升级软件对应的升级软件镜像,获得升级数据流;
发送器,用于发送升级通知消息到数字电视终端,所述升级通知消息中携带所述第二处理器获得的所述升级数据流的位置信息,以使所述数字电视终端根据所述升级通知消息确定是否下载所述升级数据流以升级本地软件。
在第六方面的第一种可能的实现方式中,所述第二处理器具体用于:
将所述升级软件描述信息添加到所述DSI表的私有字段。
根据第六方面或第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,所述第二处理器进一步用于:
采用所述DSM-CC封装所述升级软件镜像;
将封装后的升级软件镜像及所述DSI表加载到数据段部分,获得所述升级数据流,所述升级数据流包括至少一个传输流包。
本发明将升级软件的描述信息添加在DSI表中,实现升级软件描述信息与程序资源的独立封装,在程序资源对应的升级软件镜像下载前,将升级软件描述信息快速显示给用户,由用户确定是否进行本地软件的升级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术TS包格式示例图;
图2为本发明软件升级方法实施例一的流程图;
图3为本发明软件升级方法实施例二的流程图;
图4为本发明软件升级方法实施例二中TS包格式示例图;
图5为本发明软件升级方法实施例三的流程图;
图6为本发明软件升级装置实施例一的结构示意图;
图7为本发明软件升级装置实施例二的结构示意图;
图8为本发明数字电视终端实施例一的结构示意图;
图9为本发明服务器实施例一的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明软件升级方法实施例一的流程图。本发明实施例提供一种软件升级方法,应用于数字电视终端中软件升级。该方法可以由软件升级装置执行,该装置可以集成于数字电视终端中。其中,数字电视终端可以为遵守数字电视广播(Digital VideoBroadcasting,简称:DVB)协议的任意终端,例如,数字电视机顶盒和带数字电视功能的电视机。如图2所示,该方法包括:
S201、根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的下载服务器指示(Download_Server_Initiate,简称:DSI)表,该DSI表中携带升级软件描述信息。
具体地,监测节目专有信息(Program Special Information,简称:PSI)表或业务信息(Service Information,简称:SI)表中携带的升级通知消息。其中,升级通知信息可以存放在业务组关联表(Bouquet Association Table,简称:BAT)或者网络信息表(NetworkInformation Table,简称:NIT)中;而在DVB规范中,NIT属于PSI表或SI表,BAT属于SI表。当监测到升级通知消息时,根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的DSI表。其中,升级软件描述信息包含于DSI表的私有字段,升级软件描述信息可以包括产品描述信息、版本描述信息、软件更新内容描述信息和升级软件所需的时间,等等。
其中,上述位置信息可包括频点参数和包标识符(Packet Identifier,简称:PID)等。其中,DVB协议中为信息传输定义了固定的频段,例如,卫星电视的频段是950MHz~2150MHz。而升级数据流的传输只占用一个频点,这里的频点参数为升级数据流所占用频点的标识。DVB协议中频点参数可包括:频率,符号率,极化方式或调制方式等。
这里,升级软件描述信息可以为包含多语言的信息,即可以在描述升级软件信息时,携带对应的语言码,以给用户呈现不同语言显示。
TS流是由多种数据组合而成,包括至少一个TS包,各TS包中的数据可以是视频数据、音频数据、填充数据(例如字幕)或PSI/SI表数据等,而每一种数据类型对应唯一的PID,例如,视频数据的PID为45,那么在该TS流中的所有视频数据的PID都被标注为45,用于区别其他的数据类型。
S202、若根据升级软件描述信息,确定对本地软件进行升级,则显示升级软件描述信息及升级提示信息给用户。
具体地,将升级软件描述信息和本机的版本信息进行比较,判断是否对本地软件进行升级;若是,则显示升级软件描述信息及升级提示信息给用户;否则,结束流程。其中,升级提示信息用于提示用户即将进行软件升级;用户根据升级软件描述信息确定是否升级本地软件。
S203、在所述用户确定对软件升级之后,获取所述升级数据流中的升级软件镜像,并根据所述升级软件镜像更新所述本地软件。
该步骤中,用户根据上一步骤中所显示的升级软件描述信息,确定升级本地软件,则继续接收升级数据流的其余部分,否则结束升级流程,从而减少资源(例如,内存或高频头等)竞争;待接收整个升级数据流之后,使用还原后的升级软件镜像更新本地软件,其中,升级数据流包括升级软件镜像。
本发明实施例将升级软件的描述信息添加在DSI表中,实现软件描述信息与程序资源的独立封装,在程序资源对应的升级软件镜像下载前,将升级软件描述信息快速显示给用户,由用户确定是否进行本地软件的升级。
图3为本发明软件升级方法实施例二的流程图。本发明实施例提供一种软件升级方法,应用于数字电视终端中软件升级。该方法可以由软件升级装置执行,该装置可以集成于服务器中。如图3所示,该方法包括:
S301、将升级软件描述信息添加到DSM-CC的DSI表中。
S302、根据DSI表和升级软件对应的升级软件镜像,获得升级数据流。
S303、发送升级通知消息到数字电视终端,该升级通知消息中携带升级数据流的位置信息,以使数字电视终端根据该升级通知消息确定是否下载升级数据流以升级本地软件。
具体地,服务器触发数字电视终端中的软件升级。服务器将升级软件描述信息添加到DSM-CC的DSI表中的私有字段(User_define);使用DSM-CC封装升级程序资源对应的升级软件镜像,将该升级软件镜像划分为1个或多个模块(Module),每个模块再划分为至少一个块(Block),每个块封装成一个DDB,其中,下载信息指示(Download_Info_Indication,简称:DII)描述了块划分信息;将DSI表、DII和DDB加载到数据段部分(section),并打包成TS包进行传输,其中,TS包格式及其各部分所包含的信息如图4所示。对应地,数字电视终端接收升级数据流(即一个或多个TS包)时,先接收DSI表,再接收DII和DDB,因此,相比于现有实现中接收整个升级数据流之后,再显示升级软件描述信息的方式,本发明实施例提供的软件升级方法可以节省软件升级过程中用户等待升级软件描述信息的时间,为用户提供更好的产品体验。
本发明实施例将升级软件的描述信息添加在DSI表中,升级软件镜像封装为DDB,实现软件描述信息与程序资源的独立封装,在程序资源对应的升级软件镜像下载前,将升级软件描述信息快速显示给用户,由用户确定是否进行本地软件的升级。
以下以数字电视机顶盒为例,通过具体的实现方式说明本发明实施例提供的软件升级方法。
首先,介绍该实施例中将要用到的术语。
其中,在DVB协议对NIT的定义中分为两个循环:第一个循环是对全网络信息的描述;第二个循环是对该网络中某个频点信息的描述。在第一循环的Likage_descriptor中包含升级软件的位置信息,例如,原始网标识(Original_network_ID),传输流网标识(Transport_stream_ID),业务标识(Sevice_ID),以及升级软件的配置参数等。其中,升级软件的配置参数例如为:厂商标识(Organization unique identifier,简称:OUI)、硬件版本(Hardware_version)和软件版本(Software_verstion)等参数。在一个以传输流为数据源的网络上,在其上传输的NIT的原始网标识和传输流网标识的取值一样。
节目群丛表(Program Association Table,简称:PAT)中描述升级服务的节目号(Program_Num)和对应的PMT_PID,其中,节目映射表(Program Map Table,简称:PMT)中描述升级数据流组件的PID。
另需说明的是,在DVB协议中,Sevice_ID与Program_Num是相等的Program_Num与PMT_PID是一对多的关系。
图5为本发明软件升级方法实施例三的流程图。如图5所示,该实施例中,软件升级方法可以包括:
S501、通过PSI或SI监测升级通知消息,获取升级通知消息中携带的升级数据流的位置信息。
该实施例以升级通知消息存放在NIT为例进行说明。具体地,在S301中,机顶盒监测到NIT中的Linkage_descriptor之后,获取升级软件的配置参数;然后比较升级软件的配置参数与本地软件的配置参数,判断是否需要升级,例如,判断条件为升级软件对应的产品信息中的OUI与机顶盒是否一致(即产品唯一),还可以定义其他私有的比较信息,例如,产品型号,软件版本号大于机顶盒当前的软件版本号等;如果确定对本地软件升级,则通过Linkage_descriptor中的升级数据流的位置信息,例如Sevice_ID,找到与PAT中Program_Num对应的PMT_PID,然后找到PMT,并根据PMT获取升级数据流的PID。
S502、根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的传输流包。
该步骤中,根据升级数据流的PID,过滤升级数据流,获得TS包。
S503、还原传输流包,获得数据段部分包含的DSI表。
具体地,该步骤可以包括:还原传输流包,获得数据段部分(data_section);通过数据段部分中的表标识(table_id)和DSI信息标识(message_id),找到DSI表。举例说明,通过判断table_id=0x3B和message id=0x1006的data_section,获得装载有DSI表的数据段,解析出DSI表例如如表1所示。根据DSI表,可以获得升级数据流对应的版本信息和升级软件描述信息等。其中,表1用于说明本发明任一实施例提到的关键字段(例如,table_id和message_id)的含义和取值。
表1 DSI表示例
值得注意的是,DVB协议规定数字电视终端通过特定的table_id和message_id值来识别采用DSM-CC封装的TS包中的不同数据段。
S504、从DSI表中的自定义描述(user_define)域中,根据组标识(Group ID)解析对升级软件镜像对应的软件描述信息。
其中,一个DSI表可以包括多个组(Group),各个组之间通过Group ID进行区分
S505、根据升级软件描述信息,判断是否升级本地软件。
通过DSI表中的每个组(Group)的私有描述中的产品信息和软件模块信息判断是否进行升级;产品信息可以是软件版本号,还可以包括产品型号,因为现网可能存在不同型号的产品需要升级。
若判断结果为是,则执行S506;否则结束流程。
S506、显示升级提示信息和升级软件描述信息给用户。
S507、接收用户输入的用于指示是否升级本地软件的操作。
若用户选择升级本地软件,则执行S508;否则,结束流程。
S508、获取升级数据流中的DII及DBB。
具体地,通过DSI表中的Group ID与DII表中的下载标识(download_id)对应找到下载数据。其中,Group ID与download_id相等。
S509、根据DBB,获得升级软件镜像。
S510、检测该升级软件镜像是否通过完整性校验。
若该升级软件镜像通过完整性校验,则执行S511;否则,结束流程。
由于升级数据比较重要,因此,有些网络提供商要求对升级数据进行加密,因此,针对高级安全条件接收系统要求的升级,需进行专门的签名校验,出于安全考虑,该签名校验是针对整个升级软件镜像文件的。其中,高级安全条件接收系统一般是与第三方厂家进行合作对升级数据进行加密,例如,NDS、Nagra、Conax等。
S511、利用升级软件镜像更新本地软件。
通过本发明实施例提供的软件升级方法对数字电视终端中的本地软件进行升级,避免现有技术中须在所有升级数据下载完毕后才能读取升级软件描述信息的缺陷,使得可以在程序资源对应的升级软件镜像下载前,将升级软件描述信息快速显示给用户,由用户确定是否进行本地软件的升级;另外,现有技术所有升级数据下载时间过长,下载过程中读写内存影响其他业务的使用;并且,本发明中升级软件描述信息与程序资源的独立封装,避免现有技术中将升级软件描述信息作为升级软件镜像的一部分所造成的冗余,因为该升级软件描述信息可能仅使用一次。
图6为本发明软件升级装置实施例一的结构示意图。本发明实施例提供一种软件升级装置,应用于数字电视终端中软件升级。该装置可以集成于数字电视终端中,其中,数字电视终端可以为遵守DVB协议的任意终端,例如,数字电视机顶盒和带数字电视功能的电视机。如图6所示,该软件升级装置60包括:获取模块61、确定模块62、显示模块63和升级模块64。
其中,获取模块61用于根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的DSI表,该DSI表中携带升级软件描述信息;确定模块62用于若根据获取模块61获取的升级软件描述信息,确定对本地软件进行升级,则触发显示模块63;显示模块63用于显示升级软件描述信息及升级提示信息给用户;升级模块64用于在用户根据显示模块63的显示,确定对软件升级之后,获取升级数据流中的升级软件镜像,并根据升级软件镜像更新本地软件。
本实施例的装置,可以用于执行图2或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例的基础上,获取模块61可以包括:传输流包获取单元(未示出)用于根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的传输流包;DSI表获取单元(未示出)用于还原传输流包获取单元获取的传输流包,获得数据段部分包含的DSI表。
其中,DSI表获取单元可以具体用于:还原传输流包,获得数据段部分;以及,通过数据段部分中的table_id和message_id,找到DSI表。
进一步地,确定模块62可以具体用于:将升级软件描述信息和本机的版本信息进行比较,判断是否对本地软件进行升级;若是,则触发显示模块63显示升级软件描述信息及升级提示信息给用户。
在上述基础上,升级模块64可以具体用于:在用户根据显示模块63的显示确定对软件升级之后,获取升级数据流中的DII及DBB;根据DBB,获得升级软件镜像,并对升级软件镜像进行完整性校验;利用通过完整性校验的升级软件镜像更新本地软件。
图7为本发明软件升级装置实施例二的结构示意图。本发明实施例提供一种软件升级装置,应用于数字电视终端中软件升级。该装置可以集成于服务器中。如图7所示,该软件升级装置70包括:信息添加模块71、升级数据流获取模块72和发送模块73。
其中,信息添加模块71用于将升级软件描述信息添加到DSM-CC的DSI表中;升级数据流获取模块72用于根据信息添加模块71获得的DSI表和升级软件对应的升级软件镜像,获得升级数据流;发送模块73用于发送升级通知消息到数字电视终端,升级通知消息中携带升级数据流获取模块72获取的升级数据流的位置信息,以使数字电视终端根据升级通知消息确定是否下载升级数据流以升级本地软件。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,信息添加模块71可以具体用于:将升级软件描述信息添加到DSI表的私有字段。
进一步地,升级数据流获取模块72可以具体用于:采用DSM-CC封装升级软件镜像;及,将封装后的升级软件镜像及DSI表加载到数据段部分,获得升级数据流,升级数据流包括至少一个传输流包。
图8为本发明数字电视终端实施例一的结构示意图。本发明实施例提供一种数字电视终端,该数字电视终端可以为遵守DVB协议的任意终端,例如,数字电视机顶盒和带数字电视功能的电视机。如图8所示,该数字电视终端80包括:第一处理器81和显示器82。
其中,第一处理器81用于根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的DSI表,该DSI表中携带升级软件描述信息;及,若根据升级软件描述信息,确定对本地软件进行升级,则触发显示器82;显示器82用于显示第一处理器81获得的升级软件描述信息及升级提示信息给用户;第一处理器81还用于在用户根据显示器的显示确定对软件升级之后,获取升级数据流中的升级软件镜像,并根据升级软件镜像更新本地软件。
本实施例的数字电视终端,可以用于执行图2或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,第一处理器81可以具体用于:根据升级通知消息中携带的升级数据流的位置信息,获取升级数据流中的传输流包;还原传输流包,获得数据段部分包含的DSI表。
在上述基础上,第一处理器81可进一步用于:还原传输流包,获得数据段部分;通过数据段部分中的table_id和message_id,找到DSI表。
进一步地,第一处理器81还可以用于:将升级软件描述信息和本机的版本信息进行比较,判断是否对本地软件进行升级;若是,则触发显示器82显示升级软件描述信息及升级提示信息给用户。
更进一步地,第一处理器81还可以用于:在用户确定对软件升级之后,获取升级数据流中的DII及DBB;根据DBB,获得升级软件镜像,并对升级软件镜像进行完整性校验;利用通过完整性校验的升级软件镜像更新本地软件。
图9为本发明服务器实施例一的结构示意图。本发明实施例提供一种服务器,应用于数字电视终端中软件升级。如图7所示,该服务器90包括:第二处理器91和发送器92。
其中,第二处理器91用于将升级软件描述信息添加到DSM-CC的DSI表中;及,根据DSI表和升级软件对应的升级软件镜像,获得升级数据流;发送器92用于发送升级通知消息到数字电视终端,升级通知消息中携带第二处理器91获得的升级数据流的位置信息,以使数字电视终端根据升级通知消息确定是否下载升级数据流以升级本地软件。
本实施例的服务器,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述基础上,第二处理器91可以具体用于:将所述升级软件描述信息添加到所述DSI表的私有字段。
可选地,第二处理器91可以进一步用于:采用DSM-CC封装升级软件镜像;将封装后的升级软件镜像及DSI表加载到数据段部分,获得升级数据流,升级数据流包括至少一个传输流包。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。