专利名称:Fota服务器、终端及其软件版本的处理方法和系统的制作方法
技术领域:
本发明涉及通信领;或,具体而言,涉及一种系统、固件空中下
载(Firmware Over The Air,简称为FOTA )月l务器、终端及其專欠件 片反本的处理方法。
背景技术:
随着移动通信4支术的发展,诸如手才几、固定台、家庭网关等的 无线终端集成了多々某体、个人信息管理和娱乐等功能,逐渐演化为 具有通话功能的"掌上电脑"。
与此同时,无线终端的软件也越来越庞大、越来越复杂。根据 软件产品的研发规律,大型的软件产品不可避免地存在一些缺陷, 并且难以满足所有用户的需求。对于已经售出的无线终端,在用户 的使用过程中,如果发现软件存在缺陷(例如,死机、搜索网络不 正常等),则需要对无线终端的软件版本进4亍升级,另外,如果运营 商增加了新业务,则也需要对软件版本进4于升级。
通常,无线终端的專欠件;l反本的升级方式大致可以有如下两种
户到无线终端的售后月l务点来完成对專欠件片反本的升级,另一种方式一般地,对于软件版本的升级,用户往往是被动接受,用户在 进行软件版本升级之前,并不知道升级后的新版本是否适合自己的 需求。升级到新版本后,如果用户想要恢复软件的老版本,目前有
两种方法
第一种方法是用户在无线终端的售后服务点进行软件老版本的
升级之前,将无线终端的当前片反本存储在无线终端的闪存(FLASH ) 存储单元中,用户在想要恢复软件的老版本时,只需要将存储在 FLASH存^f诸单元中的老X反本对新版本进4亍覆盖即可。
由于第一种方法给用户和制造商都带来了很大地不便,也浪费 了很多的人力物力,目前比较常用的是第二种方法,但是,第二种 方法,耗费的FLASH存储单元的空间几乎要增加一倍,这就需要 Y吏用成本更高的FLASH, 乂人而大大增加了终端的整体成本。
发明内容
针对上述在无线终端的FLASH存储单元存储老版本软件需要 耗费较多的资源而导致终端增加成本的问题,本发明旨在提供一种 系统、FOTA服务器、终端及其软件版本的处理方法,至少解决上 述问题之一。
才艮据本发明的一方面,提供了 一种终端库欠件版本的处理方法, 包括终端获取来自固件空中下载服务器的正向差分包和逆向差分 包,其中,正向差分包包含有从当前版本更新为新版本的所需的信 息,逆向差分包包含了将新版本还原为当前W反本所需的信息;在终
端通过差分算法调度正向差分包将库欠件;f反本更新为新;f反本之后,通 过差分算法调度逆向差分包将新版本还原为当前版本。根据本发明的另一方面,提供了一种终端,包括存储模块, 用于存储固件空中下载服务器发送的正向差分包和逆向差分包,其 中,正向差分包包含从当前版本更新为新X反本的所需的信息,逆向 差分包包含将新版本还原为当前版本的所需的信息;更新模块,连 接至存储模块,用于根据存储模块中的正向差分包对终端的软件版 本进行升级,将当前版本升级为新版本;触发模块,连接至存储模 块,用于触发调度存储模块中的逆向差分包;还原模块,连接至存 储模块和触发模块,用于在触发模块的触发下调度存储模块中的逆 向差分包,并根据逆向差分包对软件版本进行还原,将新版本还原 为当前版本。
根据本发明的又一方面,提供了一种固件空中下载服务器,用 于向终端发送用于对终端的软件版本进行升级的差分包,其中,差 分包包括正向差分包和逆向差分包,正向差分包包含有>^人当前版本 更新为新版本的所需的信息,逆向差分包包含了将新版本还原为当 前版本的所需的信息。
根据本发明的再一方面,提供了一种软件版本的处理系统,包 括终端和固件空中下载服务器,其中,终端包括存^^莫块,用于 存储固件空中下载服务器发送的正向差分包和逆向差分包,其中, 正向差分包包含从当前版本更新为新版本的所需的信息,逆向差分
包包含将新版本还原为当前版本的所需的信息;更新才莫块,用于使 用正向差分包对终端的软件版本进行升级,将当前版本升级为新版 本;触发模块,用于触发调度逆向差分包;还原模块,用于在触发 模块的触发下调度逆向差分包,并根据逆向差分包对软件版本进行 还原,将新X反本还原为当前片反本;固件空中下载月l务器用于向终端 发送用于对终端的软件版本进行升级的差分包,其中,差分包包括 正向差分包和逆向差分包,正向差分包包含有从当前版本更新为新 版本的所需的信息,逆向差分包包含了将新版本还原为当前版本的 所需的信息。4昔助于上述纟支术方案的至少之一,本发明通过终端获取FOTA 服务器发送的用于从当前版本更新为新版本的正向升级包以及用于 从新版本还原为当前版本的逆向差分包,方^更地实现了软件从新版 本还原为老版本,相比于现有4支术,本发明中的逆向差分由于占用 存储空间4艮少,因此克月l了现有4支术中的在无线终端的FLASH存 储单元存储老版本软件需要耗费较多的资源的问题,从而降低了终
此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并
不构成对本发明的不当限定。在附图中
图1是根据本发明装置实施例二的终端的框图2是才艮据本发明装置实施例二的终端的详细框图3是才艮据本发明装置实施例二的终端中的FLASH存储单元 的存储内容与区域划分的结构图4是根据本发明装置实施例二的终端的软件模块的框图5是才艮据本发明方法实施例的终端^^f牛版本的处理方法的流 程的简单操作示意图7是根据本发明方法实施例的软件版本升级的流程图; 图8是才艮据本发明方法实施例的库t件版本还原的流程图。
具体实施例方式
功能相克述
消耗的终端资源较多导致终端的成本增加的问题,在本发明实施例
提供的软件版本的处理方案中,通过终端获取FOTA月良务器发送的
为当前版本的逆向差分包,方便快捷地实现了软件从新版本还原为 老版本,相比于现有^支术,本发明实施例采用的逆向差分包占用存 储空间较少,可以克服现有技术中在无线终端的FLASH存储单元 存储老版本软件需要耗费较多的资源的问题,从而降低了无线终端 的成本。
下面将参考附图并结合实施例,来详细说明本发明。需要说明 的是,如果不冲突,本申请中的实施例以及实施例中的特征可以相 互组合。
装置实施例一
在本发明实施例中,4是供了一种FOTA月良务器,该FOTA月良务
的差分包可以包纟舌正向差分包和逆向差分包。
其中,正向差分包可以包含有从当前版本更新为新版本的所需 的信息,该正向差分包用于实现软件版本的升级;逆向差分包可以 包含有/人新版本还原为当前X反本所需的信息,该逆向差分包用于实 现升级后的專t件W反本的还原。
上述由FOTA服务器生成的差分包可以包括新/老版本软件之 间的字节差异内容。例如,差分包可以包括插入、删除、修改等操作信息、与操作信息相应的数据内容信息以及相对地址改变信息等。 因此,相比于软件版本的原文件,差分包非常小,通常只有原始软
件版本大小的十分之一左右,这样一方面,所占的存储空间很少, 另 一方面,可以高效地实现新老软件版本之间的切换。
装置实施例二
在本发明实施例中,提供了一种终端,用于接收上述装置实施
例一中的FOTA服务器发送的正向差分包和逆向差分包,该终端包 括存储才莫块IO、更新4莫块12、触发才莫块14、还原冲莫块16,以下
对各才莫块进4于详细的描述。
存储模块10,用于存储FOTA服务器发送的正向差分包和逆向 差分包,其中,正向差分包可以包含从当前版本更新为浙版本的所 需的信息,逆向差分包可以包含将新版本还原为当前版本的所需的 信息。更新模块12,连接至用于存储模块IO,使用存储模块10存 储的正向差分包对终端的软件版本进行升级,将当前版本升级为新 版本。触发模块14,连接至用于存储模块IO,用于触发调度存储模 块10存储的逆向差分包。还原才莫块16,连4妻至用于存储才莫块10和 触发模块14,用于在触发模块14的触发下调度存储模块10存储的 逆向差分包,并根据逆向差分包对软件版本进行还原,将新版本还 原为当前X反本。
通过该实施例,提供了 一种可以方便快捷地实现软件从新版本 还原为老版本的终端,相比于现有4支术,由于实施例采用的逆向差 分包占用存储空间较少,可以克服现有技术中在无线终端的FLASH 存储单元存储老版本软件需要耗费较多的资源的问题,从而降低了 终端成本。图2是根据本发明实施例的终端的详细框图,如图2所示,该 终端包括主处理单元20、无线通信单元21、 FLASH存储单元22、 显示单元23、 4建盘单元24、音频处理单元25和ft据4妄口单元26等。
主处理单元20,对应于上述的更新才莫块12、触发才莫块14和还 原模块16,分别与无线通信单元21、 FLASH存储单元22、显示单 元23、键盘单元24、音频处理单元25和数据接口单元26相连接, 负责无线终端寄存器的读写操作、协调整个系统的运作以及以下各 个单元的管理等。
无线通信单元21,实现终端与网络之间的通信,在具体实施过 程中,无线通信单元21用于捕获搜索网络、与网络进行信息同步、 建立与网络之间的语音及数据链路、与网络之间的数据传递等。
FLASH存储单元22,对应于上述的存储才莫块10,用于存储软 件版本、FOTA差分包及相关数据。图3是FLASH存卡者单元22的 存^f诸内容与区域划分的结构图。如图3所示,BootLoader (导入头) 区域存储系统的引导程序;Code (代码)区域存储系统的可执行代 码;Data(数据)区域存储系统的一些配置数据和用户数据;Fota Package (固件空中下载差分包)区域存储来自FOTA服务器的差分 包,其中,Update Package为正向差分包,即,4巴当前片反本升级到 为新片反本的差分包,Restore Package为逆向差分包,即4巴升级后的 版本还原到升级前版本的差分包。
显示单元23,可以是液晶显示屏(Liquid Crystal Display,简称 为LCD)、发光二级管(Light-Emitting Diode,简称为LED)等显
示设备。键盘单元24,用户直接操作终端的接口。通过键盘,用户可以 对终端进4于控制。
音频处理单元25,主要完成i吾音凄t才居的编解石马。
数据接口单元26,无线终端与PC才几之间的接口 ,可以是USB 接口。通过数据接口单元26,用户就可以在PC机上对无线终端进 行操作。
以上主要从硬件角度对本发明的具体实施进行阐述,以下再从 寿欠件角度对本发明实施例作进一步的i兌明。
本发明实施例的核心软件处理是在主处理单元20中完成的,软 件设计遵循模块化设计思想,图4是该终端的软件才莫块的框图,如 图4所示,该终端包括主控软件子模块40、无线通信软件子模块 41、升级流程控制软件子模块42、差分包下载软件子模块43、引导 (BOOT)启动软件子模块44、版本升级软件子模块45、参数读写 软件子模块46。以下对各个软件子模块进行详细描述。
主控软件子才莫块40,对应于上述的主处理单元20,该才莫块负责 对其它软件子模块的整体调度,负责对硬件状态和软件状态的监控, ^f呆i正整个系统的正常运4亍等。
无线通信软件子才莫块41,对应于上述无线通信单元21,主要负 责与无线网络之间的通信控制,具体可包括捕获搜索网络、与网络 进行信息同步、建立与网络之间的语音及数据链路、与网络之间的 凄t据传递等。
升级流程控制软件子模块42,对应于上述触发模块14,该模块 控制软件版本的升级和还原的流程,例如,控制软件什么时候升级、 是否升级、或者什么时候进行版本还原等。差分包下载软件子模块43,该模块从FOTA服务器上下载 FOTA差分包,并4巴差分包读写到FLASH中的Fota Package区i或。 这里的差分包包4舌正向差分包和逆向差分包。
版本升级软件子模块45,对应于上述更新纟莫块12和还原才莫块 16 ,主要负责利用FLASH存4渚单元22的Fota Package区域中的差 分包和Code区域中的当前版本进行版本的升级或还原。当进行版 本升级时,用正向差分包(Update Package );当进4亍版本还原时, 用逆向差分包(Restore Package )。该才莫块涉及到FLASH的读l喿作。
参数读写软件子模块46,负责进行版本升级或还原中一些控制 参数或标志位的读写。该模块涉及到FLASH存储单元22的读操作 和写操作。
BOOT启动软件子模块47,该模块属于引导程序的范畴,在系 纟充上电后,最先启动。
需要说明的是,上述的FOTA服务器和终端可以单独使用,也 可以相互组合,例如,可以将上述的FOTA服务器和终端组合成为 一种终端软件版本的处理系统,下面对该系统进行描述。
系乡充实施例
在本发明的实施例中,才是供了 一种终端软件版本的处理系统, 其优选地包含上述装置实施例一中的FOTA服务器和上述装置实施 例二中的终端,其中,FOTA服务器向终端发送用于从当前版本更 新为新版本的正向升级包以及用于从新版本还原为当前版本的逆向 差分包,FOTA月良务器和终端的具体结构与装置实施例中的描述相 同,在此不再赘述。该实施例通过FOTA服务器产生并发送用于从当前版本更新为 新版本的正向升级包以及用于从新版本还原为当前版本的逆向差分 包给终端,方便快捷地实现了软件从新版本还原为老版本,相比于 现有技术,本实施例中采用的逆向差分包占用存々者空间比较少,可 以克月k现有才支术中在无线终端的FLASH存々者单元存々者老;f反本寿欠件 需要耗费较多的资源的问题,从而降低了终端成本。
方法实施例
在本发明的实施例中,提供了 一种终端4欠件版本的处理方法, 其优选地应用于上述装置实施例二中的终端,图5是该方法的流禾呈 图,如图5所示,该方法包4舌
步骤S502,终端获取来自FOTA服务器的正向差分包和逆向差 分包,其中,正向差分包包含有从当前版本更新为新版本的所需的 信息,逆向差分包包含了将新版本还原为当前版本所需的信息。这 里的正向差分包和逆向差分包优选地是由上述装置实施例一中的 FOTA服务器生成的,具体地对两者的描述可以参考装置实施例一 , 这里不再赘述。
步骤S504,在终端通过差分算法调度正向差分包将软件版本更 新为新片反本之后,通过差分算法调度逆向差分包将新X反本还原为当 前版本。优选地,这里的差分算法可以包含在上述装置实施例二中 的更新才莫块12和/或还原才莫块16中,更新才莫块12通过差分算法对 当前版本执行正向差分包中的信息,完成库欠件版本的升级,类似;也, 还原才莫块16通过差分算法对升级后的版本执行逆向差分包中的信
息,完成软件;f反本的还原。
由上述描述可以看出,通过在终端4呆存来自FOTA月l务器的正 向差分包和逆向差分包,方便快捷地实现了软件版本的升级和软件从新版本还原为老版本,相比于现有技术中的从新版本还原为老版 本的过程,本发明实施例中的逆向差分占用存储空间比较少,可以
克服现有4支术中的在无线终端的FLASH存々者单元存4诸老;f反本软件 需要耗费较多的资源的问题,从而降低了终端成本。
图6是无线终端通过正向差分包进4亍^:件;f反本的升级和通过逆 向差分包进行软件版本的还原的简单操作示意图。具体地,图7是 本发明实施例中的寿欠件版本的升级的流程示意图,图8是本发明实 施例中的软件版本的还原的流程图。以下结合图7和图8对本发明 实施例进一步描述。
如图7所示,库欠件版本的升级流程包4舌如下的步骤S701至步 艰《S709,具体才喿作々口下
步骤S701, FOTA服务器以短消息或其它方式通知无线终端, 要进行版本升级。
步骤S702 ,无线终端给FOTA服务器反馈响应消息,通知FOT A 服务器可以进行升级,其中,响应消息中包含无线终端是否可以升 级的信息,以及无线终端的硬件和软件版本号信息,这样,便于 FOTA服务器向无线终端发送准确的正向差分包和逆向差分包。
步骤S703, FOTA服务器接收到无线终端的响应消息后,如果 响应消息表示可以进4亍升级,则FOTA月良务器可以以push的方式向 终端发送准备升级通知。
步骤S704,无线终端在接收到FOTA服务器的准备升级通知 后,启动下载模块。该下载模块优选的是上述装置实施例二中的差 分包下载软件子模块43。步骤S705,无线终端与FOTA服务器之间建立标准的PS数据链接。
步骤S706, FOTA服务器向无线终端下传正向差分包和逆向差 分包。
步骤S707,无线终端将接收到的正向差分包和逆向差分包保存 到上述装置实施例二中FLASH存储单元22中的Fota区域。
步骤S708,无线终端利用差分算法及存储在FLASH存储单元 22中的正向差分包,进行软件版本的升级。
步艰《S709,库t件jf反本升级完成后,无线终端向FOTA力l务器 发送版本升级成功状态^^艮告消息。
在实现了无线终端的專欠件版本升级后,如果用户对新版本不满 意,或者用户发现新版本有缺陷,则用户只需要通过图8所示的操 作,就可完成无线终端丰欠件X反本的还原。如图8所示,在无线终端 完成了软件版本的升级后,实现4欠件版本的还原流程包括(步骤 S801 —步骤S809):
步-骤S801,用户不满意库欠件升级后的新版本,需要进4亍片反本还原。
步骤S802,通过用户接口 (例如,键盘)启动软件版本的还原 操作,即,选择菜单中的版本还原命令。
步骤S803,为了避免用户的失i吴操作,在菜单选项中选择还原操作。步骤S804,在还原操作确认为是的情况下,上述装置实施例二 中的参数读写软件子模块46在FLASH存储单元22中设置版本还 原开始标志,这样就能够有效地控制版本还原流程。
步骤S805,系乡充重#斤启动。
步骤S806,通过逆向差分包和差分算法,进行软件版本的还原操作。
步骤S807,还原操作完成后,将菜单选项中的选项选择(更新) 为升级操作。
步骤S808,上述装置实施例二中的参lt读写库欠件子才莫块46在 FLASH存储单元22中设置版本还原结束标志。
步骤S809,系统重启,系统恢复到升级前的版本。至此,版本 还原过程结束。
由上述描述可以看出,通过在终端存书者逆向差分包,可以方《更 快捷地实现升级后的版本的还原,相比于现有4支术中的通过在终端 存4诸老X反本来实现升级后的X反本的还原,本发明实施例4是供的方法 在还原过程中耗用的资源较少。
综上所述,通过终端获取FOTA月良务器发送的正向升级包和逆 向差分包,方《更快捷地实现了软件乂人新W反本还原为老版本,相比于 现有4支术,本发明中的逆向差分由于占用存々者空间4交少,因此克月良 了现有技术中的在无线终端的FLASH存储单元存々者老版本软件需 要耗费较多的资源的问题,从而降低了终端成本。
显然,本领域的技术人员应该明白,上述的本发明的各模块或 各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们 可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成 电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模 块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上〗又为本发明的优选实施例而已,并不用于限制本发明,对 于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均 应包含在本发明的保护范围之内。
权利要求
1. 一种终端软件版本的处理方法,其特征在于,包括终端获取来自固件空中下载服务器的正向差分包和逆向差分包,其中,所述正向差分包包含有从当前版本更新为新版本的所需的信息,所述逆向差分包包含了将所述新版本还原为所述当前版本所需的信息;在所述终端通过差分算法调度所述正向差分包将所述软件版本更新为所述新版本之后,通过所述差分算法调度所述逆向差分包将所述新版本还原为所述当前版本。
2. 根据权利要求1所述的方法,其特征在于,所述信息包括数 据内容信息、与所述数据内容信息对应的操作信息和相对地址 变化信息。
3. —种终端,其特征在于,包括存储模块,用于存储固件空中下栽服务器发送的正向差分 包和逆向差分包,其中,所述正向差分包包含从当前版本更新 为新版本的所需的信息,所述逆向差分包包含将所述新版本还 原为所述当前版本的所需的信息;更新模块,连接至存储模块,用于根据所述存储模块中的 所述正向差分包对终端的库t件版本进^f亍升级,将所述当前X反本 升级为所述新版本;触发模块,连接至所述存储模块,用于触发调度所述存储 模块中的所述逆向差分包;还原模块,连接至所述存储模块和所述触发模块,用于在 所述触发模块的触发下调度所述存储模块中的所述逆向差分包,并根据所述逆向差分包对所述软件版本进行还原,将所述 新片反本还原为所述当前片反本。
4. 一种固件空中下载服务器,其特征在于,所述固件空中下载服叙差分包,其中,所述差分包包括正向差分包和逆向差分包,所 述正向差分包包含有从当前版本更新为新版本的所需的信息, 所述逆向差分包包含了将所述新版本还原为所述当前版本的 所需的信息。一种软件版本的处理系统,包括终端和固件空中下载月l务器, 其特征在于,所述终端包4舌存储模块,用于存储固件空中下载服务器发送的正向差分 包和逆向差分包,其中,所述正向差分包包含从当前版本更新 为新版本的所需的信息,所述逆向差分包包含将所述新版本还 原为所述当前版本的所需的信息;更新模块,用于使用所述正向差分包对终端的软件版本进 4亍升级,将所述当前片反本升级为所述新片反本;触发才莫块,用于触发调度所述逆向差分包;还原模块,用于在所述触发模块的触发下调度所述逆向差 分包,并根据所述逆向差分包对所述软件版本进行还原,将所 述新片反本还原为所述当前版本;所述固件空中下载服务器用于向终端发送用于对所述终 端的软件版本进行升级的差分包,其中,所述差分包包括正向 差分包和逆向差分包,所述正向差分包包含有乂人当前版本更新 为新版本的所需的信息,所述逆向差分包包含了将所述新版本还原为所述当前版本的所需的信息。
全文摘要
本发明提供了一种固件空中下载服务器、终端及其软件版本的处理方法,该终端软件版本的处理方法包括终端获取来自固件空中下载服务器的正向差分包和逆向差分包,其中,正向差分包包含有从当前版本更新为新版本的所需的信息,逆向差分包包含了将新版本还原为当前版本所需的信息;在终端通过差分算法调度正向差分包将软件版本更新为新版本之后,需要时,可以通过差分算法调度逆向差分包将新版本还原为当前版本。本发明克服了现有技术中的在无线终端的FLASH存储单元存储老版本软件需要耗费较多的资源的问题,从而降低了终端的成本。
文档编号H04L29/06GK101420431SQ200810180238
公开日2009年4月29日 申请日期2008年11月28日 优先权日2008年11月28日
发明者孙庚茂, 程 左, 李希鹏 申请人:中兴通讯股份有限公司