CN102890638A - 一种机顶盒升级方法 - Google Patents
一种机顶盒升级方法 Download PDFInfo
- Publication number
- CN102890638A CN102890638A CN2012103715026A CN201210371502A CN102890638A CN 102890638 A CN102890638 A CN 102890638A CN 2012103715026 A CN2012103715026 A CN 2012103715026A CN 201210371502 A CN201210371502 A CN 201210371502A CN 102890638 A CN102890638 A CN 102890638A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- top box
- upgrade
- file
- set top
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种机顶盒在应用程序中的升级方法包括以下步骤:S100、进入应用程序菜单检测有无升级文件,若有,则进入步骤S200,否则退出应用程序菜单;S200、检测机顶盒升级模式,若升级模式为文件升级模式则进入步骤S300;否则为分区升级模式,进入步骤S400;S300、在根文件系统下新建升级临时目录,写入相关文件,成功后重启机顶盒;S400、用分区升级文件改写rootfs分区,改写成功后重启机顶盒。实施本发明的机顶盒升级方法,可以按照升级所需特性进行文件升级或者分区升级,使得升级机顶盒的过程变得灵活,针对较小的升级改动使用文件升级方式,缩短升级所需时间;在大幅度升级时,将升级所涉及的内容归为分区,使得升级后的系统更为稳定。
Description
技术领域
本发明涉及机顶盒技术领域,更具体的说,涉及一种基于Linux平台的机顶盒在应用程序中同时支持文件升级和分区升级的方法。
背景技术
机顶盒,也称为数字视频变换盒(Set Top Box,简称STB),是一个连接电视机与外部信号源的设备。它可以将压缩的数字信号转成电视内容,并在电视机上显示出来。信号可以来自有线电缆、卫星天线、宽带网络以及地面广播。对于数字电视的播放来说,是必不可少的设备。
为了满足人们日益增长的生活水平,修正原有机顶盒中的bug,增加更多更强大的的功能,对机顶盒中的程序进行升级已经显得特别重要。然而现有的针对Linux的机顶盒在应用程序中进行升级的时候却无法同时支持对文件和分区进行升级,导致整个升级过程冗长、繁琐。大多数机顶盒在升级的时候都是通过LOADER实现升级,在嵌入式的Linux系统中都会采用分区升级的方式,在手动触发升级模式下如果要升级都要重新启动机顶盒,从uboot跳到LOADER去检测升级,这样的话过程较为麻烦。
因此现在急需一种能同时支持对文件和分区进行升级的方法,在手动触发升级方式下可以直接在应用程序菜单中去检测,在没有升级的时候退出升级应用程序菜单即可,不需重启,使得机顶盒的检测升级和升级过程变得简单、方便,不影响用户观看节目。
发明内容
本发明的目的是,针对现有的机顶盒在应用程序中升级无法同时支持对文件和对分区进行升级的缺陷,提供一种能克服此缺陷的机顶盒升级方法。
本发明解决上述问题的方案是:提供一种机顶盒升级方法,包括以下步骤:
S100、在应用程序升级菜单中检测机顶盒有无升级所需的机顶盒升级文件,若有,则进入步骤S200,否则退出升级应用程序;
S200、检测机顶盒升级模式,若机顶盒升级模式为文件升级文件模式则进入步骤S300;否则该机顶盒升级模式为分区升级模式,进入步骤S400;
S300、在机顶盒的根文件系统下新建升级临时目录,并将文件升级模式所需的文件写入到升级临时目录,升级临时目录还包括一个用于替换原文件的脚本文件,成功后写入后重启机顶盒;
S400、用分区升级文件改写rootfs分区,改写成功后重启机顶盒。
本发明的机顶盒升级方法,其中S200的机顶盒升级文件为在升级前端加入数据结构和数据签名后的机顶盒升级文件。
本发明的机顶盒升级方法,其中S200还包括,在检测到机顶盒有可用的升级文件时,读取机顶盒升级文件到内存中。
本发明的机顶盒升级方法,其中步骤S300还包括,校验文件升级中文件的数据签名。
本发明的机顶盒升级方法,其中步骤S400还包括,校验分区升级的数据签名。
本发明的机顶盒升级方法,还包括,在步骤S300或步骤S400中重启机顶盒后,进行重启检测,并在检测到存在升级临时目录时,执行升级临时目录下的脚本文件,进行文件替换,替换后删除升级临时目录。
实施本发明的机顶盒升级方法,能够得到以下的有益效果:对机顶盒升级时,可以按照升级所需特性进行文件升级或者分区升级,使得升级机顶盒的过程变得灵活,针对较小的升级改动使用文件升级方式,缩短升级所需时间;在大幅度升级时,将升级所涉及的内容归为分区,使得升级后的系统更为稳定。
附图说明
以下结合附图对本发明进行详细说明,其中:
图1为本发明的机顶盒分区示意图;
图2为本发明机顶盒升级方法一则较佳实施例的流程图;
图3为重启检测机顶盒的过程。
具体实施方式
以下结合附图和具体实施方式对本发明进行对本发明进行详细说明。
如图1所示为本发明机顶盒的Linux分区示意图。本发明的Linux机顶盒包括:
引导区(UBOOT),一般用于引导机顶盒的内核,在机顶盒开机时,UBOOT会首先启动,引导其他的分区。
数据库(DM),保存机顶盒应用程序用到的数据库信息。
内核(KERNEL),该分区为机顶盒的核心,对机顶盒的硬件设备进行控制操作。
根文件系统(ROOTFS),机顶盒启动后,第一个挂载的分区,包含机顶盒系统引导和其他的文件系统得以挂载的必要文件。
预留分区(RESERVED),该分区为预留的空间,方便以后机顶盒升级时的空间需要。
以下将结合图1的具体分区情况对升级过程进行说明。
如图2所示为本发明机顶盒升级方法一则较佳实施例的流程图。
S100、在用户界面处,用户选择进入升级菜单界面,并选择一种升级方式,例如USB升级、OTA升级、串口升级等,此后检测是否有可用升级,若无升级,则向用户显示无相关升级的信息;若有升级,则进入步骤S200;
S200、读取机顶盒升级文件到内存中,对读取到内存中的机顶盒升级文件进行识别,以区分其升级模式为文件升级还是分区升级。具体的方法是通过升级信息结构体中的布尔型变量的数值(例如本实施例中的bFileUpgrade变量),1(真值)则为文件升级,0(非真值)则为分区升级。对于文件升级,进入步骤S300,对于分区升级进入步骤S400。
需要说明的是,此处的机顶盒升级文件为升级前端(即升级文件的提供者)加入了自定义的数据结构和数据签名的升级文件。这些加入的数据结构和数据签名用于在后续的升级过程中,对机顶盒升级文件进行识别、验证。具体的数据结构如下:
①文件头(image header)结构体:
其中:
1.nManufacture_Code:厂商号。
2.nHardware_Code:硬件版本号。
3.nModel_Code:机器型号。
4.nUpgradeCount:升级中要遍历的次数。由于本升级方法支持多分区和多文件升级,故前端工具要记录实际要升级的次数。
5.upgradeInfo:升级信息结构体。
6.UPGRADE_MAX_NUMBER_SUPPORT:最大支持的升级次数。nUpgradeCount必须小于等于此值。
7.nCrc32:用于校验以上字段的crc确保其完整性。
②升级信息结构体:
其中:
1.bFileUpgrade:true:文件升级;false:分区升级。
2.fileInfo:文件升级信息结构体。
3.mtdInfo分区升级信息结构体。
③文件升级信息结构体:
其中:
1.cFilePath:升级文件的绝对路径。
2.nFile_Offset:此文件的数据距离升级文件的起始位置的偏移量。此字段和nFile_Size可以还原该文件的原始数据。
3.nFile_Size:升级文件的大小。
4.nSoftware_Update_Version:文件的版本。
5.cFile_Desc[16]:文件的简单描述。
④分区升级信息结构体:
其中:
1.nImage_ID:指定要升级的分区ID
2.nMtd_Offset:指定要升级的分区数据距离该分区起始位置的偏移量。
3.nImage_Offset:此分区的数据距离升级文件的起始位置的偏移量。此字段和nImage_Size可以还原该分区的原始数据。
4.nImage_Size:分区数据的大小。
5.nSoftware_Update_Version:分区所在的软件版本。
6.cMtd_Desc:分区信息简要说明。
S300、对于文件升级,在根文件系统中建立临时目录,写入升级所需的文件;具体的实现方式是:根据升级文件中的数据结构中的nFile_Offset和nFile_Size获得升级文件数据在内存中的起始地址和大小,计算文件数据的签名,校验签名。调用创建一个升级临时目录,目录名假设为upgrade,路径假设为根目录(/)下,接着调用文件系统打开操作(fopen)创建一个文件,要升级的文件名可根据cFilePath字段通过分析得到,然后调用文件系统写操作(fwrite)写入数据,成功后重启,进入重启检测步骤。
S400、对于分区升级,直接将分区升级文件改写rootfs分区,具体的实现方式是:根据数据结构中的根据nImage_Offset和nImage_Size获得升级分区数据在内存中的起始地址和大小,计算分区数据的签名,校验签名;然后根据分区ID(nImage_ID),分区偏移量(nMtd_Offset)确定升级分区数据在nandflash中的位置,写入分区数据,成功后重启。
在步骤S300和S400的最后都需要进行重启检测,重启检测机顶盒的过程如图3所示。在重启后,首先进入UBOOT,引导内核KERNEL;进入KERNEL后,挂载所有文件系统的分区;然后检测有无文件升级临时目录(即步骤S300中创建的upgrade)如果有,则执行该目录(upgrade)下的文件替换脚本(upgrade.sh),进行文件替换;最后启动相关的应用程序,完成相关的升级。
具体的选择文件升级或分区升级,由升级前端决定。没有文件系统的分区支持分区升级,如果本分区数据比较多,则所需内存较大,升级时间过长,但实现较为简单,直接替换nandflash中的数据后重启即可;有文件系统的分区同时支持分区升级和文件升级,分区升级与没有文件系统的分区相同,文件升级则只需升级某分区中的需要升级的文件即可,这种升级模式所需内存小,升级时间短,但是文件升级要调用系统的文件读写完成操作,如果操作系统正在占用此文件,是不能直接对此文件进行改写的,故需在文件系统中建立升级临时目录,用于存放需要升级的文件,并且还要一个脚本文件去实现文件替换策略,此脚本也会升级到升级临时文件夹,替换过程要在升级完成后重启机顶盒,挂载完所有文件系统后立即执行,成功后删除此临时文件夹,然后就可以执行应用程序了。
以上仅为本发明具体实施方式,不能以此来限定本发明的范围,本技术领域内的一般技术人员根据本创作所作的均等变化,以及本领域内技术人员熟知的改变,都应仍属本发明涵盖的范围。
Claims (6)
1.一种机顶盒升级方法,其特征在于,包括以下步骤:
S100、在应用程序升级菜单中检测机顶盒有无升级所需的机顶盒升级文件,若有,则进入步骤S200,否则退出升级应用程序菜单;
S200、检测机顶盒升级模式,若机顶盒升级模式为文件升级模式则进入步骤S300;否则该机顶盒升级模式为分区升级模式,进入步骤S400;
S300、在机顶盒的根文件系统下新建升级临时目录,并将文件升级模式所需的文件写入到升级临时目录,升级临时目录还包括一个用于替换原文件的脚本文件,成功后写入后重启机顶盒;
S400、用分区升级文件改写rootfs分区,改写成功后重启机顶盒。
2.根据权利要求1所述的机顶盒升级方法,其特征在于,所述步骤S200的机顶盒升级文件为在升级前端加入数据结构和数据签名后的机顶盒升级文件。
3.根据权利要求2所述的机顶盒升级方法,其特征在于,所述步骤S200还包括,在检测到机顶盒有可用的升级文件时,读取机顶盒升级文件到内存中。
4.根据权利要求2所述的机顶盒升级方法,其特征在于,步骤S300还包括,校验文件升级中文件的数据签名。
5.根据权利要求2所述的机顶盒升级方法,其特征在于,步骤S400还包括,校验分区升级文件的数据签名。
6.根据权利要求1-5任一所述的机顶盒升级方法,其特征在于,在步骤S300或步骤S400中重启机顶盒后,进行重启检测,并在检测到存在升级临时目录时,执行升级临时目录下的脚本文件,进行文件替换,替换后删除升级临时目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371502.6A CN102890638B (zh) | 2012-09-29 | 2012-09-29 | 一种机顶盒升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371502.6A CN102890638B (zh) | 2012-09-29 | 2012-09-29 | 一种机顶盒升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102890638A true CN102890638A (zh) | 2013-01-23 |
CN102890638B CN102890638B (zh) | 2015-07-15 |
Family
ID=47534146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210371502.6A Expired - Fee Related CN102890638B (zh) | 2012-09-29 | 2012-09-29 | 一种机顶盒升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102890638B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957455A (zh) * | 2014-04-01 | 2014-07-30 | 深圳创维数字技术股份有限公司 | 机顶盒升级方法及系统、机顶盒 |
CN105376646A (zh) * | 2015-11-18 | 2016-03-02 | 深圳创维数字技术有限公司 | 一种机顶盒升级程序配置方法及装置 |
CN105472418A (zh) * | 2015-12-28 | 2016-04-06 | 深圳创维数字技术有限公司 | 一种机顶盒系统异常状态恢复方法及机顶盒 |
CN106502726A (zh) * | 2016-09-30 | 2017-03-15 | 乐视控股(北京)有限公司 | 离线更新方法、装置以及终端 |
CN107172493A (zh) * | 2017-04-26 | 2017-09-15 | 贵州省广播电视信息网络股份有限公司 | 一种能兼容不同分区类型的ota升级方法 |
CN107613286A (zh) * | 2017-08-30 | 2018-01-19 | 深圳市芯智科技有限公司 | 一种用于避免重复测试机顶盒的文件监测方法 |
CN108196870A (zh) * | 2017-12-29 | 2018-06-22 | 北京臻迪科技股份有限公司 | 升级方法及装置 |
CN109151590A (zh) * | 2018-11-02 | 2019-01-04 | 四川长虹电器股份有限公司 | 一种双向数字电视升级方法 |
CN109189455A (zh) * | 2018-11-02 | 2019-01-11 | 四川长虹电器股份有限公司 | 一种网络数字电视升级方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090452A (zh) * | 2007-07-18 | 2007-12-19 | 中国网络通信集团公司 | 机顶盒软件升级方法及升级系统 |
CN101207699A (zh) * | 2006-12-22 | 2008-06-25 | 深圳市同洲电子股份有限公司 | 一种机顶盒升级的方法 |
CN101477471A (zh) * | 2009-01-07 | 2009-07-08 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式系统固件在线升级方法 |
US20090254966A1 (en) * | 2008-04-04 | 2009-10-08 | Hugh Josephs | Methods and apparatus for upgrading set top box devices without the loss of stored content |
CN101557416A (zh) * | 2008-04-11 | 2009-10-14 | 北京闻言科技有限公司 | 基于Http的手机客户端与服务器端数据合并的轻量级方法 |
-
2012
- 2012-09-29 CN CN201210371502.6A patent/CN102890638B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101207699A (zh) * | 2006-12-22 | 2008-06-25 | 深圳市同洲电子股份有限公司 | 一种机顶盒升级的方法 |
CN101090452A (zh) * | 2007-07-18 | 2007-12-19 | 中国网络通信集团公司 | 机顶盒软件升级方法及升级系统 |
US20090254966A1 (en) * | 2008-04-04 | 2009-10-08 | Hugh Josephs | Methods and apparatus for upgrading set top box devices without the loss of stored content |
CN101557416A (zh) * | 2008-04-11 | 2009-10-14 | 北京闻言科技有限公司 | 基于Http的手机客户端与服务器端数据合并的轻量级方法 |
CN101477471A (zh) * | 2009-01-07 | 2009-07-08 | 杭州海康威视数字技术股份有限公司 | 一种嵌入式系统固件在线升级方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957455B (zh) * | 2014-04-01 | 2018-04-27 | 深圳创维数字技术有限公司 | 机顶盒升级方法及系统、机顶盒 |
CN103957455A (zh) * | 2014-04-01 | 2014-07-30 | 深圳创维数字技术股份有限公司 | 机顶盒升级方法及系统、机顶盒 |
CN105376646A (zh) * | 2015-11-18 | 2016-03-02 | 深圳创维数字技术有限公司 | 一种机顶盒升级程序配置方法及装置 |
CN105376646B (zh) * | 2015-11-18 | 2019-02-12 | 深圳锋芒信息技术有限公司 | 一种机顶盒升级程序配置方法及装置 |
CN105472418A (zh) * | 2015-12-28 | 2016-04-06 | 深圳创维数字技术有限公司 | 一种机顶盒系统异常状态恢复方法及机顶盒 |
CN106502726A (zh) * | 2016-09-30 | 2017-03-15 | 乐视控股(北京)有限公司 | 离线更新方法、装置以及终端 |
CN107172493A (zh) * | 2017-04-26 | 2017-09-15 | 贵州省广播电视信息网络股份有限公司 | 一种能兼容不同分区类型的ota升级方法 |
CN107172493B (zh) * | 2017-04-26 | 2020-08-04 | 贵州省广播电视信息网络股份有限公司 | 一种能兼容不同分区类型的ota升级方法 |
CN107613286A (zh) * | 2017-08-30 | 2018-01-19 | 深圳市芯智科技有限公司 | 一种用于避免重复测试机顶盒的文件监测方法 |
CN108196870A (zh) * | 2017-12-29 | 2018-06-22 | 北京臻迪科技股份有限公司 | 升级方法及装置 |
CN109151590A (zh) * | 2018-11-02 | 2019-01-04 | 四川长虹电器股份有限公司 | 一种双向数字电视升级方法 |
CN109189455A (zh) * | 2018-11-02 | 2019-01-11 | 四川长虹电器股份有限公司 | 一种网络数字电视升级方法 |
CN109151590B (zh) * | 2018-11-02 | 2021-01-26 | 四川长虹电器股份有限公司 | 一种双向数字电视升级方法 |
CN109189455B (zh) * | 2018-11-02 | 2021-08-06 | 四川长虹电器股份有限公司 | 一种网络数字电视升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102890638B (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102890638B (zh) | 一种机顶盒升级方法 | |
CN102082965B (zh) | 一种保障机顶盒升级成功的方法 | |
US6704933B1 (en) | Program configuration management apparatus | |
CN102662689B (zh) | 基于usb接口的嵌入式软件升级方法及系统 | |
CN102081532B (zh) | 一种机顶盒功能动态升级的方法 | |
CN111263354B (zh) | 一种ota差分升级方法及装置 | |
CN108874426B (zh) | 一种应用程序更新方法、装置及可读存储介质 | |
CN103593289A (zh) | 一种安卓机顶盒生产测试软件的设计方法 | |
CN103686363A (zh) | 一种支持双操作系统的机顶盒及其操作系统切换方法 | |
KR20200090010A (ko) | 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체 | |
CN109089108A (zh) | 测试方法及系统 | |
CN102141926A (zh) | 一种应用程序管理方法、装置以及数字电视机顶盒 | |
CN106648685A (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
US20120170908A1 (en) | Video reproduction apparatus, control method thereof, and computer-readable storage medium storing program | |
CN103442272A (zh) | 一种系统升级的方法 | |
CN108984198A (zh) | 一种Android系统的升级方法及装置 | |
CN105744366A (zh) | 一种机顶盒的数据配置共享方法及系统 | |
CN106325911A (zh) | 一种实现bootrom升级的方法及装置 | |
CN112306368B (zh) | 一种emmc扩展用户数据分区的方法及装置 | |
CN109002314A (zh) | 软件更新方法、装置、电子设备及存储介质 | |
CN105468420B (zh) | 操作系统升级方法和装置 | |
CN107172493B (zh) | 一种能兼容不同分区类型的ota升级方法 | |
CN102629998B (zh) | 一种可批量升级的电视机的批量升级、开机引导方法 | |
CN105025364A (zh) | 一种智能电视ota延迟升级的方法 | |
GB2344198A (en) | Storing reference information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150715 Termination date: 20190929 |
|
CF01 | Termination of patent right due to non-payment of annual fee |