T卡跨分区升级操作系统的方法及系统的利记博彩app
【专利摘要】本发明提供一种T卡跨分区升级操作系统的方法及系统,该方法包括:读取新版操作系统软件;新版操作系统软件中包括第一分区表;查找第一分区表中每个分区的起始地址;读取存储器中的旧版操作系统软件;旧版操作系统软件中包括第二分区表;查找第二分区表中每个分区的起始地址;将所述第一分区表中各分区的起始地址作为升级后的各分区起始地址,将所述新版操作系统软件的各分区文件镜像编写到升级后的分区地址中。本发明在系统分区发生变化的情况下可以直接升级旧版操作系统,解决了传统的操作系统升级方法不能跨区升级的问题。
【专利说明】T卡跨分区升级操作系统的方法及系统
【技术领域】
[0001]本发明属于计算机【技术领域】,涉及一种操作系统升级方法,特别是涉及一种T卡跨分区升级操作系统的方法及系统。
【背景技术】
[0002]Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟开发。随着电子技术的发展,Android的版本不断更新,功能不断完善。为了使已淘汰的移动终端还能满足用户的需求,必然需要对淘汰的移动终端进行升级。
[0003]随着移动终端软件的发展,其功能越来越复杂,随之而来的缺陷也就越来越多,同时随着Android系统的版本更新,为了解决软件缺陷和更新Android系统版本的问题,需要升级移动终端操作系统的几率就会越来越大。
[0004]一般的手机系统升级的方法是T卡升级。所谓的T卡升级就是把升级包拷贝到手机SD卡中进行刷机升级的操作。T卡是T-Flash卡的简称,T-Flash卡的容量范围在32MB以上,适用于手机、电脑、数码相机、DV、MP4、MP5、PND等电子产品设备,其体积小,使用方便快捷,即插即用,价格较低。
[0005]然而,由于Android系统版本的不断更新,Android系统的分区发生了变化。直接用最新版本的操作系统软件去升级旧版本的手机操作系统,会出现很多问题,手机无法正常使用。比如:直接用手机4.1版本的系统软件去升级应用4.0版本的系统软件的手机,就会导致手机死机,无法开启。即现有的T卡升级方法只能够实现与旧版操作系统软件各分区文件大小相同且起始地址也相同的新版操作系统软件的升级。一旦新版操作系统软件中的各分区文件大小和旧版操作系统软件中对应的文件不同时,现有的T卡升级方法就无法实现用新版系统软件直接升级旧版系统软件而不出问题,即:无法在操作系统分区发生变化的情况下实现直接升级的。
【发明内容】
[0006]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种T卡跨分区升级操作系统的方法及系统,用于解决现有T卡升级无法在系统分区发生变化的情况下实现直接升级旧版操作系统的问题。
[0007]为实现上述目的及其他相关目的,本发明提供一种T卡跨分区升级操作系统的方法,所述T卡跨分区升级操作系统的方法包括:读取新版操作系统软件;所述新版操作系统软件中包括第一分区表;所述第一分区表标明了新版操作系统软件中的各个文件在存储器中对应编写的分区地址;查找所述第一分区表中每个分区的起始地址;读取存储器中的旧版操作系统软件;所述旧版操作系统软件中包括第二分区表;所述第二分区表标明了旧版操作系统软件中的各个文件在存储器中对应编写的分区地址;查找所述第二分区表中每个分区的起始地址;将所述第一分区表中各分区的起始地址作为升级后的各分区起始地址,将所述新版操作系统软件的各分区文件镜像编写到升级后的分区地址中,即新版操作系统软件中的各分区文件覆盖了旧版操作系统中各个分区文件。从而更新了系统。
[0008]优选地,将所述新版操作系统软件的各分区文件镜像编写到升级后的分区地址中的实现过程包括:设在第二分区表中,第一分区的起始地址为第M个扇区,第二分区的起始地址为第M+N个扇区;其中,M为大于等于O的正整数,N为大于等于I的正整数;扇区大小为512字节;设在第一分区表中,第一分区的起始地址为第M个扇区,第二分区的起始地址为第M+4N个扇区;那么,升级前旧版操作系统软件在第一分区中的内容从存储器的第M个扇区开始编写;升级后新版操作系统软件在第一分区中的内容从存储器的第M个扇区开始编写。
[0009]优选地,将新版操作系统软件的各分区文件对应编写到升级后的分区地址中覆盖旧版操作系统软件中各个分区文件的实现过程包括:设旧版操作系统软件在第一分区中占用的空间为NX512个字节;新版操作系统软件在第一分区需要占用JX512个字节;其中J大于等于N ;升级前,旧版操作系统第一分区中的文件是从存储器的第MX512个字节开始编写,至存储器的第MX 512+NX 512个字节写完;则升级后,新版操作系统软件在第一分区中的内容从存储器的第MX 512个字节开始编写,至存储器的第MX 512+JX 512个字节写完;覆盖存储器中旧版操作系统分区中第MX 512到MX 512+NX 512字节的文件。
[0010]优选地,所述第一分区表与第二分区表中对应分区的起始地址不同。
[0011]优选地,将所述旧版操作系统软件在第二分区表所示的各分区文件对应重新编写到升级后的各分区地址中的过程是通过编写脚本实现的;所述脚本采用的命令包括Linux/UNIX系统下的dd命令。
[0012]本发明还提供一种T卡跨分区升级操作系统的系统,所述T卡跨分区升级操作系统的系统包括:读取模块,分别读取存储在存储器中的旧版操作系统软件和存储在T卡中的新版操作系统软件;所述新版操作系统软件中包括第一分区表;所述第一分区表标明了新版操作系统软件中的各个文件在存储器中对应编写的分区地址;所述旧版操作系统软件中包括第二分区表;所述第二分区表标明了旧版操作系统软件中的各个文件在存储器中对应编写的分区地址;查找模块,与所述读取模块相连,分别查找所述第一分区表中各分区的起始地址以及所述第二分区表中各分区的起始地址;镜像偏移模块,与所述读取模块和查找模块分别相连,将所述第一分区表中每个分区的起始地址作为升级后的分区起始地址,将所述新版操作系统软件中的各个分区文件镜像编写到升级后的分区地址中;升级编写模块,与所述读取模块和查找模块分别相连,将新版操作系统软件的各个分区文件对应编写到升级后的分区地址中。旧版操作系统软件的文件编写地址之后。
[0013]优选地,所述镜像偏移模块包括:偏移计算单元,与所述查找模块相连,计算所述第一分区表中每个分区的起始地址到所述第二分区表中对应的分区起始地址发生的偏移量;偏移单元,与所述读取模块、查找模块和所述偏移计算单元分别相连,将所述新版操作系统软件的各分区文件根据对应的偏移量镜像编写到升级后的分区地址中。
[0014]优选地,每个分区对应一个偏移量,各个分区对应的偏移量均不同。
[0015]优选地,所述编写单元将新版操作系统软件的各个分区文件从对应分区中的起始地址开始编写。
[0016]如上所述,本发明所述的T卡跨分区升级操作系统的方法及系统,具有以下有益效果:
[0017]本发明在系统分区发生变化的情况下可以直接升级旧版操作系统,解决了传统的操作系统升级方法不能跨区升级的问题,为操作系统的升级突破了分区的局限性,为后续系统升级带来了极大的便利。
【专利附图】
【附图说明】
[0018]图1为本发明所述的T卡跨分区升级操作系统的方法的流程示意图。
[0019]图2为本发明所述的旧版操作系统软件的跨区升级过程示意图。
[0020]图3为本发明所述的新版操作系统软件的跨区升级过程示意图。
[0021]图4为本发明所述的T卡跨分区升级操作系统的系统的结构示意图。
[0022]图5为本发明所述的镜像偏移模块的结构示意图。
[0023]图6为本发明所述的升级编写模块的结构示意图。
[0024]元件标号说明
[0025]410 读取模块
[0026]420 查找模块
[0027]430 镜像偏移模块
[0028]431 偏移计算单元
[0029]432 偏移单元
[0030]440 升级编写模块
[0031]441 编写单元
【具体实施方式】
[0032]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0033]请参阅附图。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0034]下面结合实施例和附图对本发明进行详细说明。
[0035]实施例
[0036]本实施例提供一种T卡跨分区升级操作系统的方法,如图1所示,所述T卡跨分区升级操作系统的方法包括:
[0037]读取新版操作系统软件。所述新版操作系统软件中包括第一分区表;所述第一分区表标明了新版操作系统软件中的各个文件在存储器中对应编写的分区地址。该分区地址可以是文件所在的分区,或进一步为文件所在的分区中的位置,或更进一步为文件所在的分区在存储器中占用的空间地址以及文件的编写地址。可以说,所述分区地址不局限于具体的存储器地址,也可以是该分区所占用的空间大小或者其他,只要能够实现重新分区,明确各区在存储器中的位置并实现本发明所述的方案就包括在本发明的保护范围内。
[0038]查找所述第一分区表中每个分区的起始地址。
[0039]读取存储器中的旧版操作系统软件;所述旧版操作系统软件中包括第二分区表;所述第二分区表标明了旧版操作系统软件中的各个文件在存储器中对应编写的分区地址。
[0040]查找所述第二分区表中每个分区的起始地址。所述第一分区表与第二分区表中对应分区的起始地址不同。通常情况下,在存储器不变(即总的存储空间不变)的情况下,一旦升级扩大第一分区的空间,那么相应地,第二分区、第三分区等后续分区的地址就要向后推移,这样一来,就使得升级后的分区表中的各分区的起始地址自然就不可能与升级前的分区表中的各分区的起始地址相同了。
[0041]将所述第一分区表中各分区的起始地址作为升级后的各分区起始地址,将所述新版操作系统软件的各分区文件镜像编写到升级后的分区地址中,即将新版操作系统软件的各分区文件对应编写到升级后的分区地址中,覆盖旧版操作系统软件的各分区文件的编写地址。
[0042]下面以一示例的方式对本发明的跨区升级过程进行详细说明,但本发明的实现过程不限于该示例所述的具体情节,凡是根据本发明所述的原理实现的跨区升级过程都包括在本发明的保护范围内。本示例以扇区为单位对各分区的空间进行划分,除此之外,也可以以其他任何有效形式对各分区进行划分,本发明的保护范围不限于本示例所述的内容。
[0043]例如:参见图2所示,设在第二分区表中,第一分区的起始地址为第M个扇区,第二分区的起始地址为第M+N个扇区;其中,M为大于等于I的正整数,N为大于等于I的正整数;扇区大小为512字节;在第一分区表中,第一分区的起始地址为第M个扇区,第二分区的起始地址为第M+4N个扇区;
[0044]那么,升级前旧版操作系统软件在第一分区中的内容从存储器的第M个扇区开始编写;升级后新版操作系统软件在第一分区中的内容从存储器的第M个扇区开始编写。
[0045]进一步,参见图3所示,设旧版操作系统软件在第一分区中占用的空间为NX512个字节;新版操作系统软件在第一分区需要占用JX 512个字节;其中J大于等于N;
[0046]那么,新版操作系统软件的跨区升级过程为:升级后,新版操作系统软件在第一分区中的内容从存储器的第MX512个字节开始编写,至存储器的第(M+J) X512个字节写完;覆盖旧版操作系统软件在第一分区中的从存储器第MX512个字节始,至存储器的第(M+N) X512字节的内容。
[0047]对于旧版操作系统软件的跨区升级过程,本发明可以通过编写脚本的方式实现。
[0048]例如:脚本采用Linux/UNIX系统下的dd命令,就可以实现本发明所述的对旧版操作系统软件的镜像编写,具体为:
[0049]根据系统升级包中的分区表,查找文件名以及对应的开始扇区(start_sector)来制作升级脚本(updater-script);
[0050]run_program("dev/busybox","dd",^if=/dev/cache, img,^of=/dev/block/mmcblk0〃,
[0051]"bs=512", "seek=169472");
[0052]在分区表中找到文件名cache, img,偏移扇区为169472,扇区大小为512字节;在整块分区中偏移169472个512字节的大小处,以dd命令把cache, img写入;[0053]package_extract_f iIe (^recovery, img", ,r/dev/recovery, img");
[0054]把recovery, img解压到/dev/目录下,用上述的
[0055]run_program("dev/busybox","dcT,^if=/dev/cache, img,^of=/dev/block/mmcblkO〃,
[0056]"bs=512", "seek=169472");
[0057]命令来写入。
[0058]其它需要升级的文件与上述类似,上述只是其中的一种解决方法,只要思想一致,不局限于用dd命令强制写入。也可用其它方式。dd是Linux/UNIX下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
[0059]dd命令的语法为:
[0060]if=输入文件(或设备名称)
[0061]Of=输出文件(或设备名称)
[0062]seek=blocks从输出文件开头跳过blocks个快后再开始复制;
[0063]bs=bytes同时设置读写块的大小为bytes。[0064]但旧版操作系统软件的跨区升级过程的范围不限于dd命令这一种命令,也不限于编写脚本这一种方式,在此不一一列举。在软件中,凡是能够实现旧版操作系统软件的跨区升级过程的方式和命令都包括在本发明的范围内。只要在本发明的实质精神范围内,对以上实施例的变化,变型都落在本发明的权利要求书范围内。本发明可以在分区大小顺序有变化的情况下,可以通过跨分区进行升级。
[0065]本实施例还提供一种T卡跨分区升级操作系统的系统,该系统可以实现本发明所述的T卡跨分区升级操作系统的方法,但该T卡跨分区升级操作系统的方法的实现装置包括但不限于本发明所述的T卡跨分区升级操作系统的系统。
[0066]如图4所示,所述T卡跨分区升级操作系统的系统包括:读取模块410,查找模块420,镜像偏移模块430,升级编写模块440。
[0067]所述读取模块410分别读取新版操作系统软件和旧版操作系统软件。所述新版操作系统软件中包括第一分区表;所述第一分区表标明了新版操作系统软件中的各个文件在存储器中对应编写的分区地址;所述旧版操作系统软件中包括第二分区表;所述第二分区表标明了旧版操作系统软件中的各个文件在存储器中对应编写的分区地址。
[0068]所述查找模块420与所述读取模块410相连,分别查找所述第一分区表中各分区的起始地址以及所述第二分区表中各分区的起始地址。
[0069]所述镜像偏移模块430与所述读取模块410和查找模块420分别相连,将所述第一分区表中每个分区的起始地址作为升级后的分区起始地址,将所述新版操作系统软件中的各个分区文件镜像编写到升级后的分区地址中。
[0070]进一步,如图5所示,所述镜像偏移模块430包括:偏移计算单元431,偏移单元432。所述偏移计算单元431与所述查找模块420相连,计算所述第一分区表中每个分区的起始地址到所述第二分区表中对应的分区起始地址发生的偏移量。其中,每个分区都对应一个偏移量,各个分区对应的偏移量均不相同,这也是因为在通常情况下,在存储器不变(即总的存储空间不变)的情况下,一旦升级扩大第一分区的空间,那么相应地,第二分区、第三分区等后续分区的地址就要向后推移,这样一来,就使得升级后的分区表中的各分区的起始地址自然就不可能与升级前的分区表中的各分区的起始地址相同了。所述偏移单元432与所述读取模块410、查找模块420和所述偏移计算单元431分别相连,将所述新版操作系统软件的各分区文件根据对应的偏移量镜像编写到升级后的分区地址中。
[0071]所述升级编写模块440与所述读取模块410和查找模块420分别相连,将新版操作系统软件的各个分区文件对应编写到升级后的分区地址中,覆盖旧版操作系统软件的各分区文件所占用的地址空间。进一步,如图6所示,所述升级编写模块440包括:编写单元441。所述编写单元441与所述读取模块410、查找模块420分别相连,将新版操作系统软件的各个分区文件对应编写到升级后的分区地址中。
[0072]本发明在系统分区发生变化的情况下可以直接升级旧版操作系统,解决了传统的操作系统升级方法不能跨区升级的问题,为操作系统的升级突破了分区的局限性,为后续系统升级带来了极大的便利。
[0073]综上所述,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0074]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种T卡跨分区升级操作系统的方法,其特征在于,所述T卡跨分区升级操作系统的方法包括: 读取新版操作系统软件;所述新版操作系统软件中包括第一分区表;所述第一分区表标明了新版操作系统软件中的各个文件在存储器中对应编写的分区地址; 查找所述第一分区表中每个分区的起始地址; 读取存储器中的旧版操作系统软件;所述旧版操作系统软件中包括第二分区表;所述第二分区表标明了旧版操作系统软件中的各个文件在存储器中对应编写的分区地址; 查找所述第二分区表中每个分区的起始地址; 将所述第一分区表中各分区的起始地址作为升级后的各分区起始地址,将所述新版操作系统软件的各分区文件镜像编写到升级后的分区地址中。
2.根据权利要求1所述的T卡跨分区升级操作系统的方法,其特征在于:将所述新版操作系统软件的各分区文件镜像编写到升级后的分区地址中的实现过程包括: 设在第二分区表中,第一分区的起始地址为第M个扇区,第二分区的起始地址为第M+N个扇区;其中,M为大于等于1的正整数,N为大于等于1的正整数;扇区大小为512字节; 设在第一分区表中,第一分区的起始地址为第M个扇区,第二分区的起始地址为第M+4N个扇区; 那么,升级前旧版操作系统软件在第一分区中的内容从存储器的第M个扇区开始编写;升级后新版操作系统软件在第一分区中的内容从存储器的第M个扇区开始编写。
3.根据权利要求2所述的T卡跨分区升级操作系统的方法,其特征在于:将新版操作系统软件的各分区文件对应编写到升级后的分区地址中旧版操作系统软件的文件编写地址之后的实现过程包括: 设旧版操作系统软件在第一分区中占用的空间为NX512个字节;新版操作系统软件在第一分区需要占用JX512个字节;其中J大于等于N ; 则升级前,旧版操作系统软件在第一分区中的内容从存储器的第MX512个字节开始编写,至存储器的第MX 512+NX 512个字节写完; 升级后,新版操作系统软件在第一分区中的内容从存储器的第MX512个字节开始编写,至存储器的第MX 512+JX 512个字节写完。
4.根据权利要求1所述的T卡跨分区升级操作系统的方法,其特征在于:所述第一分区表与第二分区表中对应分区的起始地址不同。
5.根据权利要求1所述的T卡跨分区升级操作系统的方法,其特征在于:将所述新版操作系统软件在第一分区表所示的各分区文件对应重新写入到存储器中的过程是通过编写脚本实现的;所述脚本采用的命令包括L1nux/UN1X系统下的dd命令。
6.一种T卡跨分区升级操作系统的系统,其特征在于,所述T卡跨分区升级操作系统的系统包括: 读取模块,分别读取保存到T卡里的新版操作系统软件和存储在存储器中的旧版操作系统软件;所述新版操作系统软件中包括第一分区表;所述第一分区表标明了新版操作系统软件中的各个文件在存储器中对应编写的分区地址;所述旧版操作系统软件中包括第二分区表;所述第二分区表标明了旧版操作系统软件中的各个文件在存储器中对应编写的分区地址;查找模块,与所述读取模块相连,分别查找所述第一分区表中各分区的起始地址以及所述第二分区表中各分区的起始地址; 镜像偏移模块,与所述读取模块和查找模块分别相连,将所述第一分区表中每个分区的起始地址作为升级后的分区起始地址,将所述新版操作系统软件中的各个分区文件镜像编写到升级后的分区地址中; 升级编写模块,与所述读取模块和查找模块分别相连,将新版操作系统软件的各个分区文件对应编写到升级后的分区地址中,覆盖旧版操作系统软件。
7.根据权利要求6所述的T卡跨分区升级操作系统的系统,其特征在于,所述镜像偏移模块包括: 偏移计算单元,与所述查找模块相连,计算所述第一分区表中每个分区的起始地址到所述第二分区表中对应的分区起始地址发生的偏移量; 偏移单元,与所述读取模块、查找模块和所述偏移计算单元分别相连,将所述新版操作系统软件的各分区文件根据对应的偏移量镜像编写到升级后的分区地址中。
8.根据权利要求6所述的T卡跨分区升级操作系统的系统,其特征在于:所述升级编写模块包括: 编写单元,与所述读取模块、查找模块分别相连,将新版操作系统软件的各个分区文件对应编写到升级后的分区地址中。
【文档编号】G06F9/445GK103677940SQ201310739251
【公开日】2014年3月26日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】周玲莉, 杨雄伟, 施小波 申请人:上海斐讯数据通信技术有限公司