一种软件升级方法及装置的制造方法

文档序号:9375269阅读:183来源:国知局
一种软件升级方法及装置的制造方法
【技术领域】
[0001]本发明涉及与消费类无线终端设备(具备连接互联网功能)软件升级相关的技术,特别涉及在手机、UFI/DC等数据类产品上的无线软件升级服务实现。
【背景技术】
[0002]随着人们对通信的需求不断增加以及3/4G通信技术的不断发展,出现了大量的无线类消费电子产品,它们为人们提供了各种各样的数据服务,方便人们随时随地沟通和资源共享。
[0003]当终端产品到被送到用户手中之后,厂商对终端的软件维护就成了一个重大的问题,当厂商需要修复终端软件中的故障或者添加新的功能时,就需要重新改写终端上的软件版本。如果一一把用户手中的终端回收回来进行软件升级,显然是一件费时、费力的工作,为解决该问题便产生了 FOTA(Firmware Over-The-Air)技术,也就是软件的无线升级技术。
[0004]通过空中无线下载的方式有效、可靠的对用户手中的终端软件进行升级。厂商能够更加快速地向市场推出具有新功能的终端并以此提高用户对其终端的满意度和认可度。
[0005]在固件更新环境下,固件都以二进制方式保存在存储介质上,所以文件都可被看作是字节流。基于文件的字节流属性,文件间的差异就可以以字节为单位来精确表示,用仅包含字节间差异的更新包来实现终端软件更新,适合基于无线的软件更新,能为用户节省大批的流量。

【发明内容】

[0006]本发明的目的在于提供一种软件升级方法及装置,能更好地解决提高软件升级成功率的问题。
[0007]根据本发明的一个方面,提供了一种软件升级方法,包括:
[0008]终端根据当前软件版本升级状况,设置对软件版本进行再次升级的时间;
[0009]按照所设置的时间,进行软件版本检测;
[0010]若检测到新软件版本,则无线获取所述新软件版本的升级包;
[0011]利用所获取的升级包,以分区升级方式逐段对分区数据进行升级。
[0012]优选地,所述的终端根据当前软件版本升级状况,设置对软件版本进行再次升级的时间的步骤包括:
[0013]当终端关机而未进行软件版本检测、或终端不需要进行软件升级、或终端未检测到可用升级包、或检测到可用升级包而用户不进行软件升级时,设置第一定长时段,以便终端将软件版本检测及再次升级的时间调整至所述第一定长时段。
[0014]优选地,所述的终端根据当前软件版本升级状况,设置对软件版本进行再次升级的时间的步骤包括:
[0015]当终端发起软件版本检测失败或数据服务不可用时,设置第二定长时段,以便终端将软件版本检测及再次升级的时间调整至所述第二定长时段。
[0016]优选地,所述的利用所获取的升级包,以分区升级方式逐段对分区数据进行升级的步骤包括:
[0017]终端设置用来表征启动软件升级的升级标志;
[0018]确定软件版本当前分区中的一段待升级的分区数据,并将所述分区数据存储至备份数据区;
[0019]对已确定的所述待升级的分区数据进行差分升级处理,并保存所述分区数据的升级状态信息;
[0020]通过对软件版本当前分区中的各段待升级的分区数据依次进行存储和差分升级处理,直至完成软件版本当前分区的软件升级;
[0021]按照软件版本的分区,依次对其它分区中的各段待升级的分区数据进行存储和差分升级处理,直至完成软件版本全部分区的软件升级。
[0022]优选地,还包括:
[0023]终端开机时检测是否已设置升级标志;
[0024]若检测到已设置升级标志,则读取上一次软件升级的升级状态信息,并利用所述升级状态信息,将已存储的分区数据还原至软件版本分区中的相应位置;
[0025]利用已还原的分区数据,再次进行存储和差分升级处理,以便完成软件版本升级。
[0026]根据本发明的另一方面,提供了一种软件升级装置,包括:
[0027]设置模块,用于根据终端当前软件版本升级状况,设置对软件版本进行再次升级的时间;
[0028]检测模块,用于按照所设置的时间,进行软件版本检测;
[0029]获取模块,若检测到新软件版本,则无线获取所述新软件版本的升级包;
[0030]升级模块,用于利用所获取的升级包,以分区升级方式逐段对分区数据进行升级。
[0031]优选地,所述设置模块在终端关机而未进行软件版本检测、或终端不需要进行软件升级、或终端未检测到可用升级包、或检测到可用升级包而用户不进行软件升级时,设置第一定长时段,以便终端将软件版本检测及再次升级的时间调整至所述第一定长时段。
[0032]优选地,所述设置模块在终端发起软件版本检测失败或数据服务不可用时,设置第二定长时段,以便终端将软件版本检测及再次升级的时间调整至所述第二定长时段。
[0033]优选地,所述升级模块用于设置用来表征启动软件升级的升级标志;确定软件版本当前分区中的一段待升级的分区数据,并将所述分区数据存储至备份数据区;对已确定的所述待升级的分区数据进行差分升级处理,并保存所述分区数据的升级状态信息;通过对软件版本当前分区中的各段待升级的分区数据依次进行存储和差分升级处理,直至完成软件版本当前分区的软件升级;按照软件版本的分区,依次对其它分区中的各段待升级的分区数据进行存储和差分升级处理,直至完成软件版本全部分区的软件升级。
[0034]优选地,还包括:
[0035]还原模块,用于在终端开机时检测是否已设置升级标志,若检测到已设置升级标志,则读取上一次软件升级的升级状态信息,并利用所述升级状态信息,将已存储的分区数据还原至软件版本分区中的相应位置,以便利用已还原的分区数据,再次进行存储和差分升级处理,从而完成软件版本升级。
[0036]与现有技术相比较,本发明的有益效果在于:
[0037]其中,版本检测策略实现终端上的定时检测功能,完成定时检测、失败处理等,能够提升FOTA软件下载的成功率;软件改写策略实现终端上的软件版本改写功能,完成对原有软件版本的备份保护及异常掉电引起的数据错误处理。
【附图说明】
[0038]图1是本发明实施例提供的软件升级方法原理框图;
[0039]图2是本发明实施例提供的软件升级装置框图;
[0040]图3是本发明实施例提供的FOTA软件升级的版本检测流程图;
[0041]图4是本发明实施例提供的软件改写时的备份和还原控制策略示意图。
【具体实施方式】
[0042]以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0043]图1是本发明实施例提供的软件升级方法原理框图,如图1所示,步骤包括:
[0044]步骤SlOl:终端根据当前软件版本升级状况,设置对软件版本进行再次升级的时间。
[0045]具体地说,当终端关机而未进行软件版本检测、或终端不需要进行软件升级、或终端未检测到可用升级包、或检测到可用升级包而用户不进行软件升级时设置第一定长时段,当终端发起软件版本检测失败或数据服务不可用时设置第二定长时段,以便终端将软件版本检测及再次升级的时间调整至所述第一或第二定长时段。
[0046]本发明通过对当前软件版本升级状况进行判断,动态地调整软件版本检测及升级的时间,相对于固定时间点进行软件版本检测及升级的技术方案,能够大幅提高软件下载的成功率。
[0047]步骤S102:按照所设置的时间,进行软件版本检测。
[0048]步骤S103:若检测到新软件版本,则无线获取所述新软件版本的升级包。
[0049]步骤S104:利用所获取的升级包,以分区升级方式逐段对分区数据进行升级。
[0050]具体地说,终端设置用来表征开始进行软件升级的升级标志,确定软件版本当前分区中的一段待升级的分区数据,并将所述分区数据存储至备份数据区;对已确定的所述待升级的分区数据进行差分升级处理,并保存所述分区数据的升级状态信息;通过对软件版本当前分区中的各段待升级的分区数据依次进行存储和差分升级处理,直至完成软件版本当前分区的软件升级;按照软件版本的分区,依次对其它分区中的各段待升级的分区数据进行存储和差分升级处理,直至完成软件版本全部分区的软件升级。
[0051]若在软件升级过程中,出现关机等异常情况,终端在再次开机时检测是否已设置升级标志,若检测到已设置升级标志,则读取上一次软件升级的升级状态信息,并利用所述升级状态信息,将已存储的分区数据还原至软件版本分区中的相应位置;然后,利用已还原的分区数据,再次进行存储和差分升级处理,以便完成软件版本升级。
[0052]本发明通过对原有软件版本的备份保护,使终端在发生异常掉电等情况引起的数据错误处理时能够还原原有数据,从而保证软件实现正常升级。
[0053]图2是本发明实施例提供的软件升级装置框图,如图2所示,包括:设置模块21、检测模块22、获取模块23和升级模块24。其中:
[0054]所述设置模块21根据终端当前软件版本升级状况,设置对软件版本进行再次升级的时间,具体地说,在终端关机而未进行软件版本检测、或终端不需要进行软件升级、或终端未检测到可用升级包、或检测到可用升级包而用户不进行软件升级时设置第一定长时段,在终端发起软件版本检测失败或数据服务不可用时设置第二定长时段,以便终端将软件版本检测及再次升级的时间调整至所述第一或第二定长时段。
[0055]所述检测模块22按照所设置的时间,进行软件版本检测。
[0056]所述获取模块23在检测到新软件版本时,无线获取所述新软件版本的升级包。
[0057]所述升级模块24利用所获取的升级包,以分区升级方式逐段对分区数据进行升级,具体地说,所述升级模块24在进行软件升级前,设置用来表征开始进行软件升级的升级标志,然后确定软件版本当前分区中的一段待升级的分区数据,并将所述分区数据存储至备份数据区;对已确定的所述待升级的分区数据进行差分升级处理,并保存所述分区数据的升级状态信息;然后通过对软件版本当前分区中的各段待升级的分区数据依次进行存储和差分升级处理,直至完成软件版本当前分区的软件升级;最后按照软件版本的分区,依次对其它分区中的各段待升级的分区数据进行存储和差分升级处理,直至完成软件版本所有分区的软件升级。
[0058]进一步地,所述装置还进一步包括还原模块,其在终端开机时检测是否已设置升级标志,若检测到已设置升级标志,则读取上一次软件升级的升级状态信息,并利用所述升级状态信息,将已存储的分区数据还原至软件版
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1