机顶盒升级方法及系统的制作方法

文档序号:8343213阅读:526来源:国知局
机顶盒升级方法及系统的制作方法
【技术领域】
[0001]本发明涉及升级方法及系统,尤其涉及一种机顶盒升级方法及系统。
【背景技术】
[0002]LOADER是机顶盒升级的软件,目前的升级中,前端系统会将系统镜像打包成TS流进行传输,但是,这种升级方式存在以下弊端:
[0003]1、对于信号的码率有一定要求。在传输大数据的升级包时,或者信号不好的情况下需要耗费很多时间,但需要升级的通常只是一小部分数据,并不用下载大数据。
[0004]2、机顶盒A和B原本的软件一样,如果运营商想要控制该次A要升级的数据包为镜像A,B为镜像B,但是两个升级包差别不大,如果两个升级包都整个传输,很浪费资源。
[0005]3、有些用户并不喜欢升级到最新版本。例如,5个用户分别喜欢vl.Uvl.2、vl.3、vl.4,vl.5版本的软件,那么传统方式就得5种镜像都打包传输,这样占用带宽太大且不方便。

【发明内容】

[0006]有鉴于此,有必要针对上述机顶盒升级耗时、浪费资源、占用宽带大的问题,提供一种机顶盒升级方法及系统。
[0007]本发明提供一种机顶盒升级方法,包括如下步骤:
[0008]将每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获取镜像差分包,并与获得的镜像差分包建立对应关系;
[0009]将所有的对应关系构建成升级控制列表,并将升级控制列表打包成TS流进行传输;
[0010]在机顶盒进行升级时,获取用户选取版本的版本号,并由TS流中解析获取升级控制列表;
[0011]将用户选取的版本号与机顶盒当前版本号进行比较,根据比较结果并结合升级控制列表,下载由当前版本号升级到用户选取版本号所必须的所有镜像差分包;
[0012]采用机顶盒当前版本号的镜像及下载的所有镜像差分包进行升级,升级完毕后保存用户选取的版本号及对应升级镜像。
[0013]优选的,所述步骤SlO具体为:采用开源二进制差分工具,将每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获取镜像差分包。
[0014]优选的,所述升级控制列表包括每个升级镜像的版本号、SHA摘要、对应的镜像差分包以及上一版本升级镜像的版本号。
[0015]优选的,所述步骤S40还包括:由当前版本号升级到用户选取版本号所必须的所有镜像差分包若存在多种组合,则判断每种组合的数据大小,选择数据最小的组合进行下载。
[0016]本发明还提供一种机顶盒升级系统,包括:
[0017]镜像差分包获取单元,将每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获取镜像差分包,并与获得的镜像差分包建立对应关系;
[0018]升级控制列表构建单元,将所有的对应关系构建成升级控制列表,并将升级控制列表打包成TS流进行传输;
[0019]升级版本号获取单元,在机顶盒进行升级时,获取用户选取版本的版本号,并由TS流中解析获取升级控制列表;
[0020]镜像差分包下载单元,将用户选取的版本号与机顶盒当前版本号进行比较,根据比较结果并结合升级控制列表,下载由当前版本号升级到用户选取版本号所必须的所有镜像差分包;
[0021]升级镜像升级单元,采用机顶盒当前版本号的镜像及下载的所有镜像差分包进行升级,升级完毕后保存用户选取的版本号及对应升级镜像。
[0022]优选的,所述镜像差分包获取单元采用开源二进制差分工具,将每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获取镜像差分包。
[0023]优选的,所述升级控制列表包括每个升级镜像的版本号、SHA摘要、对应的镜像差分包以及上一版本升级镜像的版本号。
[0024]优选的,由当前版本号升级到用户选取版本号所必须的所有镜像差分包若存在多种组合,则所述镜像差分包下载单元判断每种组合的数据大小,选择数据最小的组合进行下载。
[0025]本发明机顶盒升级方法及系统,首先获取每个版本升级镜像与上一版本升级镜像的镜像差分包,然后根据用户选取的版本号,比较机顶盒当前的版本号,得出两者差异,根据升级控制列表下载由当前版本号升级到用户选取版本号所必须的所有镜像差分包进行升级即可,这样只是下载升级所需要的镜像差分包即可完成升级,无需下载整个镜像,从而使得下载的数据大大降低,能够大大节约时间,避免浪费资源,减少了对带宽的占用,且方便用户升级。
【附图说明】
[0026]图1是一个实施例中的机顶盒升级方法的流程图;
[0027]图2是一个实施例中升级控制列表的示意图。
【具体实施方式】
[0028]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0029]图1是一个实施例中的机顶盒升级方法的流程图,如图1所示,该机顶盒升级方法包括如下步骤:
[0030]SlO:将每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获取镜像差分包,并与获得的镜像差分包建立对应关系。
[0031]由于机顶盒在使用过程中,会不断的进行升级,随着升级的进行,会不断产生新版本的升级镜像,如果在每次升级时都下载完整的升级镜像,那么将会造成耗时、浪费资源、占用宽带大的问题。考虑到在升级过程中,每个版本的升级镜像大多是在上一版本升级镜像基础上升级的,故在该实施例中,每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获得两个版本的镜像差分包,并与获得的镜像差分包建立对应关系。例如,现有版本号为四个升级镜像,则分别将V1.1与V1.0、V1.2与V1.UVl.3与V1.2分别进行差分运算,获取三个镜像差分包A.patch、B.patch和C.patch,然后将VL I与A.patch建立对应关系、V1.2与B.patch建立对应关系以及V1.3与C.patch建立对应关系。由于镜像差分包只是两个版本的差异数据,相较于整个升级镜像小非常多,升级时只下载相应的镜像差分包,能够有效降低升级数据的大小。
[0032]在该实施例中,该步骤具体为:采用开源二进制差分工具,将每个版本的升级镜像与其上一版本的升级镜像进行差分运算,获取镜像差分包。将每个版本的升级镜像与上一版本的升级镜像输入开源二进制差分工具,即可得到镜像差分包。
[0033]S20:将所有的对应关系构建成升级控制列表,并将升级控制列表打包成TS流进行传输。
[0034]在获得每个升级镜像以及其对应的镜像差分包的对应关系后,把所有的对应关系构建在一个升级控制列表中,便于根据升级控制列表来控制下载相应的镜像差分包。在构建升级控制列表之后通过TS流进行传输,不额外占用过大的带宽。
[0035]在进一步的实施方式中,升级控制列表包括每个升级镜像的版本号、SHA摘要、对应的镜像差分包以及上一版本升级镜像的版本号。如图2所示是一个实施例中升级控制列表的不意图。
[0036]S30:在机顶盒进行升级时,获取用户选取版本的版本号,并由TS流中解析获取升级控制列表。
[0037]当机顶盒进行升级时,由用户选择所需要的版本,在用户选取后获取用户选取版本的版本号,同时由TS流中解析获取升级控制列表,以便确定所需下载的镜像差分包。
[0038]S40:将用户选取的版本号与机顶盒当前版本号进行比较,根据比较结果并结合升级控制列表,下载由当前版本号升级到用户选取版本号所必须的所有镜像差分包。
[0039]在获取用户选取的版本号之后,需要确定机顶盒当前版本的版本号,然后进行对比确定版本号的间隔,同时结合升级控制列表,根据两者版本号的间隔,确定由当前版本号升级到用户选取版本号所必须的所有镜像差分包,并下载。
[0040]结合图2,例如,若机顶盒A当前版本为V1.0版本,用户想升级为新版本V1.1,则由升级控制列表,可以得到本次要下载镜像差分包为A.patch。新版本V1.1的上一版本号为V1.0,和机顶盒当前版本号一样,说明只要下载A.patch即可。采用机顶盒当前镜像和A.patch恢复出新镜像,计算其SHA摘要,若为SHA-A,则说明正确。这样就只要下载A.patch即可,相对于全镜像下载省了很多流量。
[0041]另外,若是比较复杂的跨多版本升级情况,机顶盒A当前版本为V1.0,用户想要升级为V1.3,则由升级控制列表可以得到V1.3的上一版本号为V1.2,和当前版本不同,则设置升级版本号为V1.2。接着由升级控制列表可以得到V1.2的上一版本号为V1.1或V1.1+,都和当前版本号不同,则设置升级版本号为V1.1或者V1.1+。由升级控制列表得到V1.1或者V1.1+的原版本号为V1.0,刚好和当前版本号一样,说明镜像差分包匹配完成,即本次升级路径有V1.0、V1.1、V1.2到V1.3或者V1.0、V1.1+、V1.2到V1.3,从升级控制列表可以得到镜像差分包的信息,可以得知两种路径要下载的镜像差分包,即下载c.patch,B.patch或者 B+.patch、A.patch。
[0042]进一步的,由当前版本号升级到用户选取版本号所必须的所有镜像差分包若存在多种组合,则判断每种组合的数据大小,选择数据最小的组合进行下载,这样可以进一步的降低下载数据大小。
[0043]S50:采用机顶盒当前版本号的镜像及下载的所有镜像差分包进行升级,升级完毕后保存用户选取的版本号及对应升级镜像。
[0044]在下载到所需的所有镜像差分包之后,结合机顶盒当前版本的镜像和所有镜像差分包进行恢复,将机顶盒恢复到用户所选取版本号对应的系统镜像,完成升级。升级完毕后,对用户选取的版本号及对应升级镜像进行备份,一方面是因为升级需要使用备份的镜像进行新镜像的恢复,另一方面,也是为了在机顶盒发生软件发生严重性错误时用于恢复之用。这样,只是根据用户选取版本号与机顶盒当前版本号的差异,下载升级所需要的镜像差分包即可
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1