一种系统升级方法及终端与流程

文档序号:12362942阅读:246来源:国知局
一种系统升级方法及终端与流程

本发明涉及升级技术,尤其涉及一种系统升级方法及终端。



背景技术:

本申请发明人在实现本申请实施例技术方案的过程中,至少发现相关技术中存在如下技术问题:

随着智能终端的普及,对智能终端如手机进行系统升级是用户生活中常常会遇到的事情,具体的一种场景为:碰到操作系统大版本的FOTA升级的场景,对于这种场景如何来处理?例如将火狐V1.3系统升级到火狐V2.0系统,火狐V2.0系统相比较于之前的系统,其FOTA差分包比较大,如果按照现有技术中安卓(Android)常用的做法,是将FOTA差分包复制到手机的缓存(cache)分区中进行存储,然后在cache分区进行升级操作。火狐V2.0系统相比于之前的系统,往往存在FOTA差分包比较大的情况,甚至会超过cache分区的大小,由于cache分区的存储空间不够容纳FOTA差分包,则必然直接导致FOTA升级失败。然而,相关技术中,对于这个问题,并未提供有效的解决方案。



技术实现要素:

有鉴于此,本发明实施例希望提供一种系统升级方法及终端,至少解决了现有技术存在的问题。

本发明实施例的技术方案是这样实现的:

本发明实施例的一种系统升级方法,所述方法包括:

读取升级包的目标存储分区,所述目标存储分区为非缓存cache分区;

检测所述升级包的存储容量是否小于所述目标存储分区,得到判断结果;

所述判断结果为所述升级包的存储容量小于所述目标存储分区时,将所述 升级包下载存储至所述目标存储分区;

检测到所述升级包下载存储结束,系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理。

上述方案中,所述目标存储分区包括至少一个待下载存储分区;

所述读取升级包的目标存储分区,包括:

获取优先级信息;

根据所述优先级信息从所述至少一个待下载存储分区中选取作为第一优先级的待下载存储分区,并将所述第一优先级的待下载存储分区作为所述目标存储分区。

上述方案中,所述判断结果为所述升级包的存储容量小于所述目标存储分区时,将所述升级包下载存储至所述目标存储分区,包括:

所述升级包的存储容量小于所述第一优先级的待下载存储分区时,将所述升级包下载存储至所述第一优先级的待下载存储分区。

上述方案中,所述系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理,包括:

所述系统重启并进入recovery模式,挂载所述第一优先级的待下载存储分区,从所述第一优先级的待下载存储分区中读取所述升级包进行系统升级处理。

上述方案中,所述方法还包括:

检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第一优先级的待下载存储分区中的所述升级包。

上述方案中,所述方法还包括:

所述目标存储分区为所述第一优先级的待下载存储分区时,所述判断结果为所述升级包的存储容量大于所述第一优先级的待下载存储分区,根据所述优先级信息从所述至少一个待下载存储分区中选取作为第二优先级的待下载存储分区,并将所述第二优先级的待下载存储分区作为所述目标存储分区;

所述将所述升级包下载存储至所述目标存储分区,包括:

将所述升级包下载存储至所述第二优先级的待下载存储分区。

上述方案中,所述系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理,包括:

所述系统重启并进入recovery模式,挂载所述第二优先级的待下载存储分区,从所述第二优先级的待下载存储分区中读取所述升级包进行系统升级处理。

上述方案中,所述方法还包括:

检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第二优先级的待下载存储分区中的所述升级包。

本发明实施例的一种终端,所述终端包括:

读取单元,用于读取升级包的目标存储分区,所述目标存储分区为非缓存cache分区;

第一检测单元,用于检测所述升级包的存储容量是否小于所述目标存储分区,得到判断结果;

下载单元,用于所述判断结果为所述升级包的存储容量小于所述目标存储分区时,将所述升级包下载存储至所述目标存储分区;

第一处理单元,用于检测到所述升级包下载存储结束,系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理。

上述方案中,所述目标存储分区包括至少一个待下载存储分区;

所述读取单元,进一步用于获取优先级信息,根据所述优先级信息从所述至少一个待下载存储分区中选取作为第一优先级的待下载存储分区,并将所述第一优先级的待下载存储分区作为所述目标存储分区。

上述方案中,所述下载单元,进一步用于所述升级包的存储容量小于所述第一优先级的待下载存储分区时,将所述升级包下载存储至所述第一优先级的待下载存储分区。

上述方案中,所述第一处理单元,进一步用于所述系统重启并进入recovery模式,挂载所述第一优先级的待下载存储分区,从所述第一优先级的待下载存储分区中读取所述升级包进行系统升级处理。

上述方案中,所述第一处理单元,进一步用于检测到所述系统升级处理结 束,在所述recovery模式下删除存储于所述第一优先级的待下载存储分区中的所述升级包。

上述方案中,所述读取单元,进一步用于所述目标存储分区为所述第一优先级的待下载存储分区时,所述判断结果为所述升级包的存储容量大于所述第一优先级的待下载存储分区,根据所述优先级信息从所述至少一个待下载存储分区中选取作为第二优先级的待下载存储分区,并将所述第二优先级的待下载存储分区作为所述目标存储分区;

所述下载单元,进一步用于将所述升级包下载存储至所述第二优先级的待下载存储分区。

上述方案中,所述第一处理单元,进一步用于所述系统重启并进入recovery模式,挂载所述第二优先级的待下载存储分区,从所述第二优先级的待下载存储分区中读取所述升级包进行系统升级处理。

上述方案中,所述第一处理单元,进一步用于检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第二优先级的待下载存储分区中的所述升级包。

本发明实施例的一种系统升级方法,所述方法包括:读取升级包的目标存储分区,所述目标存储分区为非缓存cache分区;检测所述升级包的存储容量是否小于所述目标存储分区,得到判断结果;所述判断结果为所述升级包的存储容量小于所述目标存储分区时,将所述升级包下载存储至所述目标存储分区;检测到所述升级包下载存储结束,系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理。

采用本发明实施例,对非缓存cache分区这种存储空间比较大的区域作为目标存储分区,在由于版本差异升级所需的升级包存储容量比较大的情况下,也可以顺利实现升级处理服务,从而智能终端的升级提供更多便利。

附图说明

图1为本发明方法实施例一的实现流程示意图;

图2为本发明方法实施例二的实现流程示意图;

图3为本发明方法实施例三的实现流程示意图;

图4为本发明终端实施例一的组成结构示意图;

图5为应用本发明实施例的一应用场景的示意图;

图6为应用本发明实施例的另一应用场景的示意图。

具体实施方式

下面结合附图对技术方案的实施作进一步的详细描述。

方法实施例一:

本发明实施例的一种系统升级方法,如图1所示,所述方法包括:

步骤101、读取升级包的目标存储分区,所述目标存储分区为非缓存cache分区;

步骤102、检测所述升级包的存储容量是否小于所述目标存储分区,得到判断结果;

步骤103、所述判断结果为所述升级包的存储容量小于所述目标存储分区时,将所述升级包下载存储至所述目标存储分区;

步骤104、检测到所述升级包下载存储结束,系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理。

方法实施例二:

基于方法实施例一,本发明实施例的一种系统升级方法,所述目标存储分区包括至少一个待下载存储分区;如图2所示,所述读取升级包的目标存储分区,包括:

步骤201、获取优先级信息;

步骤202、根据所述优先级信息从所述至少一个待下载存储分区中选取作为第一优先级的待下载存储分区,并将所述第一优先级的待下载存储分区作为所述目标存储分区。

在本实施例一实施方式中,所述判断结果为所述升级包的存储容量小于所 述目标存储分区时,将所述升级包下载存储至所述目标存储分区,包括:所述升级包的存储容量小于所述第一优先级的待下载存储分区时,将所述升级包下载存储至所述第一优先级的待下载存储分区。

在本实施例一实施方式中,所述系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理,包括:所述系统重启并进入recovery模式,挂载所述第一优先级的待下载存储分区,从所述第一优先级的待下载存储分区中读取所述升级包进行系统升级处理。

在本实施例一实施方式中,所述方法还包括:检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第一优先级的待下载存储分区中的所述升级包。

方法实施例三:

基于方法实施例一,本发明实施例的一种系统升级方法,所述目标存储分区包括至少一个待下载存储分区,所述目标存储分区为所述第一优先级的待下载存储分区时,所述判断结果为所述升级包的存储容量大于所述第一优先级的待下载存储分区,如图3所示,所述读取升级包的目标存储分区,包括:

步骤301、获取优先级信息;

步骤302、根据所述优先级信息从所述至少一个待下载存储分区中选取作为第二优先级的待下载存储分区,并将所述第二优先级的待下载存储分区作为所述目标存储分区。

在本实施例一实施方式中,所述将所述升级包下载存储至所述目标存储分区,包括:将所述升级包下载存储至所述第二优先级的待下载存储分区。

在本实施例一实施方式中,所述系统重启并进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理,包括:所述系统重启并进入recovery模式,挂载所述第二优先级的待下载存储分区,从所述第二优先级的待下载存储分区中读取所述升级包进行系统升级处理。

在本实施例一实施方式中,所述方法还包括:检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第二优先级的待下载存储分区中的 所述升级包。

这里需要指出的是,上述第一模式可以为recovery模式,上述第一优先级的待下载存储分区可以为用户数据(userdata)分区这种终端内置的用户分区,(后续userdata分区也简称为用户分区),上述第二优先级的待下载存储分区可以为SD卡或其他外置存储卡的区域。

这里需要指出的是,目标存储分区的类型至少包括:终端内置的用户分区、外置存储卡中的至少一种。相应的,升级包也可以区别于上述将升级包完整的存储于至少一个待下载存储分区中任意一个区域的实施例,是将升级包按照预设的比例得到的部分内容分别存储于至少一个待下载存储分区中的多个区域中,总和构成一个完整的升级包,在后续进入recovery模式时需要先后或同时挂载这些存储有升级包部分内容的多个区域,以便从中读取升级包部分内容,按照预设装配条件重新组装成一个完整的升级包,之后,根据完整的升级包进行升级处理。

而上述将升级包完整的存储于至少一个待下载存储分区中任意一个区域的实施例,如何确定优先存储的区域,是按照上述优先级信息来确定的,按照优先级信息中的存储分区优先级顺序,分别将升级包的存储容量与至少一个待下载存储分区中的一个区域进行比对,直至找到合适的一个待下载存储分区作为所述目标存储分区,来存储升级包完整的内容,在后续进入recovery模式时需要挂载这个存储有升级包完整内容的一个区域,以便从中读取升级包完整的内容,之后,根据完整的升级包进行升级处理。

终端实施例一:

本发明实施例的一种终端,如图4所示,所述终端包括:

读取单元11,用于读取升级包的目标存储分区,所述目标存储分区为非缓存cache分区;第一检测单元12,用于检测所述升级包的存储容量是否小于所述目标存储分区,得到判断结果;下载单元13,用于所述判断结果为所述升级包的存储容量小于所述目标存储分区时,将所述升级包下载存储至所述目标存储分区;第一处理单元14,用于检测到所述升级包下载存储结束,系统重启并 进入第一模式,从所述目标存储分区提取所述升级包进行系统升级处理。

在本实施例一实施方式中,所述目标存储分区包括至少一个待下载存储分区;所述读取单元,进一步用于获取优先级信息,根据所述优先级信息从所述至少一个待下载存储分区中选取作为第一优先级的待下载存储分区,并将所述第一优先级的待下载存储分区作为所述目标存储分区。

在本实施例一实施方式中,所述下载单元,进一步用于所述升级包的存储容量小于所述第一优先级的待下载存储分区时,将所述升级包下载存储至所述第一优先级的待下载存储分区。

在本实施例一实施方式中,所述第一处理单元,进一步用于所述系统重启并进入recovery模式,挂载所述第一优先级的待下载存储分区,从所述第一优先级的待下载存储分区中读取所述升级包进行系统升级处理。

在本实施例一实施方式中,所述第一处理单元,进一步用于检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第一优先级的待下载存储分区中的所述升级包。

在本实施例一实施方式中,所述读取单元,进一步用于所述目标存储分区为所述第一优先级的待下载存储分区时,所述判断结果为所述升级包的存储容量大于所述第一优先级的待下载存储分区,根据所述优先级信息从所述至少一个待下载存储分区中选取作为第二优先级的待下载存储分区,并将所述第二优先级的待下载存储分区作为所述目标存储分区;

所述下载单元,进一步用于将所述升级包下载存储至所述第二优先级的待下载存储分区。

在本实施例一实施方式中,所述第一处理单元,进一步用于所述系统重启并进入recovery模式,挂载所述第二优先级的待下载存储分区,从所述第二优先级的待下载存储分区中读取所述升级包进行系统升级处理。

在本实施例一实施方式中,所述第一处理单元,进一步用于检测到所述系统升级处理结束,在所述recovery模式下删除存储于所述第二优先级的待下载存储分区中的所述升级包。

以下采用具体应用场景对上述本发明实施例进行说明如下:

本应用场景采用本发明实施例具体为一种FOTA升级的方案,对于这个应用场景,以终端为智能手机为例,采用现有Android的FOTA升级技术,是在手机要进行FOTA升级时,先将FOTA差分包下载下来,然后复制到手机的cache分区;手机自动重启到recovery模式下,对cache分区的FOTA差分包进行处理,进行FOTA升级。

采用现有Android的FOTA升级技术所存在的问题是:因为cache分区用户是不可见的,所以通常cache分区开的比较小,当操作系统大版本升级时,其FOTA差分包大小肯定会大于cache分区的大小,从而导致手机无法进行大版本的FOTA升级,如果解析升级包失败,则直接导致升级失败。目前需要解决的问题是能够正确存储升级包,以避免升级失败,可见,从存储的区域能正确解析出升级包是非常重要的,这里需要指出的是,解析获得升级包的重要性还在于,在确定他人是否侵权时,由于采用userdata分区或SD卡这种外置存储区域,二者都是可见的分区,就可以通过读取对方手机的内置或外置存储区域中的分区信息和FOTA的差分包大小,通过解析升级的log信息来判断对方手机是否已侵权。

对应上述问题,本应用场景采用本发明实施例,即便当FOTA差分包比较大的情况,手机仍然可以正确存储,正确解析FOTA差分包,从而避免升级失败,还能带来帮助确权等一系列效果。

应用场景一:

手机的用户数据userdata分区,是用户可见的分区,该分区一般称之为用户空间,其剩余大小表示用户可用于拍照、下载歌曲等用户操作的空间大小。一般手机该userdata分区空间都会比较大,会是cache分区的5-8倍大小,可以作为目标存储区域使用。FOTA升级步骤如下:

步骤401、通过FOTA应用下载FOTA差分包到userdata分区;

步骤402、当FOTA差分包下载完后,手机自动重启进入recovery模式;

步骤403、在recovery模式下,挂载userdatata分区;

步骤404、在recovery模式下,读取userdata分区里的FOTA差分包后,进行FOTA升级操作;

步骤405、当FOTA升级操作完后,在recovery模式下删除userdata分区里的FOTA差分包。

步骤406、手机自动重启。

应用场景二、

上述应用场景一仅仅以userdata分区为例,外置SD卡(或称sdcard)当然也可以作为目标存储区域使用。如果用户的userdata分区剩余空间不足的话,用户插入的外置sdcard如何还有剩余空间,就将FOTA差分包下载到sdcard上,在recovery模式下,挂载sdcard分区,读取sdcard分区里的FOTA差分包进行FOTA升级。如图5所示,本应用场景二既包括userdata分区,又包括外置SD,都可以作为目标存储区域的情况,FOTA升级流程如下:

步骤501、通过FOTA应用程序获取FOTA服务器的差分包大小为A;

步骤502、获取手机userdata的剩余空间大小为B;

步骤503、比较A和B的大小,如果A<B,则执行步骤504;如果A>B,则执行步骤505;

步骤504、将差分包下载存储到userdata分区;之后,转入步骤509;

步骤505、获取外置sdcard的剩余空间大小为C;

步骤506、比较A和C的大小;如果A<C,则执行步骤507;如果A>C,则执行步骤508;

步骤507、将差分包下载存储到sdcard里;

步骤508、提示用户删除不用的数据,或者插入另外一张剩余空间比A大的sdcard;

步骤509、当下载存储完差分包后,手机重启进入recovery模式。

应用场景三:

本应用场景三的userdata分区及外置SD卡(或称sdcard)都可以作为目标存储区域使用。如果用户的userdata分区剩余空间不足的话,用户插入的外置 sdcard如何还有剩余空间,就将FOTA差分包下载到sdcard上,在recovery模式下,挂载sdcard分区,读取sdcard分区里的FOTA差分包进行FOTA升级。如图6所示,本应用场景既包括userdata分区,又包括外置SD,都可以作为目标存储区域的情况,recovery模式下的流程,包括:

步骤601、recorey模式下加载userdata分区;

步骤602、判断userdata分区里是否有FOTA差分包,如果是,则执行步骤605;否则,执行步骤603;

步骤603、userdata分区里没有FOTA差分包,加载sdcard分区;

步骤604、判断sdcard分区是否有FOTA差分包,sdcard分区有FOTA差分包时,执行步骤605;

步骤605、有FOTA差分包的情况下,传递正确的差分包文件路径,进行FOTA的升级处理;

步骤606、手机FOTA升级成功后,自动删除FOTA升级对应的FOTA差分包。

这里需要指出的是,还有一种具体应用场景,是将大的FOTA差分包,拆分成一个个小的FOTA差分包,这样采用Android原生的FOTA升级方案进行多次升级,也能达到一定目的,用户需要多次下载和升级。

本应用场景采用本发明实施例所能达到的有益效果为:

对于手机固件升级时升级包比较大的情况,比如采用FOTA的软件版本升级遇到的针对较大的FOTA差分包的情况,可以利用用户的有效存储空间来进行FOTA升级。而且,同样兼容Android原生的FOTA升级方案,且可以与Android原生的FOTA升级方案同时叠加使用,在使用效果上更好。应用本发明实施例到P821A20手机上,已经实现了火狐系统大版本的FOTA升级,从火狐的V1.3系统升级到V2.0系统。

以下对本文涉及的缩略语说明如下:

MB:MByte,兆字节;

GB:Gigabyte,吉字节;

FOTA:Firmware Over-the-Air移动终端空中下载软件升级技术;

本发明实施例所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

相应的,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序用于执行本发明实施例的系统升级方法。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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