一种移动终端空中固件升级方法及装置的制作方法

文档序号:7716672阅读:110来源:国知局
专利名称:一种移动终端空中固件升级方法及装置的制作方法
技术领域
本发明涉及移动终端设备的空中固件升级技术(FOTA :Firmware Over TheAir), 尤其涉及一种基于FOTA的移动终端空中固件升级方法及装置。
背景技术
在强调"以客户为中心"的通信市场中,移动终端运营商越来越将客户体验放在突 出位置,便捷性是用户选择服务时首先考虑的一个因素,这正是近年来FOTA越来越多地被 应用在移动业务中的一个关键因素。以手机为例,对用户而言,通过FOTA可以使用户保持 手机软件为最新版本,可以选择适合用户生活方式的软件功能、应用程序和服务来进行个 性化,特别是在3G时代,手机中增加的新功能将会越来越多,而用户只需按一下手机键,就 可以享受到新的应用和服务。对厂商而言,在最初的手机软件设计中难免存在缺陷,利用 FOTA,可以降低手机召回或者大量返修的成本,并在一定程度上縮短手机研发上市所需的 时间。可见,FOTA给用户带来便捷性的同时也为运营商带来了巨大的商业利益,但是FOTA 技术毕竟是一个新兴的技术,将FOTA技术成熟地应用于移动终端设备还有很大一步。
典型地,FOTA固件升级的整个流程如图l所示是由固件版本1和固件版本2生成 一个差分包(Delta Package)(步骤101),差分包通过无线下载到移动终端的闪存(flash) 存储器(步骤102),然后移动终端运行FOTA升级代码,使用差分包将固件版本1升级到固 件版本2 (步骤103)。图2a描述了传统移动终端使用差分包进行固件升级的流程图,图2b 为对应其内部flash存储器的空间布局情况图。首先,读取flash存储器中的差分包并对 其进行验证,确认是本次FOTA升级所使用的差分包(步骤201),接着读取固件版本1的标 识,确认是待升级的固件版本1 (步骤202)。如果以上两步确认无误之后,启动FOTA升级 (步骤203),升级成功后移动终端的flash存储器中固件版本1将升级到固件版本2 (步骤 204);如果以上两步确认返回"否"或者升级失败,FOTA升级就会返回失败(步骤205)。
FOTA升级失败的原因很多,例如无效的差分包、无效的固件版本、差分包太大、 flash存储器擦写错误等等,所以在FOTA升级开发中,如果没有好的方法,研发人员在定位 升级失败原因上将会花费很多时间,而且更为重要的一点是,客户使用FOTA升级固件版本 时失败,送到售后修复之后,售后因为不知道失败原因而不能将其反馈给研发人员进行优 化更改。因此,在传统的移动终端FOTA升级方法上有改进的必要。

发明内容
本发明的主要目的在于提供一种移动终端空中固件升级方法及装置,以解决固件 升级失败无法定位失败原因导致不能快速而且准确地优化FOTA升级程序的技术问题。
为实现上述发明目的,本发明采用的技术方案如下
—种移动终端空中固件升级方法,包括 在进行空中固件升级(FOTA)之前,验证差分包和固件版本的正确性,将验证过程 中产生的验证信息记录在移动终端的闪存存储器上;若验证失败则在移动终端上显示验证失败的原因; 在验证通过后,使用所述差分包和移动终端上的固件版本生成的合成版本进行固 件版本的升级,在升级过程中将升级过程中将产生的升级信息记录在移动终端的闪存存储 器上;若升级失败则在移动终端上显示升级失败的原因。 进一步地,验证固件版本和通过无线下载的差分包的正确性方法为
Al、读取所述差分包中的用于差分包验证的魔术字,将其移动终端保存的魔术字 进行对比,判断所述差分包是否是匹配本次升级的差分包,若是,则执行步骤A2 ;否则在终 端设备上显示验证失败的原因; A2、读取移动终端上的固件版本的版本号,将其差分包中包含的待升级的固件版 本号进行对比,判断两个固件版本号是否相同,若是则执行固件版本的升级,否则在终端设 备上显示验证失败的原因。
进一步地,所述固件版本的升级步骤为 执行移动终端闪存存储器中的F0TA升级代码,交替执行下述步骤,直到移动终端 内部闪存存储器上的固件版本升级到新的固件版本为止; Bl、使用差分包和移动终端内部闪存存储器上的固件版本生成合成版本; B2、擦除移动终端内部闪存存储器上的固件版本的部分版本; B3、将所述合成版本写入移动终端内部闪存存储器上的固件版本的被擦除之处。 本发明还提出一种移动终端空中固件升级装置,包括 F0TA固件升级主模块,用于移动终端固件版本的升级; F0TA固件升级支持模块,用于将F0TA固件升级主模块在进行固件版本升级过程
中产生的信息记录到移动终端的闪存存储器上。 进一步地,所述F0TA固件升级主模块包括 固件版本和差分包验证模块,用于验证固件版本和差分包的正确性; F0TA升级模块,用于读取移动终端闪存存储器上的F0TA升级代码执行固件版本
的升级。 进一步地,所述F0TA固件升级支持模块包括 升级信息记录模块,用于在移动终端闪存存储器上记录FOTA固件升级主模块在 进行固件版本和差分包的正确性验证过程中产生的验证信息,以及在进行固件版本的升级 过程中产生的升级信息; 升级信息显示模块,用于读取升级信息记录模块存储的验证信息和升级信息,并 进行显示。 采用本发明所述方法,与现有技术相比,可以在无需增加硬件设备的情况下,快 速而且准确地定位F0TA升级失败原因,保证了优化F0TA升级程序的时效性和精确性,将 FOTA升级失败的概率降到最低,提高了客户使用的满意度;另一方面,也大大的縮短了开 发FOTA固件升级技术的周期。 本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。


图1为典型的基于F0TA技术的移动终端固件升级整个流程示意图; 图2a和2b为传统的移动终端侧固件升级流程图和对应其内部flash存储器的空
间布局图; 图3为本发明实施例的移动终端侧固件升级框图; 图4a和图4b为本发明实施例的移动终端侧固件升级流程图和对应其内部flash 存储器的空间布局图。
具体实施例方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实 施例仅用于说明和解释本发明,并不用于限定本发明。 图3为本发明实现移动终端空中固件升级的装置逻辑结构示意图,该装置主要包 括两大模块FOTA固件升级主模块和FOTA固件升级支持模块。 其中,FOTA固件升级主模块用于实现固件版本的完整的升级过程,FOTA固件升级 主模块进一步地包括 固件版本和差分包验证模块(301),用于验证待升级的固件版本和通过无线下载 的差分包的正确性; FOTA升级模块(302):用于读取移动终端flash存储空间中的FOTA升级代码执行 固件版本的升级。 其中,FOTA固件升级支持模块用于记录FOTA升级验证阶段和FOTA固件版本升级 阶段产生的验证信息和升级信息,如果有必要,将重要的验证信息和升级信息显示在移动 终端设备上。 其中,FOTA固件升级支持模块包括两个部分升级信息记录模块(303),用于记录 和保存信息;升级信息显示模块(304),用于显示升级失败原因。 进一步的,升级信息记录模块(303)具备获取信息和保存信息两个功能。获取 信息功能是通过在程序中读取关键函数返回值来获取。保存信息功能是将得到的信息通 过调用写flash存储器的接口函数保存,需要增加某些算法达到保存信息的连续性和占用 flash存储器空间最少的目的。所用算法形式不限。 进一步的,升级信息显示模块(304)具备读取信息和显示信息两个功能。读取信 息功能是通过调用读flash存储器的接口函数读取。显示信息功能将读到的信息通过某种 方式显示在终端设备上。所用显示方式不限。 图4a为本发明中的移动终端侧固件升级流程图,图4b为对应其内部flash存储 器的空间布局图,具体方法步骤如下 当移动终端被触发需要进行固件升级操作,此触发的实施可以是网络端触发(例 如运营商的客户端服务器),或者是客户自触发(通过选择固件更新菜单),并且确保差分 包已经通过无线下载到移动终端内部的flash存储器中,重启移动终端,开始运行FOTA固 件升级操作。 步骤401,固件版本和差分包验证模块对差分包进行验证,同时升级信息记录模块 记录验证过程中产生的验证信息于移动终端内部的flash存储器上;验证的方式为读取通过无线下载的差分包的魔术字,将其与移动终端中保存的魔术字进行对比,判断这个差 分包是否是匹配本次升级的差分包,如果是,则执行步骤402 ;如果不是,则通过升级信息 显示模块在终端设备上显示升级失败的原因及解决方法等信息,例如"差分包不符,请重
新下载匹配的差分包",以此提示用户,显示30秒后重启终端设备,终端运行的版本还是固
件版本1。所说的魔术字为运营商与移动终端侧共同约定的一个专用于差分包校验的数据
字段,在初始情况下写入移动终端的flash存储器中。 步骤402,固件版本和差分包验证模块对固件版本进行验证,同时升级信息记录模 块记录验证信息于移动终端内部的flash存储器上;验证的方式为读取所述差分包中的 固件版本的版本号,将其与移动终端中现有的固件版本的固件版本号进行对比,判断固件 版本是否是待升级的固件版本。如果是,则执行步骤403 ;否则通过升级信息显示模块在终 端设备上显示升级失败的原因及解决方法等信息,例如"固件版本不符,请重新下载匹配
的差分包",以此提示用户,显示30秒后重启终端设备,终端运行的版本还是固件版本1。
步骤403,启动FOTA升级模块进行固件版本升级,同时升级信息记录模块记录升 级信息于移动终端内部的flash存储器上。
FOTA固件版本升级的步骤为 读取在移动终端的flash存储器上存储的FOTA升级代码,所述FOTA升级代码交 替执行下述步骤直到移动终端存储器上的固件版本升级到固件版本2为止(a)使用差分 包和固件版本1生成合成版本;(b)擦除固件版本1的待升级处;(c)将合成版本写入固件 版本1的擦除之处。 步骤404, FOTA升级模块判断升级是否成功,若"升级成功",则重启终端设备,重 启后,终端运行的版本为固件版本2。如果返回"升级失败",则通过读取flash存储器上的 升级信息在移动终端上显示升级失败的原因。 一般地,如果FOTA固件升级模块(302)返回 "升级失败",此时移动终端内部flash存储器上的固件版本1已经被修改了,又没有完全升 级到固件版本2,移动终端将不能继续使用,所以客户需要将终端设备送到售后进行修复, 售后在修复手机时就需要将保存在移动终端内部flash存储器上的升级信息拷贝下来及 时提供给研发人员进行解决。 对应地,移动终端内部flash存储器内容变化见图4b中的405和406,运行FOTA固 件升级操作之后,flash存储器上的内容变化有二 一是固件版本1变化到固件版本2 (完 整的固件版本2或不完整的固件版本2,分别对应升级成功和升级失败);二是flash存储 器上保存了本次升级的验证信息和升级信息。 下面对FOTA升级失败出现的原因进行说明,以体现本发明的优点 第一种是可修复的升级失败,错误类型常见于"差分包不符"、"固件版本不符"、
"差分包文件太大"、"缺少升级描述文件"等等。也就是,差分包和待升级的固件版本不匹
配,出现这种情况可能是用户下载的差分包不正确不完整或者终端设备中的固件版本不需
要升级等等。如果用户将终端设备送到售后询问原因,售后人员就可以根据存储在flash
上的升级信息来正确指导用户下载正确的差分包,或者更好的方法是在FOTA固件升级使
用手册中注明此种错误对应的解决方法,在出售终端设备时附上此使用手册。因为这种失
败不影响终端设备的使用,所以可以利用本发明所述方法很好的解决,提高了用户使用的
满意度。
第二种是不可修复的升级失败,错误类型常见于"存储器(擦)写错误"、"存储器 的坏块过多"等等。这种升级失败多是和移动终端内部flash存储器操作有关系,待升级 的固件版本就是存储在flash中,所以一旦flash存储器出现操作错误,很多都是不可修复 的。虽然可以采用新增flash存储器备份固件版本l,原flash存储器出现错误操作时可以 恢复,但是这样就会大大的增加终端设计成本,而且需要在硬件设计上进行改动。利用本发 明所述方法,虽然不能够避免这种错误的发生,但可以在不增加任何硬件设备,不修改硬件 设计的基础上,通过软件的方法快速而且准确地定位FOTA升级失败原因,保证了优化FOTA 升级程序的时效性和精确性,将FOTA升级失败的概率降到最低,同时,利用保存的升级信 息,很大程度上縮短了开发周期,提高了开发效率。 以上所述仅为本发明的优选示例而已,并不用于限制本发明,对于本领域的技术 人员来说,本发明可以有各种更改和变化,凡在本发明的精神和原则之内,所做的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种移动终端空中固件升级方法,其特征在于,包括在进行空中固件升级(FOTA)之前,验证差分包和固件版本的正确性,将验证过程中产生的验证信息记录在移动终端的闪存存储器上;若验证失败则在移动终端上显示验证失败的原因;在验证通过后,使用所述差分包和移动终端上的固件版本生成的合成版本进行固件版本的升级,在升级过程中将升级过程中将产生的升级信息记录在移动终端的闪存存储器上;若升级失败则在移动终端上显示升级失败的原因。
2. 根据权利要求1所述的方法,其特征在于,验证固件版本和通过无线下载的差分包 的正确性方法为Al、读取所述差分包中的用于差分包验证的魔术字,将其移动终端保存的魔术字进行 对比,判断所述差分包是否是匹配本次升级的差分包,若是,则执行步骤A2 ;否则在终端设 备上显示验证失败的原因;A2、读取移动终端上的固件版本的版本号,将其差分包中包含的待升级的固件版本号 进行对比,判断两个固件版本号是否相同,若是则执行固件版本的升级,否则在终端设备上 显示验证失败的原因。
3. 根据权利要求1或2所述的方法,其特征在于,所述固件版本的升级步骤为 执行移动终端闪存存储器中的FOTA升级代码,交替执行下述步骤,直到移动终端内部闪存存储器上的固件版本升级到新的固件版本为止;B1 、使用差分包和移动终端内部闪存存储器上的固件版本生成合成版本; B2、擦除移动终端内部闪存存储器上的固件版本的部分版本; B3、将所述合成版本写入移动终端内部闪存存储器上的固件版本的被擦除之处。
4. 一种移动终端空中固件升级装置,其特征在于,包括 F0TA固件升级主模块,用于移动终端固件版本的升级;F0TA固件升级支持模块,用于将F0TA固件升级主模块在进行固件版本升级过程中产 生的信息记录到移动终端的闪存存储器上。
5. 根据权利要求4所述的装置,其特征在于,所述F0TA固件升级主模块包括 固件版本和差分包验证模块,用于验证固件版本和差分包的正确性;F0TA升级模块,用于读取移动终端闪存存储器上的F0TA升级代码执行固件版本的升级。
6. 根据权利要求5所述的装置,其特征在于,所述FOTA固件升级支持模块包括 升级信息记录模块,用于在移动终端闪存存储器上记录FOTA固件升级主模块在进行固件版本和差分包的正确性验证过程中产生的验证信息,以及在进行固件版本的升级过程 中产生的升级信息;升级信息显示模块,用于读取升级信息记录模块存储的验证信息和升级信息,并进行 显示。
全文摘要
本发明公开了一种移动终端空中固件升级方法及装置,以解决固件升级失败无法定位失败原因导致不能快速而且准确地优化FOTA升级程序的技术问题。采用本发明所述方法,可在无需增加硬件设备的情况下,快速而且准确地定位FOTA升级失败原因,保证了优化FOTA升级程序的时效性和精确性,将FOTA升级失败的概率降到最低,提高了客户使用的满意度;另一方面,也大大的缩短了开发FOTA固件升级技术的周期。
文档编号H04W8/24GK101695162SQ20091020437
公开日2010年4月14日 申请日期2009年10月22日 优先权日2009年10月22日
发明者万迪 申请人:中兴通讯股份有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1