CN103530142A - 一种基于存储设备的Android系统升级方法和系统 - Google Patents
一种基于存储设备的Android系统升级方法和系统 Download PDFInfo
- Publication number
- CN103530142A CN103530142A CN201310166435.9A CN201310166435A CN103530142A CN 103530142 A CN103530142 A CN 103530142A CN 201310166435 A CN201310166435 A CN 201310166435A CN 103530142 A CN103530142 A CN 103530142A
- Authority
- CN
- China
- Prior art keywords
- memory device
- android
- carry
- upgrade
- unique identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于存储设备的Android系统升级方法和系统,其中所述方法包括:首先在Android系统的块设备标识库获取升级文件所在的存储设备的唯一识别码,然后进入recovery系统后,在Android系统的块设备标识库中找到所述唯一识别码对应,并将所述唯一识别码的存储设备挂载到recovery系统中,最后从挂载后的存储设备中获取升级文件,完成Android系统升级。其确保了有升级文件的存储设备在recovery系统与Android系统中唯一对应,从而当有多个存储设备同时存在时,不会因为挂载顺序不确定而导致无法找到有升级文件的存储设备,令Android升级失败。
Description
技术领域
本发明涉及Android系统升级技术领域,尤其涉及一种基于存储设备的Android系统升级方法和系统。
背景技术
在Android系统研究领域,通常将机器正常启动时的系统称为Android系统,同时将机器进行系统升级(即对Android系统进行升级)时所使用的系统称为recovery系统。Android 系统一般通过recovery系统完成系统的恢复和升级,其中包括恢复出厂设置、OTA升级、补丁升级和固件升级。
现有技术中,对Android系统进行升级需先配置升级文件所在的存储设备的挂载路径,以usb存储设备为例,需在recovery系统的recovery.fstab文件中配置usb存储设备的挂载路径,如/udisk(udisk指usb存储设备盘符);当Android系统需要升级时,扫描本地挂载的存储设备,查找其中的升级文件,例如升级包,将升级包路径写入到/recovery/cmd中(无论扫描到哪个usb存储设备,它写入/recovery/cmd的路径都是/udisk/xxx.zip, 其中xxx.zip是升级包的名称,usb存储设备的名称将相应挂载到/udisk上),然后重启进入到recovery系统。recovery系统启动时,读取recovery.fstab中usb存储设备的挂载路径,根据该挂载路径将usb存储设备挂载至recovery系统上;usb存储设备挂载完成后,从前述挂载路径中读入该usb存储设备中的升级包,并完成升级。
但是在升级Android系统时, usb存储设备的名称是不确定的(通常由Android系统依据挂载入的顺序自动依次命名为sda,sdb,sdc……),而recovery.fstab中usb存储设备的名称默认为第一个挂载入的usb存储设备的名称(例如sda);这样,若本地挂载的usb存储设备不唯一,即除了存储有升级包的usb存储设备外还有其他usb存储设备;由于这些usb存储设备的挂载顺序不确定,从而各个usb存储设备的名称也不确定,这样便可能导致存储有升级包的usb存储设备的名称无法与前述recovery.fstab中挂载路径包含的usb存储设备的名称相对应,因而启动recovery系统后读取到的recovery.fstab中usb存储设备的挂载路径可能并非正确的挂载路径,当然亦不能从该挂载路径下的usb存储设备中读到所需的升级包,最终将导致升级失败。
有鉴于此,现有技术有待改进和提高。
发明内容
鉴于现有技术的不足,本发明目的在于提供一种基于存储设备的Android系统升级方法和系统。旨在解决现有技术中Android系统升级时,除了挂载存储有升级文件的存储设备外,还同时挂载有其他存储设备,由于各个存储设备的挂载顺序不确定而导致升级失败的问题。
本发明的技术方案如下:
一种基于存储设备的Android系统升级方法,其中,所述升级方法依次包括以下步骤:
A、在Android系统中,扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码;
B、根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中;
C、重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码;
D、将所述唯一识别码对应的存储设备在recovery系统中进行挂载;
E、从挂载后的存储设备中获取升级文件,完成Android系统升级。
优选地,所述的基于存储设备的Android系统升级方法,其中,所述步骤A中还包括从Andriod系统的块设备标识库中获取所述存储设备的设备文件系统类型。
优选地,所述的基于存储设备的Android系统升级方法,其中,在所述步骤C中还包括:在recovery系统的块设备标识库中,根据设备文件系统类型确定存储设备的挂载形式。
优选地,所述的基于存储设备的Android系统升级方法,其中,所述存储设备为USB存储设备。
一种基于存储设备的Android系统升级系统,其中,所述升级系统包括:
扫描模块,用于在Android系统中扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码;
路径建立模块,用于根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中;
对应模块,用于重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码;
挂载模块,用于将所述唯一识别码对应的存储设备在recovery系统中进行挂载;
升级模块,用于从挂载后的存储设备中获取升级文件,完成Android系统升级。
优选地,所述的基于存储设备的Android系统升级系统,其中,所述扫描模块还包括从Andriod系统的块设备标识库中获取所述存储设备的设备文件系统类型。
优选地,所述的基于存储设备的Android系统升级系统,其中,所述对应模块还包括用于在recovery系统中,根据设备文件系统类型确定存储设备的挂载形式。
优选地,所述的基于存储设备的Android系统升级系统,其中,所述存储设备为USB存储设备。
有益效果:
本发明的基于存储设备的Android系统升级方法和系统,其中所述方法包括:首先在Android系统的块设备标识库获取升级文件所在的存储设备的唯一识别码,然后进入recovery系统后,在Android系统的块设备标识库中找到所述唯一识别码对应,并将所述唯一识别码的存储设备挂载到recovery系统中,最后从挂载后的存储设备中获取升级文件,完成Android系统升级。其确保了有升级文件的存储设备在recovery系统与Android系统中唯一对应,从而当有多个存储设备同时存在时,不会因为挂载顺序不确定而导致无法找到有升级文件的存储设备,令Android升级失败。
附图说明
图1为本发明的基于存储设备的Android系统升级方法的流程图。
图2为本发明的基于存储设备的Android系统升级系统的结构框图。
具体实施方式
本发明提供一种基于存储设备的Android系统升级方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,其为本发明的基于存储设备的Android系统升级方法的流程图。如图所示,所述升级方法依次包括以下步骤:
S1、在Android系统中,扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码;
S2、根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中;
S3、重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码;
S4、将所述唯一识别码对应的存储设备在recovery系统中进行挂载;
S5、从挂载后的存储设备中获取升级文件,完成Android系统升级。
下面分别针对上述步骤进行详细描述:
所述步骤S1为在Android系统中,扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码。具体来说,在Android系统下,扫描本地挂载的所有存储设备(如存储设备1、存储设备2和存储设备3),通过Android系统的libblkid库(block device id library,块设备标识库)获取存储设备1、存储设备2和存储设备3的唯一识别码uuid。其中,所述唯一识别码uuid是指在一台机器上生成的数字,它保证对在同一时空中的所有机器的标识都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,唯一识别码uuid用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。即所述唯一识别码uuid与存储设备唯一对应的,而无论所述存储设备插在哪个端口,其读取到的唯一识别码uuid都是唯一的。确保了当多个存储设备插入后挂载顺序不确定时,存储设备在Android系统和recovery系统都是唯一确定的。应当理解地是,所述Android系统的块设备标识库为一开源的数据库,其在本方案中应用之前,只需要进行简单编译入Android系统即可。下述的recovery系统的块设备标识库也同样适用。
所述步骤S2为根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中。具体来说,在前述存储设备(即有升级文件的存储设备)中查找用于Android系统升级的升级文件,即获取升级包的存储路径,通过android系统的块设备标识库生成升级包的路径(即挂载路径)如/mnt/usb/uuid/update.zip(在本实施例中,所述存储设备为usb存储设备) ,然后将升级包的路径写入recovery系统如/cache/recovery/cmd。
所述步骤S3为重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码。具体来说,当系统重启,进入recovery系统后,此时在所述recovery系统的块设备标识库中查找唯一识别码(如可以用采用对比的方式,即比对recovery系统的libblkid中的uuid依次和/cache/recovery/cmd中的uuid进行比较),直至找到前述的唯一识别码,即确定真正对应的那个存储设备的uuid。
所述步骤S4为将所述唯一识别码对应的存储设备在recovery系统中进行挂载,在本实施例中,生成/mnt/usb/uuid的挂载路径,将对应的存储设备的挂载到该挂载路径中(原来的存储设备挂载在android系统中,这里需要挂载至recovery系统中)。
所述步骤S5为从挂载后的所述存储设备中获取升级文件,完成Android系统升级。即从该挂载路径中的存储设备中获取升级包update.zip,完成系统的升级。利用升级包进行升级的方法可采用常规技术,就不多做赘述了。
进一步地,在本发明的基于存储设备的Android系统升级方法中,所述步骤S1中还可以包括获取所述存储设备的设备文件系统类型(如fat、ntfs、ext2、ext3或ext4等文件系统类型)。即通过Android系统的块设备标识库获取所述存储设备的设备文件系统类型。
更进一步地,在recovery系统中,根据设备文件系统类型确定存储设备的挂载形式。在本实施例中,在recovery系统下,通过libblkid获取usb存储设备的文件系统类型,根据设备文件系统类型确定usb存储设备的挂载形式。由于在不同的设备文件系统类型下,数据的组织形式或结构可能不一样,本实施例中可根据获取的设备文件系统类型确定挂载形式,弥补目前只支持fat和ext4文件系统的缺陷,从而增加多文件系统的支持。
本发明还提供了一种基于存储设备的Android系统升级系统,如图2所示,所述升级系统包括:
扫描模块100,用于在Android系统中扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码;
路径建立模块200,用于根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中;
对应模块300,用于重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码;
挂载模块400,用于将所述唯一识别码对应的存储设备在recovery系统中进行挂载;
升级模块500,用于从挂载后的存储设备中获取升级文件,完成Android系统升级。
进一步地,所述扫描模块还包括获取所述存储设备的设备文件系统类型。另外,所述对应模块还包括用于在recovery系统中,根据设备文件系统类型确定存储设备的挂载形式。
因为上述模块的具体实施细节都在基于存储设备的Android系统升级方法中进行了详细描述,这里就不再赘述了。
综上所述,本发明的基于存储设备的Android系统升级方法和系统,其中所述方法包括:首先在Android系统的块设备标识库获取升级文件所在的存储设备的唯一识别码,然后进入recovery系统后,在Android系统的块设备标识库中找到所述唯一识别码对应,并将所述唯一识别码的存储设备挂载到recovery系统中,最后从挂载后的存储设备中获取升级文件,完成Android系统升级。其确保了有升级文件的存储设备在recovery系统与Android系统中唯一对应,从而当有多个存储设备同时存在时,不会因为挂载顺序不确定而导致无法找到有升级文件的存储设备,令Android升级失败。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1. 一种基于存储设备的Android系统升级方法,其特征在于,所述升级方法依次包括以下步骤:
A、在Android系统中,扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码;
B、根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中;
C、重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码;
D、将所述唯一识别码对应的存储设备在recovery系统中进行挂载;
E、从挂载后的存储设备中获取升级文件,完成Android系统升级。
2.根据权利要求1所述的基于存储设备的Android系统升级方法,其特征在于,所述步骤A中还包括从Andriod系统的块设备标识库中获取所述存储设备的设备文件系统类型。
3.根据权利要求2所述的基于存储设备的Android系统升级方法,其特征在于,在所述步骤C中还包括:在recovery系统的块设备标识库中,根据设备文件系统类型确定存储设备的挂载形式。
4.根据权利要求1所述的基于存储设备的Android系统升级方法,其特征在于,所述存储设备为USB存储设备。
5.一种基于存储设备的Android系统升级系统,其特征在于,所述升级系统包括:
扫描模块,用于在Android系统中扫描本地挂载的所有存储设备,从Andriod系统的块设备标识库中获取有升级文件的存储设备的唯一识别码;
路径建立模块,用于根据前述存储设备的唯一识别码生成升级文件的挂载路径,然后将所述挂载路径写入recovery系统中;
对应模块,用于重启进入recovery系统后,在recovery系统的块设备标识库中找到所述唯一识别码;
挂载模块,用于将所述唯一识别码对应的存储设备在recovery系统中进行挂载;
升级模块,用于从挂载后的存储设备中获取升级文件,完成Android系统升级。
6.根据权利要求5所述的基于存储设备的Android系统升级系统,其特征在于,所述扫描模块还包括从Andriod系统的块设备标识库中获取所述存储设备的设备文件系统类型。
7.根据权利要求6所述的基于存储设备的Android系统升级系统,其特征在于,所述对应模块还包括用于在recovery系统中,根据设备文件系统类型确定存储设备的挂载形式。
8.根据权利要求5所述的基于存储设备的Android系统升级系统,其特征在于,所述存储设备为USB存储设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310166435.9A CN103530142A (zh) | 2013-05-08 | 2013-05-08 | 一种基于存储设备的Android系统升级方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310166435.9A CN103530142A (zh) | 2013-05-08 | 2013-05-08 | 一种基于存储设备的Android系统升级方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103530142A true CN103530142A (zh) | 2014-01-22 |
Family
ID=49932182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310166435.9A Pending CN103530142A (zh) | 2013-05-08 | 2013-05-08 | 一种基于存储设备的Android系统升级方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530142A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015131488A1 (zh) * | 2014-06-18 | 2015-09-11 | 中兴通讯股份有限公司 | 终端固件升级方法、装置及计算机存储介质 |
CN105045612A (zh) * | 2015-06-26 | 2015-11-11 | Tcl集团股份有限公司 | 一种Android终端的外设升级恢复方法及系统 |
CN105912369A (zh) * | 2016-04-26 | 2016-08-31 | 青岛海信移动通信技术股份有限公司 | 一种系统升级方法和装置 |
CN106789280A (zh) * | 2016-12-27 | 2017-05-31 | Tcl集团股份有限公司 | 一种基于Android系统的升级保护方法及系统、移动终端 |
CN114443083A (zh) * | 2021-07-09 | 2022-05-06 | 荣耀终端有限公司 | 系统升级方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102650947A (zh) * | 2012-04-01 | 2012-08-29 | 广东欧珀移动通信有限公司 | 一种Android手持设备连续增量的空中升级方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
US20120264411A1 (en) * | 2011-04-13 | 2012-10-18 | Dsp Group Ltd. | Method and apparatus for adapting a telephony component to operate in a different telephony |
CN102802083A (zh) * | 2012-08-24 | 2012-11-28 | 乐视网信息技术(北京)股份有限公司 | 一种基于Android系统的机顶盒升级方法及其机顶盒 |
-
2013
- 2013-05-08 CN CN201310166435.9A patent/CN103530142A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120264411A1 (en) * | 2011-04-13 | 2012-10-18 | Dsp Group Ltd. | Method and apparatus for adapting a telephony component to operate in a different telephony |
CN102650947A (zh) * | 2012-04-01 | 2012-08-29 | 广东欧珀移动通信有限公司 | 一种Android手持设备连续增量的空中升级方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
CN102802083A (zh) * | 2012-08-24 | 2012-11-28 | 乐视网信息技术(北京)股份有限公司 | 一种基于Android系统的机顶盒升级方法及其机顶盒 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015131488A1 (zh) * | 2014-06-18 | 2015-09-11 | 中兴通讯股份有限公司 | 终端固件升级方法、装置及计算机存储介质 |
CN105045612A (zh) * | 2015-06-26 | 2015-11-11 | Tcl集团股份有限公司 | 一种Android终端的外设升级恢复方法及系统 |
CN105045612B (zh) * | 2015-06-26 | 2020-05-26 | Tcl科技集团股份有限公司 | 一种Android终端的外设升级恢复方法及系统 |
CN105912369A (zh) * | 2016-04-26 | 2016-08-31 | 青岛海信移动通信技术股份有限公司 | 一种系统升级方法和装置 |
CN106789280A (zh) * | 2016-12-27 | 2017-05-31 | Tcl集团股份有限公司 | 一种基于Android系统的升级保护方法及系统、移动终端 |
CN114443083A (zh) * | 2021-07-09 | 2022-05-06 | 荣耀终端有限公司 | 系统升级方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544031A (zh) | 多分区外存储设备的Android系统升级方法和系统 | |
US8423991B2 (en) | Embedded network device and firmware upgrading method | |
CN103530142A (zh) | 一种基于存储设备的Android系统升级方法和系统 | |
CN105183497A (zh) | 一种通用服务器自动批量刷新bios的方法 | |
CN103699421A (zh) | 嵌入式设备系统升级方法及其装置 | |
CN111142911B (zh) | 具有异常恢复功能的嵌入式系统及其升级方法 | |
CN107977223B (zh) | 一种配置兼容性检查方法及装置 | |
CN104317618A (zh) | 一种固件分区处理方法和装置 | |
CN104317694A (zh) | 一种整机测试方法及装置 | |
CN101494930A (zh) | 一种智能终端升级方法和智能终端 | |
CN110928559A (zh) | 一种数据烧录方法、装置、电子设备及存储介质 | |
CN103365676B (zh) | 通信设备的软件升级方法及装置 | |
CN102799497A (zh) | Nvram数据恢复系统及方法 | |
CN109766140A (zh) | 一种机顶盒启动异常的定位方法及装置 | |
US10146433B2 (en) | Method for initializing NAND flash serving as a booting device | |
CN111104151A (zh) | 一种基于Shell脚本的Git代码简化的管理方法 | |
CN104536841A (zh) | 一种Android系统Data分区自修复方法及系统 | |
US9588884B2 (en) | Systems and methods for in-place reorganization of device storage | |
CN102572591B (zh) | 一种高级安全数字电视机顶盒生产方法及装置 | |
CN107168750A (zh) | 一种固件升级保护方法及系统 | |
CN108170456B (zh) | 电子设备的固件升级方法及装置 | |
CN111858119A (zh) | 一种bios故障修复方法及相关装置 | |
CN108595292B (zh) | 一种系统的优化方法、移动终端及计算机存储介质 | |
CN116755735A (zh) | 嵌入式软件在线升级方法、装置、腹膜透析仪、存储介质 | |
CN114020211B (zh) | 存储空间管理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140122 |
|
RJ01 | Rejection of invention patent application after publication |