一种移动终端的版本升级方法及装置与流程

文档序号:11215966阅读:885来源:国知局
一种移动终端的版本升级方法及装置与流程

本申请是2014年6月27日提出的发明名称为“一种移动终端的版本升级方法及装置”的中国发明专利申请201410299466.6的分案申请。

本发明涉及移动终端的在线升级领域,尤其涉及一种移动终端的版本升级方法及装置。



背景技术:

移动终端上市后,在用户的使用过程中可能会发现一些系统问题,移动终端为解决上市后出现的一系列系统问题,完善系统功能,后期会发布一系列针对此移动终端的系统升级版本。为了方便用户自行解决系统升级问题,移动终端厂商会将问题修复后的系统升级版本压缩为空中下载(overtheair,ota)升级包放到服务器上,方便用户通过移动终端的在线升级功能,升级到最新的版本。

目前,移动终端在系统升级时,只能下载该移动终端的生产厂家的升级包,具体为:移动终端通过key签名对升级包进行校验,只有通过key签名认证的升级包才可以作为可信任的升级包进行移动终端系统升级,从而避免了被恶意软件利用导致系统安全性能的问题。出于第三方测试要求以及安全方面的考虑,通常移动终端在系统升级时需要根据key签名对ota升级包进行校验,即从移动终端的recovery镜像根文件系统中的/res/keys加载公钥源文件,然后加载嵌在ota升级包中的rsa签名信息,并与/res/keys中保存的公钥源文件进行匹配,若匹配成功,则根据ota升级包进行系统升级,否则,校验失败,退出ota升级。

然而,如当前移动终端使用的key签名被破解不得不更换签名,或者开发人员在编译新版本升级包时,将生成t卡版本与生成ota升级包的顺序调换,或在mk文件中使用了testkey,导致升级包与移动终端的签名信息不一致等,则根据key签名对ota升级包的校验将校验失败,导致移动终端无法完成系统升级。



技术实现要素:

本发明实施例为解决现有技术中存在的由于升级包签名校验失败导致的无法完成系统升级的技术问题,提供一种移动终端的版本升级方法及装置,既可避免由于升级包签名校验失败导致的无法完成系统升级,同时又能保证升级包的安全性。

本发明实施例提供的具体技术方案如下:

一种移动终端的版本升级方法,包括:

获取系统升级文件,所述系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,所述中间版本升级文件为所述目标版本升级文件的在先版本,所述中间版本升级文件的签名信息与移动终端的公钥文件相对应,且所述中间版本升级文件中的升级程序不携带校验数据,所述目标版本升级文件中的升级程序携带校验数据;

获取移动终端的公钥文件,并根据所述公钥文件和所述中间版本升级文件的签名信息,将所述移动终端的系统由当前版本升级为中间版本;

在确认升级成功后,继续根据所述目标版本升级文件,将所述移动终端的系统由所述中间版本升级为目标版本。

采用这种方法,通过将移动终端首先升级到中间版本再升级到目标版本,其中,在中间版本升级到目标版本时,不需要对移动终端的公钥文件与目标版本的签名信息进行校验,从而避免了目标版本与移动终端的key签名不一致导致的校验失败,无法完成系统升级的问题。

较佳地,所述中间版本升级文件为相对于移动终端当前版本的升级差分包。

较佳地,所述中间版本升级文件为升级全包。

较佳地,获取系统升级文件,包括:

按照预设的系统升级文件的优先级,获取所述中间版本升级文件后,再获取所述目标版本升级文件。

采用这种方法,可以先获取中间版本升级文件后再获取目标版本升级文件。

较佳地,进一步包括:

若将所述移动终端的系统由所述中间版本升级为目标版本失败,则将所述移动终端的系统回退至所述中间版本,并删除所述系统升级文件中的目标版本升级文件。

采用这种方法,在移动终端的系统升级至目标版本失败时,系统仍然升级到了中间版本,保证系统的更新升级。

一种移动终端的版本升级方法,包括:

接收移动终端的系统升级请求;

根据所述系统升级请求确定系统升级文件,并将所述系统升级文件发送至所述移动终端,所述系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,所述中间版本升级文件为所述目标版本升级文件的在先版本,所述中间版本升级文件的签名与所述移动终端的公钥文件相对应,且所述中间版本升级文件中的升级程序不携带校验数据,所述目标版本升级文件中的升级程序携带校验数据。

采用这种方法,将中间版本升级文件和目标版本升级文件发送值移动终端,保证了移动终端首先升级到中间版本后再升级到目标版本,其中,在中间版本升级到目标版本时,不需要对移动终端的公钥文件与目标版本的签名信息进行校验,从而避免了目标版本与移动终端的key签名不一致导致的校验失败,无法完成系统升级的问题。

较佳地所述中间版本升级文件为相对于移动终端当前版本的升级差分包。

较佳地,所述中间版本升级文件为升级全包。

一种移动终端的版本升级装置,包括:

获取单元,用于获取系统升级文件,所述系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,所述中间版本升级文件为所述目标版本升级文件的在先版本,所述中间版本升级文件的签名信息与移动终端的公钥文件相对应,且所述中间版本升级文件中的升级程序不携带校验数据,所述目标版本升级文件中的升级程序携带校验数据;

第一升级单元,用于获取移动终端的公钥文件,并根据所述公钥文件和所述中间版本升级文件的签名信息,将所述移动终端的系统由当前版本升级为中间版本;

第二升级单元,用于在确认升级成功后,继续根据所述目标版本升级文件,将所述移动终端的系统由所述中间版本升级为目标版本。

这样,通过将移动终端首先升级到中间版本再升级到目标版本,其中,在中间版本升级到目标版本时,不需要对移动终端的公钥文件与目标版本的签名信息进行校验,从而避免了目标版本与移动终端的key签名不一致导致的校验失败,无法完成系统升级的问题。

较佳地,所述中间版本升级文件为相对于移动终端当前版本的升级差分包。

较佳地,所述中间版本升级文件为升级全包。

较佳地,所述获取单元获取系统升级文件,包括:

按照预设的系统升级文件的优先级,获取所述中间版本升级文件后,再获取所述目标版本升级文件。

这样,获取单元可以先获取中间版本升级文件后再获取目标版本升级文件。

较佳地,所述第二升级单元,进一步用于:

若将所述移动终端的系统由所述中间版本升级为目标版本失败,则将所述移动终端的系统回退至所述中间版本,并删除所述系统升级文件中的目标版本升级文件。

这样,第二升级单元可以在移动终端的系统升级至目标版本失败时,系统仍然升级到了中间版本,保证系统的更新升级。

一种移动终端的版本升级装置,包括:

接收单元,用于接收移动终端的系统升级请求;

发送单元,用于根据所述系统升级请求确定系统升级文件,并将所述系统升级文件发送至所述移动终端,所述系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,所述中间版本升级文件为所述目标版本升级文件的在先版本,所述中间版本升级文件的签名与所述移动终端的公钥文件相对应,且所述中间版本升级文件中的升级程序不携带校验数据,所述目标版本升级文件中的升级程序携带校验数据。

这样,服务器将中间版本升级文件和目标版本升级文件发送值移动终端,保证了移动终端首先升级到中间版本后再升级到目标版本,其中,在中间版本升级到目标版本时,不需要对移动终端的公钥文件与目标版本的签名信息进行校验,从而避免了目标版本与移动终端的key签名不一致导致的校验失败,无法完成系统升级的问题。

较佳地,所述中间版本升级文件为相对于移动终端当前版本的升级差分包。

较佳地,所述中间版本升级文件为升级全包。

采用本发明技术方案,移动终端由当前版本升级到中间版本过程中,由于当前版本与中间版本的签名一致,因此可以通过校验并升级到中间版本。在由中级版本升级到目标版本的过程中,因为中间版本中的recovery是不带key校验功能,这样,可以保证移动终端在与升级包签名不一致的情况下仍可以完成系统升级,且升级到最终版本中recovery中是带有key校验功能的,这样可以保证升级包的安全性,使系统在后续过程中仍然可以正常升级。

附图说明

图1为本发明实施例提供的移动终端侧的一种移动终端的版本升级方法的具体流程图;

图2为本发明实施例提供的服务器侧的一种移动终端的版本升级方法的具体流程图;

图3为本发明实施例提供的移动终端侧的一种移动终端的版本升级装置的结构示意图;

图4为本发明实施例提供的服务器侧的一种移动终端的版本升级装置的结构示意图。

具体实施方式

采用本发明技术方案,能够有效地避免现有技术中存在的由于key签名校验失败导致的无法完成系统升级,进而导致移动终端中系统存在的缺陷无法解决的问题。

本发明实施例提供了一种移动终端的版本升级方法,应用于各类智能移动终端,如智能手机,智能电视等终端设备,下面结合附图对本发明优选的实施方式进行详细说明。

参阅图1所示,本发明实施例提供的移动终端侧的一种移动终端的版本升级方法的具体处理流程包括:

步骤101:获取系统升级文件,该系统升级文件中至少携带中间版本升级文件和目标版本升级文件,其中,该中间版本升级文件为目标版本升级文件的在先版本,中间版本升级文件的签名信息与移动终端的公钥文件相对应,且中间版本升级文件中的升级程序不携带校验数据,目标版本升级文件中的升级程序携带校验数据。

在实际应用中,移动终端厂商会定期不断的将移动终端的完善后的系统升级文件上传至服务器,通常系统升级文件以ota升级包的形式上传至服务器。

移动终端与对应的服务器建立连接后,通过本地的在线升级功能获取系统升级文件,即ota升级包。

其中,ota升级包通常为两种类型,一种为ota全包,即包含整个系统所有应用的系统升级文件,另一种为ota差分包,即只包含需要升级的(发生变化的)若干个应用的系统升级文件。ota差分包相对于ota全包,通常较小。

移动终端获取的中间版本升级文件为相对于移动终端当前版本的升级差分包(即ota差分包),或者为升级全包(即ota全包)。

例如,版本a与版本b之间的差分,版本b相对于版本a有部分应用需要改进,则ota差分包只包含了需要改进的这些部分应用的升级文件,若移动终端当前的系统为版本a,需要升级到版本b时,在移动终端确定在线升级后,系统会下载版本a与版本b的ota差分包,系统安装完成后,就会直接升级到版本b,另外,移动终端还可以下载版本b的ota全包进行升级。

当移动终端获取系统升级文件时,会获取目标版本升级文件(即最新版本的ota全包),以及中间版本升级文件(ota全包或ota差分包),其中,该中间版本升级文件为目标版本升级文件的在先版本。

中间版本升级文件中的中的签名信息应该与移动终端的签名信息一致,即在编译中间版本升级文件时,设定其签名信息与移动终端的签名信息或公钥文件保持对应。

其中,中间版本升级文件中的升级程序——recovery文件中,是不带校验数据的,且目标版本升级文件中的recovery文件中带有校验数据。这样,可以保证移动终端升级到中间版本后,由于中间版本升级文件中的升级程序不带校验数据,不用在进行签名信息验证就可以直接升级至目标版本,而升级到目标版本后,在后续升级时可以继续进行检验,保证了移动终端系统的安全性。

获取系统升级文件时,按照预设的系统升级文件的优先级,获取中间版本升级文件后,再获取目标版本升级文件。

优选的,可以根据移动终端发送的系统升级请求,设置中间版本升级文件的优先级高于目标版本升级文件,这样,可以优先下载中间版本升级文件,确定下载完成后继续下载目标版本升级文件。

步骤102:获取移动终端的公钥文件,并根据该公钥文件和中间版本升级文件的签名信息,将移动终端的系统由当前版本升级为中间版本。

优选的,执行步骤102时,具体包括以下步骤:

针对公钥文件和系统升级文件中中间版本升级文件中的签名信息进行校验,当判定该中间版本升级文件中的签名信息与该公钥文件相对应时,根据该中间版本升级文件,将移动终端的系统由当前版本升级为中间版本。

具体的,获取移动终端的公钥文件时,包括,从移动终端当前系统的版本中的recovery镜像根文件系统的/res/keys加载公钥文件。

针对公钥文件和系统升级文件中中间版本升级文件中的签名信息进行校验时,首先加载嵌在中间版本升级文件(即ota升级包)中的rsa签名信息,然后将该rsa签名信息与/res/keys中保存的公钥文件进行匹配,若校验通过,移动终端的系统可以由当前版本升级到中间版本。

步骤103:在确认升级成功后,继续根据目标版本升级文件,将移动终端的系统由中间版本升级为目标版本。

其中,根据系统升级文件中携带的目标版本升级文件,将移动终端的系统由中间版本升级为目标版本,包括:

基于中间版本中的升级程序,根据系统升级文件中携带的目标版本升级文件将移动终端的系统由中间版本升级为目标版本。

具体的,在根据目标版本升级文件升级移动终端的系统时,由于中间版本升级程序中的recovery文件中是不带校验功能的,因此不需要针对移动终端的公钥文件和该目标版本升级文件中的签名信息进行校验,而是通过该目标版本升级文件直接将移动终端的系统进行升级。这样,避免了目标版本升级文件与移动终端的公钥文件之间因为key签名不一致导致校验失败,进而导致的无法完成系统升级的现象。

进一步的,若将移动终端的系统由中间版本升级为目标版本失败,则将移动终端的系统回退至中间版本,并删除升级文件中的目标版本升级文件。

这样,在移动终端在升级到目标版本时失败的情况下,移动终端的系统仍然升级到了中间版本,相对于之前的版本,系统仍然进行了升级和改进。

例如,当前移动终端的系统为版本b(签名为key2),升级的目标版本为版本c(签名为key1),以前发布的版本为a(签名为key1),移动终端若将系统从版本b直接升级到版本c,升级时,由于版本b和版本c中的签名不一致,因此无法通过签名校验,升级失败。因此,设置一个中间版本——版本c0,但是版本c0中的recovery中不包含key签名校验功能。然后还需要做一个版本b到版本c0的ota差分包——版本b-版本c0(即中间版本升级文件,签名为key2),由于版本b与版本b-版本c0的签名均为key2,因此,在升级过程中签名校验可以通过,移动终端可以升级到版本c0,当移动终端升级到c0后,系统再检测目标版本c的ota全包,虽然版本c用的key1签名,但是由于升级时,版本c0的recovery中不包含key签名校验功能,因此可以不经过签名校验,直接升级,最终升级到目标版本。其中,版本b-版本c0的生成过程为:需要针对以前发布的版本a对应的中间文件src.zip,通过命令“java-xmx2048m-jarsignapk.jar-wkey2/releasekey.x509.pemkey2/releasekey.pk8src.ziptarget.zip”重新用key2进行签名并形成target.zip,然后再用之前编译生成的用key2签过名的中间文件与target.zip结合,形成最终的中间版本升级文件版本b-版本c0。

又例如,当前移动终端的系统为版本d(签名为key_old),升级的目标版本为版本f(签名为key_new),移动终端若将系统从版本d直接升级到版本f,升级时,由于版本d和版本f中的签名不一致,因此无法通过签名校验,升级失败。因此,设置一个中间版本——版本e,其中,版本e为ota全包,签名为key_old,且版本e中的recovery中不包含key签名校验功能。然后移动终端下载版本e的ota全包后,由于版本d与版本e的签名均为key_old,因此,在升级过程中签名校验可以通过,移动终端可以升级到版本e,当移动终端升级到e后,系统再检测目标版本f的ota全包,虽然版本f用的key_new签名,但是由于升级时,版本e的recovery中不包含key签名校验功能,因此可以不经过签名校验,直接升级,最终升级到目标版本f。

目标版本升级文件必须为升级全包,因为目标版本和中间版本签名信息不一致,若仍选择升级差分包进行升级,升级完后未升级的应用的签名跟中间版本一致,而升级后的应用的签名跟目标版本一致,会导致升级后的应用会出现运行异常。

通过本发明实施例中在移动终端由当前版本升级到中间版本过程中需要通过key签名校验,且该中间版本中的recovery是不带key校验功能,这样,可以保证移动终端在与升级包签名不一致的情况下仍可以完成系统升级,且升级到最终版本中recovery中是带有key校验功能的,这样可以保证升级包的安全性,使系统在后续过程中仍然可以正常升级。

基于上述实施例,参阅图2所示,本发明实施例还提供了服务器侧一种移动终端的版本升级方法,该方法的具体处理流程包括:

步骤201:接收移动终端的系统升级请求。

步骤202:根据系统升级请求确定系统升级文件,并将系统升级文件发送至移动终端,系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,中间版本升级文件为目标版本升级文件的在先版本,中间版本升级文件的签名与移动终端的公钥文件相对应,且中间版本升级文件中的升级程序不携带校验数据,目标版本升级文件中的升级程序携带校验数据。

中间版本升级文件为相对于移动终端当前版本的升级差分包,或升级全包。

基于上述实施例,参阅图3所示,本发明实施例还提供了移动终端侧的一种移动终端的版本升级装置,该装置包括:获取单元301、第一升级单元302以及第二升级单元303,其中,

获取单元301,用于获取系统升级文件,系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,中间版本升级文件为目标版本升级文件的在先版本,中间版本升级文件的签名信息与移动终端的公钥文件相对应,且中间版本升级文件中的升级程序不携带校验数据,目标版本升级文件中的升级程序携带校验数据;

第一升级单元302,用于获取移动终端的公钥文件,并根据公钥文件和中间版本升级文件的签名信息,将移动终端的系统由当前版本升级为中间版本;

第二升级单元303,用于在确认升级成功后,继续根据目标版本升级文件,将移动终端的系统由中间版本升级为目标版本。

中间版本升级文件为相对于移动终端当前版本的升级差分包。

中间版本升级文件为升级全包。

获取单元301获取系统升级文件,包括:

按照预设的系统升级文件的优先级,获取中间版本升级文件后,再获取目标版本升级文件。

第二升级单元303,进一步用于:

若将移动终端的系统由中间版本升级为目标版本失败,则将移动终端的系统回退至中间版本,并删除系统升级文件中的目标版本升级文件。

基于上述实施例,参阅图4所示,本发明实施例还提供了服务器侧的一种移动终端的版本升级装置,该装置包括:接收单元401和发送单元402,其中,

接收单元401,用于接收移动终端的系统升级请求;

发送单元402,用于根据系统升级请求确定系统升级文件,并将系统升级文件发送至移动终端,系统升级文件中携带中间版本升级文件和目标版本升级文件,其中,中间版本升级文件为目标版本升级文件的在先版本,中间版本升级文件的签名与移动终端的公钥文件相对应,且中间版本升级文件中的升级程序不携带校验数据,目标版本升级文件中的升级程序携带校验数据。

中间版本升级文件为相对于移动终端当前版本的升级差分包。

中间版本升级文件为升级全包。

综上所述,通过本发明实施例中提供的一种移动终端的版本升级方法和装置,该方法通过获取包含中间版本升级文件和目标版本升级文件,将移动终端的系统由当前版本升级到中间版本,最终实现将移动终端升级到目标版本,这样,通过将移动终端首先升级到中间版本再升级到目标版本,其中,在中间版本升级到目标版本时,不需要对移动终端的公钥文件与目标版本的签名信息进行校验,从而避免了由于升级包签名校验失败导致的无法完成系统升级,同时又能保证升级包的安全性。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1