一种基于数字机顶盒的后台OTA升级实现方法及系统与流程

专利2022-06-29  230


本发明涉及计算机技术领域,具体涉及一种基于数字机顶盒的后台ota升级实现方法。



背景技术:

在数字机顶盒中,ota(overtheair,空中下载)升级是非常重要的一个功能,特别是当数字机顶盒产品到达成千上万的终端客户手上以后,ota升级功能显得尤为重要。数字机顶盒中新功能的部署、终端客户在数字机顶盒的使用过程中发现的部分问题修复,等等这些情况,都需要使用ota升级来更新数字机顶盒中的软件,以求达到解决问题的目的。

目前基于stb(数字机顶盒)系统终端的ota升级方式主要有两种,一种是manualota;一种是autoota。

manualota:stb软件中,存在一个manualota的菜单,该菜单存在一些ota升级的参数,设置ota升级参数以后,按提示逐步操作就可以完成升级。该方法的缺陷是:manualota执行流程相对于繁琐,dvbc、dvbt、dvbs等之间的设置参数各不一样,设置选项较为晦涩难懂,非专业人士很难理解其含义,升级操作必须进入特定界面,无法在升级过程中对stb设备进行其他操作。

autoota:stb软件中,创建了一个检测autoota的任务,当检测到ota升级数据之后,触发提示并引导客户完成ota升级,或者直接强制进行ota升级。该方法的缺陷是:相较于manualota没有参数设置这一步骤,如果ota检测任务检测到ota升级数据以后,如果是非强制ota升级,触发升级提示,终端用户可以手动选择是否进入ota升级界面,如果选则是,中断stb系统终端设备的当前任务,进入ota升级,如果选择否,关闭选择框,取消ota升级;如果是强制ota升级,中断stb设备的所有操作,进入的升级界面进行升级。和manualota一样,升级的过程中无法对stb设备进行其他操作。

不论是manualota还是autoota,都需要中断stb设备的当前任务,进入专门的ota升级界面才能完成升级,尤其是autoota的强制升级模式,完全忽略了终端用户的使用体验。



技术实现要素:

为了克服现有技术的不足,本发明有必要提供一种新的ota升级方式——backgroundota即后台ota,不仅可解决用户体验不佳的问题,还针对更新过程中断电情况加入异常处理机制,提高ota升级的安全性。

为解决上述问题,本发明所采用的技术方案如下:

一种基于数字机顶盒的后台ota升级实现方法,包括flash分区设置步骤和ota升级步骤;

所述flash分区设置步骤包括:将flash进行分区,除常规的配置外,额外增加一个app分区和一个appcfg分区,此时系统将包含两个app分区:app0和app1,所述app0分区用于存储stb设备的主应用程序app0;所述app1分区用于存储stb设备的主应用程序app1;所述appcfg分区用于存储stb设备的主程序应用启动配置文件,该配置文件用于确定启动的stb设备主应用程序是app0还是app1;

所述ota升级步骤包括:

s1、所述数字机顶盒上电以后,运行引导加载程序,所述引导加载程序读取所述appcfg分区中存储的主应用程序启动配置文件,启动对应的主应用程序app0或app1;若启动失败,修改所述appcfg分区中存储的主应用程序启动配置文件,使其指向另一个主应用程序app1或app0,并启动其指向的应用程序;

s2、所述主应用程序启动以后,开启ota数据过滤程序,开始过滤ota数据;

s3、所述ota数据过滤程序过滤到ota数据后,判断是否为需要的升级数据;如果判断结果为是,读取所述appcfg分区中的指向启动的主应用程序的信息;

s4、根据所述appcfg分区中的指向的所述主应用程序的信息,确定准备写入升级数据的主应用程序对应的分区:如果当前启动的是app0中的主应用程序,将所述升级数据写入app1分区中,如果当前启动的是app1,将升级数据写入app0分区中;

s5、将所述升级数据写入完成以后,更新所述appcfg分区中指向的主应用程序启动配置文件;

s6、关闭所述ota数据过滤程序。

具体的,所述引导加载程序为u-boot。

作为优选,所述s3中,如判断结果为否,则丢弃该数据,继续过滤。

具体的,所述s6之后,还包括s7:所述数字机顶盒被重启后,运行的主应用程序为ota升级后的版本。

采用本发明之方法,可实现的效果是:当数字机顶盒开机后,启动的是app0分区,则升级的分区就是app1分区,当升级完成以后,数字机顶盒重启时就会启动app1,不会启动app0,从而使得每升级一次,启动分区就会更改一次,这样就可以保证,客户手中每次启动的都是最新的软件。

本发明还提供一种用于实现上述的基于数字机顶盒的后台ota升级实现方法的系统,包括:包括flash分区设置模块和ota升级模块;

所述flash分区设置模块用于:将flash进行分区,除常规的配置外,额外增加一个app分区和一个appcfg分区,此时系统将包含两个app分区:app0和app1,所述app0分区用于存储stb设备的主应用程序app0;所述app1分区用于存储stb设备的主应用程序app1;所述appcfg分区用于存储stb设备的主程序应用启动配置文件,该配置文件用于确定启动的stb设备主应用程序是app0还是app1;

所述ota升级模块包括:

启动单元,其用于当所述数字机顶盒上电以后,运行引导加载程序,所述引导加载程序读取所述appcfg分区中存储的主应用程序启动配置文件,启动对应的主应用程序app0或app1;若启动失败,修改所述appcfg分区中存储的主应用程序启动配置文件,使其指向另一个主应用程序app1或app0,并启动其指向的应用程序;

过滤单元,其用于当所述主应用程序启动以后,开启ota数据过滤程序,开始过滤ota数据;

判断单元,其用于当所述ota数据过滤程序过滤到ota数据后,判断是否为需要的升级数据;如果判断结果为是,读取所述appcfg分区中的指向启动的主应用程序的信息;

升级单元,其用于根据所述appcfg分区中的指向的所述主应用程序的信息,确定准备写入升级数据的主应用程序对应的分区:如果当前启动的是app0中的主应用程序,将所述升级数据写入app1分区中,如果当前启动的是app1,将升级数据写入app0分区中;

启动配置更新单元,其用于将所述升级数据写入完成以后,更新所述appcfg分区中指向的主应用程序启动配置文件;

关闭单元,其用于关闭所述ota数据过滤单元。

优选的,所述引导加载程序为u-boot。

优选的,所述判断单元还用于判断接收到的数据是否为有效的升级数据,结果为否,则丢弃该数据,继续过滤。

优选的,所述判断单元块还用于控制启动的主应用程序,其用于当数字机顶盒被重启后,保证运行的主应用程序为ota升级后的版本。

相比现有技术,本发明的有益效果在于:

1、backgroundota实现了全后台的stb系统的终端设备升级,升级的过程中,完全不影响终端客户对stb终端设备的使用,升级完成以后,也不会强制重启stb终端设备,待终端客户关机重启后,升级的主应用程序才会生效,并被启用,提高了终端设备用户的体验;

2、backgroundota增加了stb升级的异常处理能力,如果升级数据存在问题,无法启动升级后的主应用程序,stb设备会自动切回,上一次能正常启动的主应用程序,这样能保证stb在终端用户手中始终能正常使用。

附图说明

图1为本发明实施例所述的flash分区原理示意图;

图2为本发明实施例所述的升级步骤的流程图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细说明。

本实施例提供一种基于数字机顶盒的后台ota升级实现方法,即backgroundota,其包括flash分区步骤和ota升级步骤。

如图1所示,针对本实施例的backgroundota功能flash分区需要进行调整,调整后必须存在app0、app1、appcfg这三个分区,这几个分区的主要作用是为了在升级出现异常的时候,保证stb系统终端设备能正常工作。具体的,app0分区用于存储stb设备的主应用程序app0;app1分区用于存储stb设备的主应用程序app1;appcfg分区用于存储stb设备的主应用程序启动配置文件,该配置文件用于确定启动的stb设备主应用程序是app0还是app1。

如图2所示,backgroundota升级的具体运行流程如下:

stb设备启动上电;

运行引导加载程序uboot,uboot读取appcfg分区中主应用程序启动配置文件,根据其描述,启动对应的app(app0或app1);若启动失败,则修改主应用程序启动配置文件,并启动另一个分区(app1或app0)中的主应用程序,这样做的目的是为了防止更新软件本身不能启动,或者是更新异常导致不能启动stb设备的问题,增加了安全性;

app启动以后,终端用户通过常规操作正常使用stb设备,同时开启ota数据过滤的filter,开始过滤ota数据;

filter过滤到ota数据以后,判断是否为需要的升级数据,如果不是,直接丢弃数据,继续过滤;如果是,读取appcfg,判断是否启动app0,如果判断结果为是,则更新app1,如果判断结果为否,则更新app0;更新后app后,更新appcfg;

关闭filter,等待用户重启机器,这样下次开机的时候就可以保证启动的是升级后的版本的主应用程序app0或app1。

本实例还提供一种用于实现上述的基于数字机顶盒的后台ota升级实现方法的系统,包括:包括flash分区设置模块和ota升级模块。

所述flash分区设置模块用于:将flash进行分区,针对本实施例的backgroundota功能flash分区需要进行调整,调整后必须存在app0、app1、appcfg这三个分区,这几个分区的主要作用是为了在升级出现异常的时候,保证stb系统终端设备能正常工作。具体的,app0分区用于存储stb设备的主应用程序app0;app1分区用于存储stb设备的主应用程序app1;appcfg分区用于存储stb设备的主应用程序启动配置文件,该配置文件用于确定启动的stb设备主应用程序是app0还是app1。

所述ota升级模块包括:

启动单元,其用于当所述数字机顶盒上电以后,运行引导加载程序uboot,uboot读取appcfg分区中主应用程序启动配置文件,根据其描述,启动对应的app(app0或app1);若启动失败,则修改主应用程序启动配置文件,并启动另一个分区(app1或app0)中的主应用程序,这样做的目的是为了防止更新软件本身不能启动,或者是更新异常导致不能启动stb设备的问题,增加了安全性;

过滤单元,其用于当终端用户通过常规操作正常使用stb设备后,主应用程序启动的同时开启ota数据过滤的filter,开始过滤ota数据;

判断及升级单元,其用于过滤到ota数据以后,判断是否为需要的升级数据,如果不是,直接丢弃数据,继续过滤;如果是,读取appcfg,判断是否启动app0,如果判断结果为是,则更新app1,如果判断结果为否,则更新app0;更新app后,更新appcfg,具体为,更新所述appcfg分区中指向的主应用程序启动配置文件;

关闭单元,其用于关闭所述ota数据过滤程序。

所述ota升级模块还包括重启运行控制子模块,其用于当数字机顶盒被重启后,运行的主应用程序为ota升级后的版本的主应用程序app0或app1。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。


技术特征:

1.一种基于数字机顶盒的后台ota升级实现方法,其特征在于,包括flash分区设置步骤和ota升级步骤;

所述flash分区设置步骤包括:将flash进行分区,除常规的配置外,额外增加一个app分区和一个appcfg分区,此时系统将包含两个app分区:app0和app1,所述app0分区用于存储stb设备的主应用程序app0;所述app1分区用于存储stb设备的主应用程序app1;所述appcfg分区用于存储stb设备的主程序应用启动配置文件,该配置文件用于确定启动的stb设备主应用程序是app0还是app1;

所述ota升级步骤包括:

s1、所述数字机顶盒上电以后,运行引导加载程序,所述引导加载程序读取所述appcfg分区中存储的主应用程序启动配置文件,启动对应的主应用程序app0或app1;若启动失败,修改所述appcfg分区中存储的主应用程序启动配置文件,使其指向另一个主应用程序app1或app0,并启动其指向的应用程序;

s2、所述主应用程序启动以后,开启ota数据过滤程序,开始过滤ota数据;

s3、所述ota数据过滤程序过滤到ota数据后,判断是否为需要的升级数据;如果判断结果为是,读取所述appcfg分区中的指向启动的主应用程序的信息;

s4、根据所述appcfg分区中的指向的所述主应用程序的信息,确定准备写入升级数据的主应用程序对应的分区:如果当前启动的是app0中的主应用程序,将所述升级数据写入app1分区中,如果当前启动的是app1,将升级数据写入app0分区中;

s5、将所述升级数据写入完成以后,更新所述appcfg分区中指向的主应用程序启动配置文件;

s6、关闭所述ota数据过滤程序。

2.根据权利要求1所述的基于数字机顶盒的后台ota升级实现方法,其特征在于,所述引导加载程序为u-boot。

3.根据权利要求1所述的基于数字机顶盒的后台ota升级实现方法,其特征在于,所述s3中,如判断结果为否,则丢弃该数据,继续过滤。

4.根据权利要求1所述的基于数字机顶盒的后台ota升级实现方法,其特征在于,所述s6之后,还包括s7:所述数字机顶盒被重启后,运行的主应用程序为ota升级后的版本。

5.一种基于数字机顶盒的后台ota升级实现系统,其特征在于,包括flash分区设置模块和ota升级模块;

所述flash分区设置模块用于:将flash进行分区,除常规的配置外,额外增加一个app分区和一个appcfg分区,此时系统将包含两个app分区:app0和app1,所述app0分区用于存储stb设备的主应用程序app0;所述app1分区用于存储stb设备的主应用程序app1;所述appcfg分区用于存储stb设备的主程序应用启动配置文件,该配置文件用于确定启动的stb设备主应用程序是app0还是app1;

所述ota升级模块包括:

启动子模块,其用于当所述数字机顶盒上电以后,运行引导加载程序,所述引导加载程序读取所述appcfg分区中存储的主应用程序启动配置文件,启动对应的主应用程序app0或app1;若启动失败,修改所述appcfg分区中存储的主应用程序启动配置文件,使其指向另一个主应用程序app1或app0,并启动其指向的应用程序;

过滤单元,其用于当所述主应用程序启动以后,开启ota数据过滤程序,开始过滤ota数据;

判断单元,其用于当所述ota数据过滤程序过滤到ota数据后,判断是否为需要的升级数据;如果判断结果为是,读取所述appcfg分区中的指向启动的主应用程序的信息;

升级单元,其用于根据所述appcfg分区中的指向的所述主应用程序的信息,确定准备写入升级数据的主应用程序对应的分区:如果当前启动的是app0中的主应用程序,将所述升级数据写入app1分区中,如果当前启动的是app1,将升级数据写入app0分区中;

启动配置更新单元,其用于将所述升级数据写入完成以后,更新所述appcfg分区中指向的主应用程序启动配置文件;

关闭单元,其用于关闭所述ota数据过滤单元。

6.根据权利要求5所述的基于数字机顶盒的后台ota升级实现系统,其特征在于,所述引导加载程序为u-boot。

7.根据权利要求5所述的基于数字机顶盒的后台ota升级实现系统,其特征在于,所述判断子模块还用于:如判断结果为否,则丢弃该数据,继续过滤。

8.根据权利要求5所述的基于数字机顶盒的后台ota升级实现系统,其特征在于,所述ota升级模块还包括重启运行控制子模块,其用于当数字机顶盒被重启后,运行的主应用程序为ota升级后的版本。

技术总结
本发明公开了一种基于数字机顶盒的后台OTA升级实现方法及系统,所述方法包括Flash分区设置步骤和OTA升级步骤;将Flash进行分区,分区除开常规的配置外,额外增加一个App分区和一个App Cfg分区;启动其中一个主应用程序;开启OTA数据过滤任务;过滤到OTA数据后,判断是否为需要的升级数据;如果判断结果为是,读取App Cfg分区中的正在启动的主应用程序的配置信息;并根据信息,确定准备写入升级数据的主应用程序对应的分区;将升级数据写入待升级的主应用程序分区以后,更新App Cfg分区中的主应用程序启动配置文件,使其指向完成升级的主应用程序的分区;关闭OTA数据过滤程序。

技术研发人员:田毅
受保护的技术使用者:珠海迈科智能科技股份有限公司
技术研发日:2020.01.19
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-15731.html

最新回复(0)