一种Android系统升级的方法和装置与流程

文档序号:12493859阅读:305来源:国知局
一种Android系统升级的方法和装置与流程

本申请涉及移动终端技术领域,特别是涉及一种Android系统升级的方法和装置。



背景技术:

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。正是因为Android的开源,使得Android系统的开发人员越来越多,Android系统的使用范围也越来越广,从原来主要支持手机逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。

随着科技的不断进步,移动设备的硬件、软件也都在不断升级,为了适配更高级的硬件、软件,Android系统也需要不断升级。在实际应用中,因为无线网络的广泛使用,绝大部分的Android系统都是通过OTA(Over the AirTechnology,空间下载技术)进行升级。OTA升级是Android系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过网络,例如WIFI、3G、4G自动下载OTA升级包,然后进行自动升级,但是也支持通过下载OTA升级包到本地存储卡进行升级。OTA的升级包非常的小,一般几M到十几M,非常的方便,基本是在系统上点击几下就完成了升级,并且,最重要的是,OTA升级无需备份数据,短短几分钟就能完成所有升级工作,所有数据都会完好无损的保留下来。

目前,Andorid系统的OTA升级针对系统的校验存在升级前和升级后两次校验,如果升级前校验成功,但是升级后校验失败,则会导致系统没有被正常升级,并且升级过程中,升级失败会进入recovery模式,在该模式下如果等待超时手机会自动重启,此时如果用户不注意,而且恰好手机可以开机,那么,系统版本信息会更改为升级后的高版本信息,所以用户会误认为系统升级成功,即使通过查看版本信息也会误认为系统已经升级成功。但实际上系统并没有真正完全升级成功,还会导致升级后的系统无法进一步后续升级,严重的话,甚至会出现手机会死机、无法开机的情况,这样,用户只能去售后或者返厂维修,不仅用户体验差,而且还会增加维修成本。



技术实现要素:

为了解决上述用户在升级Andorid系统的过程中出现升级失败的情况,提出了本申请实施例一种Android系统升级的方法和相应的一种Android系统升级的装置。

为了解决上述问题,本申请实施例公开了一种Android系统升级的方法,包括:

当接收到针对所述Android系统的升级请求时,下载所述Android系统的差分升级数据包,所述差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息;

依据所述待升级数据块的地址确定所述Android系统中待升级的第一目标数据块;

计算所述第一目标数据块的校验信息;

判断所述第一目标数据块的校验信息,与,所述待升级数据块的校验信息是否一致;

若一致,则采用所述差分升级数据包升级所述Android系统。

可选地,所述的方法还包括:

当所述第一目标数据块的校验信息,与所述待升级数据块的校验信息不一致时,针对所述升级请求,获取所述Android系统的完整升级数据包;

采用所述完整升级数据包升级所述Android系统。

可选地,在所述采用所述差分升级数据包升级所述Android系统的步骤之后,所述的方法还包括:

校验采用所述差分升级数据包升级的Android系统是否升级成功;

若否,则获取所述Android系统的完整升级数据包,以及,采用所述完整升级数据包升级所述Android系统。

可选地,所述差分升级数据包还具有与所述待升级数据块的地址相同的已升级数据块的校验信息;所述校验采用所述差分升级数据包升级的Android系统是否升级成功的步骤包括:

确定采用所述差分升级数据包升级的第二目标数据块;

计算所述第二目标数据块的校验信息;

若所述已升级数据块的校验信息,与所述第二目标数据块的校验信息一致,则判定采用所述差分升级数据包升级的Android升级成功,否则,判定采用所述差分升级数据包升级的Android系统升级失败。

可选地,所述确定采用所述差分升级数据包升级的第二目标数据块的步骤包括:

依据所述待升级数据块的地址确定所述Android系统中已升级的数据块;

将所述数据块作为第二目标数据块。

相应的,本申请实施例公开了一种Android系统升级的装置,包括:

差分升级数据包下载模块,用于当接收到针对所述Android系统的升级请求时,下载所述Android系统的差分升级数据包,所述差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息;

第一目标数据块确定模块,用于依据所述待升级数据块的地址确定所述Android系统中待升级的第一目标数据块;

第一目标数据块计算模块,用于计算所述第一目标数据块的校验信息;

第一目标数据块判断模块,用于判断所述第一目标数据块的校验信息,与,所述待升级数据块的校验信息是否一致;

差分升级数据包升级模块,用于若一致,则采用所述差分升级数据包升级所述Android系统。

相应的,所述的装置还包括:

完整升级数据包获取模块,用于当所述第一目标数据块的校验信息,与所述待升级数据块的校验信息不一致时,针对所述升级请求,获取所述Android系统的完整升级数据包;

第一完整升级数据包升级模块,用于采用所述完整升级数据包升级所述Android系统。

相应的,所述的装置还包括:

校验模块,用于校验采用所述差分升级数据包升级的Android系统是否升级成功;

第二完整升级数据包升级模块,用于若否,则获取所述Android系统的完整升级数据包,以及,采用所述完整升级数据包升级所述Android系统。

相应的,所述差分升级数据包还具有与所述待升级数据块的地址相同的已升级数据块的校验信息;所述校验模块包括:

第二目标数据块确定子模块,用于确定采用所述差分升级数据包升级的第二目标数据块;

第二目标数据块计算子模块,用于计算所述第二目标数据块的校验信息;

第二目标数据块判断子模块,用于若所述已升级数据块的校验信息,与所述第二目标数据块的校验信息一致,则判定采用所述差分升级数据包升级的Android升级成功,否则,判定采用所述差分升级数据包升级的Android系统升级失败。

相应的,所述第二目标数据块确定子模块包括:

已升级数据块确定单元,用于依据所述待升级数据块的地址确定所述Android系统中已升级的数据块;

第二目标数据块确定单元,用于将所述数据块作为第二目标数据块。

本申请实施例包括以下优点:

本申请在接收到针对Android系统的升级请求时,下载Android系统的差分升级数据包,其中,差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息。然后依据待升级数据块的地址确定Android系统中待升级的第一目标数据块,并计算第一目标数据块的校验信息,接着判断第一目标数据块的校验信息与待升级数据块的校验信息是否一致,如果一致,则采用差分升级数据包升级所述Android系统。这样,在安装升级包之前通过对待升级数据块、升级包进行校验,确定了待升级数据块与升级包没有问题之后再进行升级,从而确保升级可以成功执行,保证了系统升级的成功率。

另外,本申请在采用差分升级数据包升级后,会校验升级后的系统是否升级成功,如果没有,会继续采用完整升级数据对系统进行升级,从而确保升级可以成功执行,进一步保证了系统升级的成功率。

附图说明

图1是本申请的一种Android系统升级的方法实施例的步骤流程图一;

图2是本申请的一种Android系统升级的方法实施例的步骤流程图二;

图3是本申请的一种Android系统升级的装置实施例的结构框图一;

图4是本申请的一种Android系统升级的装置实施例的结构框图二。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

本申请实施例的核心构思之一在于,在接收到对当前Android系统进行升级的请求后,首先对当前系统进行校验,如果校验成功,则采用低版本系统到高版本系统的差分升级数据包对当前低版本系统进行升级。

现有技术中,Andorid系统的OTA升级针对系统的校验存在升级前和升级后两次校验,如果升级前校验成功,但是升级后校验失败,则会导致系统没有被正常升级,并且升级过程中,升级失败会进入recovery模式,在该模式下如果等待超时手机会自动重启,此时如果用户不注意,而且恰好手机可以开机,那么,系统版本信息会更改为升级后的高版本信息,所以用户会误认为系统升级成功,即使通过查看版本信息也会误认为系统已经升级成功。但实际上系统并没有真正完全升级成功,还会导致升级后的系统无法进一步后续升级,严重的话,甚至会出现手机会死机、无法开机的情况。

因此,针对上述问题,本申请在接收到针对Android系统的升级请求时,下载Android系统的差分升级数据包,其中,差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息。然后依据待升级数据块的地址确定Android系统中待升级的第一目标数据块,并计算第一目标数据块的校验信息,接着判断第一目标数据块的校验信息与待升级数据块的校验信息是否一致,如果一致,则采用差分升级数据包升级所述Android系统。这样,在安装升级包之前通过对待升级数据块、升级包进行校验,确定了待升级数据块与升级包没有问题之后再进行升级,从而确保升级可以成功执行,保证了系统升级的成功率。

另外,本申请在采用差分升级数据包升级后,会校验升级后的系统是否升级成功,如果没有,会继续采用完整升级数据对系统进行升级,从而确保升级可以成功执行,进一步保证了系统升级的成功率。

参照图1,示出了本申请的一种Android系统升级的方法实施例的步骤流程图一,具体可以包括如下步骤:

步骤101,当接收到针对所述Android系统的升级请求时,下载所述Android系统的差分升级数据包,所述差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息。

数据块,是一组按顺序连续排列在一起的几组记录,是主存储器与输入、输出设备或外存储器之间进行传输的一个数据单位,是数据的物理记录。数据块的大小可以是固定的或是可变的,块与块之间有间隙。主存储器与cache(Cache Memory,高速缓冲存储器)都划分成长度相等的数据块,每次主存储器与cache交换数据时都是以数据块为单位进行的。

在本申请中,Android系统采用的差分升级数据包需要预先制作好并存储在服务器中。差分升级的原理,就是将完整高版本系统与完整低版本系统具有差异的数据块制作成差分升级数据包,完整低版本系统通过安装差分升级数据包对那些有差异的数据块里的数据进行更新,从而实现了低版本系统到高版本系统的升级。

具体地,在制作差分升级数据包时,因为知道了升级前完整的低版本与升级后完整的高版本之间的差异,所以可以通过diff工具对高、低两个版本系统的差异进行比较,比较后就可以得知升级前完整的低版本系统与升级后完整的高版本系统之间有差异的数据块是哪些。也就是说,在升级之前就已经知道低版本系统中会被更新的数据块,也就是待升级的数据块的地址,此时,针对所述地址的数据块生成校验信息,并将所述地址与生成的校验信息一起打包封装在差分升级数据包里。

其中,校验信息可以是HASH值,例如,在制作差分升级数据包时,通过比较高、低两个版本系统的差异可知,完整低版本系统与完整高版本系统之间有92个数据块是有差异的,此时,将这92个数据块的地址记录下来,并计算这92个数据的HASH值,然后将这92个数据块的地址、HASH值一起打包封装在差分升级数据包里。

校验信息也可以是对各个数据块的具体操作信息,例如,完整低版本系统与完整高版本系统之间有92个数据块是有差异的,此时,分别记录对每个数据块的具体操作,涉及到需要修改的具体位置,例如替换哪些块,移动哪些块等等,然后将这92个数据的地址、对各个数据块的具体操作信息一起打包封装在差分升级数据包里。

当然,校验信息还可以是其它信息,可以理解,可以用于校验数据的方式都适用于本申请,本申请对此不作限制。

具有Android系统的设备在接收到针对所述Android系统的升级请求时,就会下载具有对应的待升级数据块的地址及相应的待升级数据块的校验信息的差分升级数据包。

步骤102,依据所述待升级数据块的地址确定所述Android系统中待升级的第一目标数据块;

具有Android系统的设备下载完差分升级数据包后,解封该差分升级数据包,获取其中的待升级数据块的地址。

因为当前低版本系统并不知道哪些数据块是需要更新的,所以通过获取差分升级数据包中的待升级数据块的地址,就知道当前低版本系统中哪些数据块是需要更新的。从而确定当前低版本系统中待升级的第一目标数据块。

步骤103,计算所述第一目标数据块的校验信息;

确定了当前低版本系统中待升级的第一目标数据块后,计算所述第一目标数据块的校验信息。其中,校验信息可以是HASH值,也可以是对各个数据块的具体操作信息。

步骤104,判断所述第一目标数据块的校验信息,与,所述待升级数据块的校验信息是否一致;

具体的,当前低版本系统根据差分升级数据包中待升级的数据块的地址计算出所述地址数据的HASH值,与差分升级数据包中待升级的数据块的HASH值进行比较,判断二者是否一致。

还可以判断对当前低版本中各个待升级的数据块的操作与差分升级数据包中记载的对各个待升级的数据块的操作是否是一致的。比如,差分升级数据包中对某个数据块的操作方式为删除,但是校验信息中记载的对该数据块的操作方式应该为移动,这样,二者就不是一致了。

步骤105,若一致,则采用所述差分升级数据包升级所述Android系统。

若当前低版本系统根据差分升级数据包中待升级的数据块的地址计算出所述地址数据的HASH值,与差分升级数据包中待升级的数据块的HASH值相同,和/或,对当前低版本中各个待升级的数据块的操作与差分升级数据包中记载的对各个待升级的数据块的操作相同,则采用下载的差分升级数据包升级Android系统。

在本发明的一些实施方式中,在采用差分升级数据包升级Android系统的步骤之后,还可包括:

步骤106,校验采用所述差分升级数据包升级的Android系统是否升级成功。

具体的,为确保系统正常升级完成,需要对升级后的系统进行校验,在本发明一些实施例中,所述差分升级数据包还具有与所述待升级数据块的地址相同的已升级数据块的校验信息;所述步骤106包括:

确定采用所述差分升级数据包升级的第二目标数据块;

计算所述第二目标数据块的校验信息;

若所述已升级数据块的校验信息,与所述第二目标数据块的校验信息一致,则判定采用所述差分升级数据包升级的Android系统升级成功,否则,判定采用所述差分升级数据包升级的Android系统升级失败。

基于差分升级的原理,完整的高版本系统是已知的,所以可以针对完整高版本系统中已升级数据块生成校验信息。而完整高版本系统中已升级数据块的地址与升级前完整低版本系统中待升级数据块的地址是完全一样的,所以,可以根据所述地址,计算出完整高版本系统中所述地址数据块的校验信息,并打包封装在差分升级数据包中。

当前低版本系统采用差分升级数据包完成升级后,继续依据待升级数据块的地址确定Android系统中已升级的数据块,并将所述数据块作为第二目标数据块,也就是说,第一目标数据块和第二目标数据块的存储地址是一样的,只不过第一目标数据块里的数据是升级前的系统的数据,第二目标数据块里的数据是升级后的系统的数据。然后计算第二目标数据块的校验信息,若计算出的第二目标数据块的校验信息与差分升级数据包中已升级数据块的校验信息一致,则判定采用所述差分升级数据包升级的Android系统升级成功,否则,判定采用所述差分升级数据包升级的Android系统升级失败。

在本发明实施例中,若采用所述差分升级数据包升级的Android系统升级成功,则表示Android系统所有的分区,包括system分区、boot分区、modem等多个分区都进行了升级,但是采用所述差分升级数据包升级的Android系统升级失败,则意味着Android系统仅仅升级了system分区,其他分区例如:boot、modem等多个分区是没有被正常升级的。

步骤107,当采用差分升级数据包升级当前低版本系统失败时,获取所述Android系统的完整升级数据包,以及,采用所述完整升级数据包升级所述Android系统。

在本发明实施例中,可以将完整高版本系统制作成一个升级包,这样,低版本系统在安装完全包升级数据包后,就完成了对当前系统的升级。

需要说明的是,在本发明实施例中,获取全包升级数据包的方式可以是与差分升级数据包封装在一起下载下来,也可以是在第一目标数据块的校验信息,与待升级数据块的校验信息不一致时,重新从服务器上下载,本发明实施例对获取完整数据包的方式不作限制。

参照图2,示出了本申请的一种Android系统升级的方法实施例的步骤流程图二,具体可以包括如下步骤:

步骤201,当接收到针对所述Android系统的升级请求时,下载所述Android系统的差分升级数据包,所述差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息;

步骤202,依据所述待升级数据块的地址确定所述Android系统中待升级的第一目标数据块;

步骤203,计算所述第一目标数据块的校验信息;

步骤204,判断所述第一目标数据块的校验信息,与,所述待升级数据块的校验信息是否一致;

步骤205,若一致,则采用所述差分升级数据包升级所述Android系统;

步骤206,当所述第一目标数据块的校验信息,与所述待升级数据块的校验信息不一致时,针对所述升级请求,获取所述Android系统的完整升级数据包;

采用所述完整升级数据包升级所述Android系统。

具体的,在当前低版本系统根据差分升级数据包中待升级的数据块的地址计算出所述地址数据的HASH值,与差分升级数据包中待升级的数据块的HASH值不相同,和/或,对当前低版本中各个待升级的数据块的操作与差分升级数据包中记载的对各个待升级的数据块的操作不相同时,则获取完整高版本的完整升级数据包,然后采用完整升级数据包对当前低版本系统进行升级。

需要说明的是,在本发明实施例中,获取完整升级数据包的方式可以是与差分升级数据包封装在一起下载下来,也可以是在第一目标数据块的校验信息,与待升级数据块的校验信息不一致时,重新从服务器上下载,本发明实施例对获取完整数据包的方式不作限制。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作并不一定是本申请实施例所必须的。

参照图3,示出了本申请的一种Android系统升级的装置实施例的结构框图一,具体可以包括如下模块:

差分升级数据包下载模块301,用于当接收到针对所述Android系统的升级请求时,下载所述Android系统的差分升级数据包,所述差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息;

第一目标数据块确定模块302,用于依据所述待升级数据块的地址确定所述Android系统中待升级的第一目标数据块;

第一目标数据块计算模块303,用于计算所述第一目标数据块的校验信息;

第一目标数据块判断模块304,用于判断所述第一目标数据块的校验信息,与,所述待升级数据块的校验信息是否一致;

差分升级数据包升级模块305,用于若一致,则采用所述差分升级数据包升级所述Android系统。

在本发明一种可选实施例中,所述的装置还包括:

校验模块306,用于校验采用所述差分升级数据包升级的Android系统是否升级成功;

第二完整升级数据包升级模块307,用于若否,则获取所述Android系统的完整升级数据包,以及,采用所述完整升级数据包升级所述Android系统。

在本发明一种可选实施例中,所述差分升级数据包还具有与所述待升级数据块的地址相同的已升级数据块的校验信息;所述校验模块包括:

第二目标数据块确定子模块,用于确定采用所述差分升级数据包升级的第二目标数据块;

第二目标数据块计算子模块,用于计算所述第二目标数据块的校验信息;

第二目标数据块判断子模块,用于若所述已升级数据块的校验信息,与所述第二目标数据块的校验信息一致,则判定采用所述差分升级数据包升级的Android升级成功,否则,判定采用所述差分升级数据包升级的Android系统升级失败。

在本发明一种可选实施例中,所述第二目标数据块确定子模块包括:

已升级数据块确定单元,用于依据所述待升级数据块的地址确定所述Android系统中已升级的数据块;

第二目标数据块确定单元,用于将所述数据块作为第二目标数据块。

参照图4,示出了本申请的一种Android系统升级的装置实施例的结构框图二,具体可以包括如下模块:

差分升级数据包下载模块401,用于当接收到针对所述Android系统的升级请求时,下载所述Android系统的差分升级数据包,所述差分升级数据包具有对应的待升级数据块的地址及相应的待升级数据块的校验信息;

第一目标数据块确定模块402,用于依据所述待升级数据块的地址确定所述Android系统中待升级的第一目标数据块;

第一目标数据块计算模块403,用于计算所述第一目标数据块的校验信息;

第一目标数据块判断模块404,用于判断所述第一目标数据块的校验信息,与,所述待升级数据块的校验信息是否一致;

差分升级数据包升级模块405,用于若一致,则采用所述差分升级数据包升级所述Android系统。

在本发明一种可选实施例中,所述的装置还包括:

完整升级数据包获取模块406,用于当所述第一目标数据块的校验信息,与所述待升级数据块的校验信息不一致时,针对所述升级请求,获取所述Android系统的完整升级数据包;

第一完整升级数据包升级模块407,用于采用所述完整升级数据包升级所述Android系统。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的Android系统升级的方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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