多分区外存储设备的Android系统升级方法和系统的制作方法

文档序号:6509022阅读:200来源:国知局
多分区外存储设备的Android系统升级方法和系统的制作方法
【专利摘要】本发明公开了多分区外存储设备的Android系统升级方法和系统,其中所述方法包括:在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码;然后找到所述升级包记录所述升级包的相对路径;再调用系统接口,将唯一识别码和升级包的相对路径写入recovery系统中;重启进入recovery系统,找出与所述唯一识别码对应的外存储设备的分区,并在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行Android系统升级。其使得在多分区存储设备作为本地升级包存放点进行系统升级时,不受升级分区的数目及挂载点的限制,改善了的Android系统升级的灵活性和可扩展性。
【专利说明】多分区外存储设备的Android系统升级方法和系统
【技术领域】
[0001]本发明涉及Android系统升级【技术领域】,尤其涉及一种多分区外存储设备的Android系统升级方法和系统。
【背景技术】
[0002]在Android系统研究领域,通常将机器正常启动时的系统称为Android系统,同时将机器进行系统升级(即对Android系统进行升级)时所使用的系统称为recovery系统。Android系统一般通过recovery系统完成系统的恢复和升级,其中包括恢复出厂设置、OTA升级、补丁升级和固件升级。
[0003]由于Android系统最初设计主要是用于手机等移动设备,而手机本身无外插USB存储设备,内置SD卡也都只有一个分区,所以现有的升级方法可以从外置存储设备的分区中寻找到升级文件并升级。但是当Android系统用于其他支持外插的USB 口或SD卡插槽的智能终端(如智能电视)时,由于智能电视支持外插的USB 口或SD卡插槽,所述外插的USB口可以接入支持多分区的外存储设备,进而外存储设备的分区数是不确定的,导致智能电视系统升级失败。
[0004]有鉴于此,现有技术有待改进和提闻。

【发明内容】

[0005]鉴于现有技术的不足,本发明目的在于提供一种多分区外存储设备的Android系统升级方法和系统。旨在解决现有技术中Android系统升级时,由于挂载的外存储设备分区数不确定,导致系统升级失败的问题。
[0006]本发明的技术方案如下:
一种多分区外存储设备的Android系统升级方法,其中,所述升级方法依次包括以下步骤:
A、在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码;
B、扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;
C、调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中;
D、重启进入recovery系统,读取所述唯一识别码和升级包的相对路径;
E、找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行Android系统升级。
[0007]所述的多分区外存储设备的Android系统升级方法,其中,所述步骤B中扫描本地挂载的所有外存储设备的分区,找到所述升级包具体包括:
B1、记录原先升级时使用过的外存储设备的分区的唯一识别码及其使用次数;
B2、将所述唯一识别码按照使用次数从高到低进行排序; B3、依次扫描每一唯一识别码对应的外存储设备的分区,若找到所述升级包,则记录与其对应的外存储设备的分区的唯一识别码,并累积其使用次数;若没有找到所述升级包,则搜索剩余的外存储设备的分区,找到所述升级包。
[0008]所述的多分区外存储设备的Android系统升级方法,其中,在所述步骤B3中依次扫描每一唯一识别码对应的外存储设备的分区之前包括:首先查看所述外存储设备的分区是否被挂载,若所述外存储设备的分区没有被挂载,则直接进入下一外存储设备的分区的扫描;当所述外存储设备的分区被挂载后,才在其中查找所述升级包。
[0009]所述的多分区外存储设备的Android系统升级方法,其中,所述步骤C中唯一识别码和升级包的相对路径保存到/cache/recovery/command文件中。
[0010]所述的多分区外存储设备的Android系统升级方法,其中,所述步骤A中获取本地挂载的所有外存储设备的分区对应的唯一识别码采用Android系统中的blkid命令。
[0011 ] 所述的多分区外存储设备的Android系统升级方法,其中,所述步骤A中还包括将唯一识别码保存到/data目录下的blkid文件中。
[0012]—种多分区外存储设备的Android系统升级系统,其中,所述升级系统包括:
获取单元,用于在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯
一识别码;
扫描单元,用于扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;;
录入单元,用于调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中;
读取单元,用于重启进入recovery系统,读取所述唯一识别码和升级包的相对路径;升级单元,用于找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行Android系统升级。
[0013]所述的多分区外存储设备的Android系统升级系统,其中,所述外存储设备为USB存储设备。
[0014]所述的多分区外存储设备的Android系统升级系统,其中,所述录入单元中唯一识别码和升级包的相对路径保存到/cache/recovery/command文件中。
[0015]所述的多分区外存储设备的Android系统升级系统,其中,所述获取单元中获取本地挂载的所有外存储设备的分区对应的唯一识别码采用Android系统中的bIkid命令。
[0016]有益效果:
本发明公开的多分区外存储设备的Android系统升级方法和系统。其中,所述方法包括:首先,在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码;然后扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;再调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中;重启进入recovery系统后,读取所述唯一识别码和升级包的相对路径;找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,完成Android系统升级。其解决了在Android系统升级时由于挂载的外存储设备分区数不确定,导致系统升级失败的问题。使得在多分区存储设备作为本地升级包存放点进行系统升级时,不受升级分区的数目及挂载点的限制,改善了的Android系统升级的灵活性和可扩展性。同时,通过记录以前升级时外存储设备分区的使用情况,优化了搜索过程,大大降低了 Android系统升级所需的时间。
【专利附图】

【附图说明】
[0017]图1为本发明的多分区外存储设备的Android系统升级方法的流程图。
[0018]图2为本发明的多分区外存储设备的Android系统升级方法的实施例中扫描本地挂载的所有外存储设备的分区找到所述升级包的方法的流程图。
[0019]图3为本发明的多分区外存储设备的Android系统升级系统的结构框图。
【具体实施方式】
[0020]本发明提供一种多分区外存储设备的Android系统升级方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]请参阅图1,其为本发明的多分区外存储设备的Android系统升级方法的流程图。如图所示,所述升级方法依次包括以下步骤:
S1、在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码;
具体来说,其中,所述唯一识别码uuid (Universally Unique Identifier唯一识别码)是指在一台设备(装有Android系统的设备)上生成的数字,它保证对在同一时空中的所有设备都是唯一的。按照开放软件基金会(OSF)制定的标准计算,唯一识别码uuid用到了以太网卡地址、纳秒级时间、芯片ID码等可能用到的数字。即所述唯一识别码uuid与外存储设备的分区唯一对应。每一个外存储设备的分区均对应一唯一识别码;而无论外存储设备的分区数如何变化,其读取到的唯一识别码uuid都是唯一的。确保了外存储设备的分区在Android系统和recovery系统都是唯一确定的。
[0022]在本实施例中,其具体方法如下:在Android系统中有一命令为blkid,用于列出当前系统所有已经挂载的外存储设备的设备文件路径及其对应的唯一识别码。本方案利用Android系统的init.rc服务机制,在init.rc中建立一个服务,该服务执行blkid命令,并将结果保存到/data目录下的blkid文件中然后自动退出。在系统启动以及有外存储设备插入时均启动该服务,以保证实时更新blkid文件,使其记录当前系统所有存储设备的设备文件路径与UUID的对应关系列表。
[0023]S2、扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;
具体来说,依次扫描本地挂载的所有外存储设备的每一分区,查找所述升级包,当找到升级包并校验成功后,记录下来所述升级包的相对路径。应当理解地是,既然是多分区的搜索,肯定会有搜索到多个升级包的情况,在本方案中,以第一个找到的升级包当做我们要使用的升级包。
[0024]进一步地,因为现在的外存储设备通常容量很大,存储的文件很多;在进行系统升级时,在每一分区搜索zip升级包所花费的时间也较长。另外,根据现实中人的使用习惯,通常只会用一个或少数几个U盘或SD卡等存储设备来作为其升级包存放的工具,因此,如图2所示,所述步骤S2中扫描本地挂载的所有外存储设备的分区,找到所述升级包具体包括:
S21、记录原先升级时使用过的外存储设备的分区的唯一识别码及其使用次数;若原先没有升级使用过,则其使用次数为O。
[0025]S22、将所述唯一识别码按照使用次数从高到低进行排序;即使用次数最多的排在最前面。
[0026]S23、依次扫描每一唯一识别码对应的外存储设备的分区,若找到所述升级包,则记录与其对应的外存储设备的分区的唯一识别码,并更新其使用次数;若没有找到所述升级包,则搜索剩余的外存储设备的分区,找到所述升级包。
[0027]简单来说,上述方法通过记录每次升级使用的存储设备分区的UUID及其使用次数;下次升级搜索时,优先搜索被记录的使用次数高的分区,从而优化了搜索过程,提高了搜索效率,大大降低了 Android系统升级所需的时间。
[0028]更进一步地,为了减少搜索过程,依次扫描每一唯一识别码对应的外存储设备的分区中包括:首先判断所述外存储设备的分区是否被挂载。即当所述外存储设备的分区没有被挂在时,则直接进入下一外存储设备的分区的扫描搜索;当所述外存储设备的分区被挂载后,才在其中查找所述升级包。如此一来,节约了搜索过程:直接跳过没有挂载的外存储设备的分区,只有当所述外存储设备的分区被挂载才进行搜索,从而进一步优化了搜索过程,大大降低了 Android系统升级所需的时间。
[0029]S3、调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中;
具体来说,系统接口为RecoverySystem.1nstallPackage O ,在本实施例中,将唯一识别码和升级包相对路径保存到/cache/recovery/command文件中。
[0030]S4、重启进入recovery系统,读取所述唯一识别码和升级包的相对路径;在本实施例中,从文件/cache/recovery/co_and中读取升级包相对路径和外存储设备的分区所对应的唯一识别码。
[0031]S5、找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包进行Android系统升级。利用升级包进行升级的方法可采用常规技术,就不多做赘述了。若没有找到升级包,则升级失败,退出recovery系统,进入Android系统。
[0032]本发明提供的多分区外存储设备的Android系统升级方法,通过获取本地挂载的所有外存储设备的分区对应的唯一识别码,并将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中,重启进入recovery系统,读取所述唯一识别码和升级包的相对路径;找出与所述唯一识别码对应的外存储设备的分区,再进行相应Android系统升级,从而解决了在Android系统升级时由于挂载的外存储设备分区数不确定,导致系统升级失败的问题。使得在多分区存储设备作为本地升级包存放点进行系统升级时,不受升级分区的数目及挂载点的限制,改善了的Android系统升级的灵活性和可扩展性。
[0033]本发明还提供了一种多分区外存储设备的Android系统升级系统,如图2所示,所述升级系统包括:
获取单元100,用于在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码;
扫描单元200,用于扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;;
录入单元300,用于调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中;
读取单元400,用于重启进入recovery系统,读取所述唯一识别码和升级包的相对路
径;
升级单元500,用于找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行Android系统升级。
[0034]进一步地,所述的多分区外存储设备的Android系统升级方法中,所述外存储设备为USB存储设备或SD卡存储设备。
[0035]进一步地,所述的多分区外存储设备的Android系统升级系统中,所述录入单元300中唯一识别码和升级包的相对路径保存到/cache/recovery/command文件中。
[0036]更进一步地,所述的多分区外存储设备的Android系统升级系统中,所述获取单元100中获取本地挂载的所有外存储设备的分区对应的唯一识别码采用Android系统中的blkid命令。
[0037]因为上述模块的具体实施细节都在多分区外存储设备的Android系统升级方法中进行了详细描述,这里就不再赘述了。
[0038]综上所述,本发明的多分区外存储设备的Android系统升级方法和系统,其中所述方法包括:首先,在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码;然后扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;再调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中;重启进入recovery系统,读取所述唯一识别码和升级包的相对路径;找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行完成Android系统升级。其解决了在Android系统升级时由于挂载的外存储设备分区数不确定,导致系统升级失败的问题。使得在多分区存储设备作为本地升级包存放点进行系统升级时,不受升级分区的数目及挂载点的限制,改善了的Android系统升级的灵活性和可扩展性。同时,通过记录以前升级时外存储设备分区的使用情况,优化了搜索过程,大大降低了 Android系统升级所需的时间。
[0039]应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【权利要求】
1.一种多分区外存储设备的Android系统升级方法,其特征在于,所述升级方法依次包括以下步骤: A、在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码; B、扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径; C、调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中; D、重启进入recovery系统,读取所述唯一识别码和升级包的相对路径; E、找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行Android系统升级。
2.根据权利要求1所述的多分区外存储设备的Android系统升级方法,其特征在于,所述步骤B中扫描本地挂载的所有外存储设备的分区,找到所述升级包具体包括: B1、记录原先升级时使用过的外存储设备的分区的唯一识别码及其使用次数; B2、将所述唯一识别码按照使用次数从高到低进行排序; B3、依次扫描每一唯一识别码对应的外存储设备的分区,若找到所述升级包,则记录与其对应的外存储设备的分区的唯一识别码,并累积其使用次数;若没有找到所述升级包,则搜索剩余的外存储设备的分区,找到所述升级包。
3.根据权利要求2所述的多分区外存储设备的Android系统升级方法,其特征在于,在所述步骤B3中依次扫描每一唯一识别码对应的外存储设备的分区之前包括:首先查看所述外存储设备的分区是否被挂载,若所述外存储设备的分区没有被挂载,则直接进入下一外存储设备的分区的扫描;当所述外存储设备的分区被挂载后,才在其中查找所述升级包。
4.根据权利要求1所述的多分区外存储设备的Android系统升级方法,其特征在于,所述步骤C中唯一识别码和升级包的相对路径保存到/cache/recovery/command文件中。
5.根据权利要求1所述的多分区外存储设备的Android系统升级方法,其特征在于,所述步骤A中获取本地挂载的所有外存储设备的分区对应的唯一识别码采用Android系统中的blkid命令。
6.根据权利要求5所述的多分区外存储设备的Android系统升级方法,其特征在于,所述步骤A中还包括将唯一识别码保存到/data目录下的blkid文件中。
7.一种多分区外存储设备的Android系统升级系统,其特征在于,所述升级系统包括: 获取单元,用于在Android系统中,获取本地挂载的所有外存储设备的分区对应的唯一识别码; 扫描单元,用于扫描本地挂载的所有外存储设备的分区,找到所述升级包并进行升级包校验,校验成功后记录所述升级包的相对路径;; 录入单元,用于调用系统接口,将存储有升级包的外存储设备的分区所对应的唯一识别码和升级包的相对路径写入recovery系统中; 读取单元,用于重启进入recovery系统,读取所述唯一识别码和升级包的相对路径; 升级单元,用于找出与所述唯一识别码对应的外存储设备的分区,将所述外存储设备的分区在recovery系统中进行挂载,从挂载后的存储设备中获取升级包,进行Android系统升级。
8.根据权利要求7所述的多分区外存储设备的Android系统升级系统,其特征在于,所述外存储设备为USB存储设备。
9.根据权利要求7所述的多分区外存储设备的Android系统升级系统,其特征在于,所述录入单元中唯一识别码和升级包的相对路径保存到/cache/recovery/command文件中。
10.根据权利要求7所述的多分区外存储设备的Android系统升级系统,其特征在于,所述获取单元中获取本地挂载的所有外存储设备的分区对应的唯一识别码采用Android系统中的blkid 命令。
【文档编号】G06F9/445GK103544031SQ201310377841
【公开日】2014年1月29日 申请日期:2013年8月27日 优先权日:2013年8月27日
【发明者】祁成红 申请人:Tcl集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1