一种软件升级方法及装置技术领域
本发明涉及通信技术领域,尤其涉及一种软件升级方法及装置。
背景技术
空中下载(英文:Over the Air,简称:OTA)技术是一种通过无线
网络进行数据下载的技术,其通常被应用于手机、平板电脑等终端设备
的系统软件固定版本的升级过程中。现有的OTA升级过程具体为,终
端设备发起一次新版本检测,服务器向该终端设备返回一个下载路径,
以便该终端设备根据该下载路径获得一个OTA升级包,然后终端设备
进入恢复Recovery模式,在Recovery模式下,按照终端设备中存储的
分区表,将该OTA升级包中的升级文件写入到对应的分区中,从而自
动完成系统的升级。
但是当新版本的分区表发生变化,即新版本对应的分区表与终端设
备本地软件当前版本对应的分区表不同时,由于终端设备获取的OTA
升级包中的升级文件需要按照该OTA升级包对应新版本的分区表写入
对应分区,而终端设备只会按照终端设备当前使用的分区表对应分区来
写入升级文件,此时,如果终端设备强制升级会导致终端设备无法开机,
甚至使得终端设备系统崩溃,无法运行。
发明内容
本发明的实施例提供一种软件升级方法及装置,能够实现终端设备
分区表的动态升级,从而保证终端设备的系统能够成功升级。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种软件升级方法,包括:
从服务器获取OTA升级包,所述OTA升级包包括用于将终端设备
中存储的本地软件从当前版本升级至最新版本的升级包、用于升级软件
的目标分区表以及用于升级所述终端设备当前使用分区表的分区表升
级程序;
从所述OTA升级包中解析出所述系统升级包、所述目标分区表以
及所述分区表升级程序,运行所述分区表升级程序,将所述终端设备当
前使用的分区表升级至所述目标分区表;
根据所述目标分区表重新对所述终端设备的存储器进行分区,并根
据所述系统升级包将分区后的各分区中的系统文件升级。
第二方面,提供一种空中下载软件升级装置,包括:
获取模块,用于从服务器获取OTA升级包,所述OTA升级包包括
用于将终端设备中存储的本地软件从当前版本升级至最新版本的系统
升级包、用于升级软件的目标分区表以及用于升级所述终端设备当前使
用分区表的分区表升级程序;
解析模块,用于从所述获取模块获取的所述OTA升级包中解析出
所述系统升级包、所述目标分区表以及所述分区表升级程序;
第一升级模块,用于运行所述解析模块解析出的所述分区表升级程
序,将所述终端设备当前使用的分区表升级为所述目标分区表;
第二升级模块,用于根据所述目标分区表重新对所述终端设备的存
储器进行分区,并根据所述解析模块得到的所述系统升级包将分区后的
各分区中的系统文件升级。
本发明的实施例提供的软件升级方法及装置,该软件升级装置从服
务器获取OTA升级包,该OTA升级包包括用于将终端设备中存储的本
地软件从当前版本升级至最新版本的系统升级包、用于升级软件的目标
分区表以及用于升级终端设备当前使用分区表的分区表升级程序,接
着,该装置从OTA升级包中解析出该系统升级包、目标分区表以及分
区表升级程序,运行该分区表升级程序,将终端设备当前使用的分区表
升级至目标分区表,最后,根据该目标分区表重新对终端设备的存储器
进行分区,并根据该系统升级包将分区后的各分区中的系统文件升级。
这样在OTA升级包对应的分区表与终端设备本地软件当前版本对应的
分区表不同时,终端设备通过OTA升级包中携带的分区表升级程序,
来将终端设备当前使用的分区表升级至目标分区表,使得目标分区表使
能,从而使得终端设备中使用的分区表与升级包相互匹配,从而保证了
终端设备能够实现终端设备系统的升级。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述
中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,
在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件升级方法的流程示意图;
图2为本发明实施例提供的另一种软件升级方法的流程示意图;
图3为本发明实施例提供的一种软件升级装置的结构示意图;
图4为本发明实施例提供的另一种软件升级装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案
进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实
施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术
人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本
发明保护的范围。
本发明的实施例提供一种空中下载软件升级方法,如图1所示,该
方法具体包括如下步骤:
101、软件升级装置从服务器获取OTA升级包。
本实施例中,软件升级装置应用于终端设备。
示例性的,本实施例中的OTA升级包包括用于将终端设备中存储
的本地软件从当前版本升级至最新版本的系统升级包、用于升级软件的
目标分区表以及用于升级终端设备当前使用分区表的分区表升级程序。
其中,本实施例中分区表升级程序可以是服务器制作的新的recovery程
序,来运行目标分区表。
示例性的,终端设备发起一次新版本检测,当检测到该终端设备存
储的本地软件当前版本与新版本不同时,终端设备会向服务器发送版本
升级请求,而服务器在接收到该版本升级请求后,可以直接向该终端设
备返回一个OTA升级包,也可以向该终端设备返回一个下载路径,以
便该终端设备根据该下载路径从网络服务器侧获得服务器预先发布至
网络服务器的OTA升级包。
需要说明的是,上述的版本升级请求包含终端设备的本地软件的当
前版本的版本号,若该本地软件当前版本不是最新版本,且该本地软件
当前版本对应的分区表与最新版本对应的分区表不同时,服务器会制作
用于驱动最新版本的分区表(即本实施例中的目标分区表)的分区表升
级程序,然后制作基于制作好的分区表升级程序以及最新版本的分区表
的OTA升级包,然后,向终端设备发送包含最新版本的分区表的OTA
升级包。
具体的,终端设备从服务器获取OTA升级包的获取方式可以通过
以下两种方式来获取:
第一种方式:软件升级装置接收服务器通过OTA技术发送的OTA
升级包。
第二种方式:软件升级装置接收所述服务器发送的OTA升级包地
址,从OTA升级包地址下载OTA升级包。
示例性的,终端设备中的软件升级装置从服务器获取包含目标分区
表以及分区表升级程序的OTA升级包的方式可以分为两种,一种是服
务器在接收到终端设备发送的升级请求后,会根据升级请求获取目标分
区表,并制作OTA升级包,然后将制作做好的OTA升级包发送至终端
设备;另一种是服务器将各种版本对应的OTA升级包预先发送至网络,
当服务器接收到终端设备发送的升级请求后,服务器会向终端设备反馈
一个OTA升级包地址,以便终端设备从该OTA升级包地址下载对应的
OTA升级包,需要说明的是,服务器在将包含分区表的OTA升级包发
送至网络设备之前,可以对包含分区表的OTA升级包进行标记(例如,
在包含分区表的OTA升级包中添加该分区表的版本号),从而将包含
分区表的OTA升级包与现有的普通OTA升级包(即未包含分区表的
OTA升级包)进行区分。
102、软件升级装置从OTA升级包中解析出系统升级包、目标分区
表以及分区表升级程序,运行该分区表升级程序,将终端设备当前使用
的分区表升级至目标分区表。
103、软件升级装置根据目标分区表重新对终端设备的存储器进行
分区,并根据系统升级包将分区后的各分区中的系统文件升级。
示例性的,软件升级装置根据目标分区表重新对终端设备的存储器
进行分区后,会根据目标分区表中各分区的分区参数(分区地址、分区
大小),从系统升级包中获取各个分区对应的系统文件的升级文件,并
将各个分区对应的系统文件的升级文件加载至各个分区,其中,上述的
升级文件用于将对应分区中的系统文件升级至最新版本。
本发明的实施例提供的软件升级方法,该软件升级装置从服务器获
取OTA升级包,该OTA升级包包括用于将终端设备中存储的本地软件
从当前版本升级至最新版本的系统升级包、用于升级软件的目标分区表
以及用于升级终端设备当前使用分区表的分区表升级程序,接着,该装
置从OTA升级包中解析出系统升级包、目标分区表以及分区表升级程
序,运行该分区表升级程序,将终端设备当前使用的分区表升级至目标
分区表,最后,根据该目标分区表重新对终端设备的存储器进行分区,
并根据系统升级包将分区后的各分区中的系统文件升级。这样在OTA
升级包对应的分区表与终端设备本地软件当前版本对应的分区表不同
时,终端设备通过OTA升级包中携带的分区表升级程序,来将终端设
备当前使用的分区表升级至目标分区表,使得目标分区表使能,从而使
得终端设备中使用的分区表与升级包相互匹配,从而保证了终端设备能
够实现终端设备系统的升级。
本发明的实施例提供一种软件升级方法,本实施例中的分区表升级
程序新的恢复recovery程序,基于此,如图2所示,本实施例提供的软
件升级方法包括如下步骤:
201、软件升级装置从服务器获取OTA升级包。
其中,本实施例中的OTA升级包包括用于将终端设备中存储的本
地软件从当前版本升级至最新版本的升级包、用于升级软件的目标分区
表以及用于升级终端设备当前使用分区表的新的recovery程序。
202、软件升级装置从OTA升级包中解析出系统升级包、目标分区
表以及分区表升级程序,并自动进入recovery模式,将终端设备中的
recovery程序升级为新的recovery程序。
203、软件升级装置重启系统,运行该新的recovery程序,进入
recovery模式,将该终端设备当前使用的分区表升级至目标分区表。
204、软件升级装置根据目标分区表重新对终端设备的存储器进行
分区,并根据系统升级包将分区后的各分区中的系统文件升级。
需要说明的是,本实施例中的步骤201、204中描述的过程可以直
接参照上一实施例中的步骤101、103中的详细描述,本实施例不再赘
述。
本发明的实施例提供的软件升级方法,该软件升级装置从服务器获
取OTA升级包,该OTA升级包包括用于将终端设备中存储的本地软件
从当前版本升级至最新版本的系统升级包、用于升级软件的目标分区表
以及用于升级终端设备当前使用分区表的新的recovery程序,接着,该
装置从OTA升级包中解析出系统升级包、目标分区表以及分区表升级
程序,并自动进入recovery模式,将终端设备中的recovery程序升级为
新的recovery程序,重启系统,运行该新的recovery程序,将终端设备
当前使用的分区表升级至目标分区表,最后,根据该目标分区表重新对
终端设备的存储器进行分区,并根据系统升级包将分区后的各分区中的
系统文件升级。这样在OTA升级包对应的分区表与终端设备本地软件
当前版本对应的分区表不同时,终端设备通过OTA升级包中携带的新
的recovery程序,来将终端设备当前使用的分区表升级至目标分区表,
使得目标分区表使能,从而使得终端设备中使用的分区表与升级包相互
匹配,从而保证了终端设备能够实现终端设备系统的升级。
本发明的实施例提供一种软件升级装置,该装置用于实现上述实施
例描述的软件升级方法,该装置应用于终端设备,如图3所示,该装置
3包括:获取模块31、解析模块32、第一升级模块33及第二升级模块
34,其中:
获取模块31,用于从服务器获取OTA升级包,该OTA升级包包括
用于将终端设备中存储的本地软件从当前版本升级至最新版本的系统
升级包、用于升级软件的目标分区表以及用于升级该终端设备当前使用
分区表的分区表升级程序。
解析模块32,用于从获取模块31获取的OTA升级包中解析出系统
升级包、目标分区表以及分区表升级程序。
第一升级模块33,用于运行解析模块32解析出的分区表升级程序,
将终端设备当前使用的分区表升级为目标分区表。
第二升级模块34,用于根据目标分区表重新对终端设备的存储器进
行分区,并根据解析模块32得到的系统升级包将分区后的各分区中的
系统文件升级。
可选的,上述的获取模块31具体用于:
接收服务器通过OTA技术发送的OTA升级包;
或者,接收服务器发送的OTA升级包地址,从OTA升级包地址下
载OTA升级包。
可选的,上述的分区表升级程序为新的恢复recovery程序;如图4
所示,该装置3还包括:第三升级模块35,其中:
第三升级模块35,用于进入recovery模式,将终端设备中的recovery
程序升级为新的recovery程序。
第一升级模块33具体用于:重启系统,运行新的recovery程序,
进入recovery模式,将终端设备当前使用的分区表升级至目标分区表。
可选的,第二升级模块34在根据解析模块32得到的系统升级包将
分区后的各分区中的系统文件升级时具体用于:
在分区结束后,根据目标分区表中各分区的分区参数,从解析模块
32得到的升级包中获取各个分区对应的系统文件的升级文件,并将各个
分区对应的系统文件的升级文件加载至各个分区,该升级文件用于将分
区中的系统文件升级至最新版本。
本发明的实施例提供的软件升级装置,该软件升级装置从服务器获
取OTA升级包,该OTA升级包包括用于将终端设备中存储的本地软件
从当前版本升级至最新版本的系统升级包、用于升级软件的目标分区表
以及用于升级终端设备当前使用分区表的分区表升级程序,接着,该装
置从OTA升级包中解析出系统升级包、目标分区表以及分区表升级程
序,运行该分区表升级程序,将终端设备当前使用的分区表升级至目标
分区表,最后,根据该目标分区表重新对终端设备的存储器进行分区,
并根据系统升级包将分区后的各分区中的系统文件升级。这样在OTA
升级包对应的分区表与终端设备本地软件当前版本对应的分区表不同
时,终端设备通过OTA升级包中携带的分区表升级程序,来将终端设
备当前使用的分区表升级至目标分区表,使得目标分区表使能,从而使
得终端设备中使用的分区表与升级包相互匹配,从而保证了终端设备能
够实现终端设备系统的升级。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方
法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是
示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实
现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集
成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或
讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装
置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开
的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于
一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选
择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单
元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集
成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以
采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计
算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包
括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或
者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的
存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简
称ROM)、随机存取存储器(Random Access Memory,简称RAM)、
磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非
对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的
普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案
进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替
换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。