CN109086078B - 安卓系统升级方法、装置、服务器及移动终端 - Google Patents

安卓系统升级方法、装置、服务器及移动终端 Download PDF

Info

Publication number
CN109086078B
CN109086078B CN201710447066.9A CN201710447066A CN109086078B CN 109086078 B CN109086078 B CN 109086078B CN 201710447066 A CN201710447066 A CN 201710447066A CN 109086078 B CN109086078 B CN 109086078B
Authority
CN
China
Prior art keywords
partition
changed
backup
data
flag bit
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.)
Active
Application number
CN201710447066.9A
Other languages
English (en)
Other versions
CN109086078A (zh
Inventor
张立广
毛会斌
余方玉
董晓光
张洋
孙小兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Spreadtrum Communications Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Spreadtrum Communications Shanghai Co Ltd filed Critical Spreadtrum Communications Shanghai Co Ltd
Priority to CN201710447066.9A priority Critical patent/CN109086078B/zh
Publication of CN109086078A publication Critical patent/CN109086078A/zh
Application granted granted Critical
Publication of CN109086078B publication Critical patent/CN109086078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种安卓系统升级方法、装置、服务器及移动终端。所述方法包括:制作OTA原始包,所述OTA原始包包括分区数据文件及分区表,其中所述分区表包括移动终端的分区信息;从所述OTA原始包中解压出分区数据文件及分区表;解析所述分区表,生成分区配置文件;根据所述分区配置文件及分区数据文件,制作OTA升级包;将所述OTA升级包推送到移动终端。移动终端根据OTA升级包进行系统升级。本发明能够在升级过程中自适应调整物理分区,减小了系统升级的局限性。

Description

安卓系统升级方法、装置、服务器及移动终端
技术领域
本发明涉及操作系统技术领域,尤其涉及一种安卓系统升级方法、装置、服务器及移动终端。
背景技术
Android(安卓)系统是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动终端,如智能手机、平板电脑等。由于安卓系统的开发和发布往往不是一次性的过程,需要根据实际应用的要求不断地更新和升级,因此,在移动终端的生命周期中会有多次的系统升级。通常,移动终端(如手机)的系统升级通过OTA(Over-the-Air Technology,空中下载技术)来实现。
OTA升级是指安卓系统提供的标准软件升级方式,可以无损失地升级系统,主要手段是服务器产出OTA升级包并推送给终端,终端下载升级包,将升级包中的数据文件写到对应的物理分区,实现系统升级。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
现有的系统升级方法,不能在升级过程中调整磁盘上的物理分区,一旦在目标版本中增加新功能或者修复bug导致物理分区发生变化,用户将无法通过OTA升级版本,影响用户体验。
发明内容
本发明提供的安卓系统升级方法、装置、服务器及移动终端,能够在升级过程中自适应调整物理分区,减小了系统升级的局限性。
第一方面,本发明提供一种安卓系统升级方法,适用于服务器,包括:
制作OTA原始包,所述OTA原始包包括分区数据文件及分区表,其中所述分区表包括移动终端的分区信息;
从所述OTA原始包中解压出分区数据文件及分区表;
解析所述分区表,生成分区配置文件;
根据所述分区配置文件及分区数据文件,制作OTA升级包;
将所述OTA升级包推送到移动终端。
可选地,所述分区配置文件包括:分区名称、分区大小、分区个数、分区顺序及分区备份标志位。
第二方面,本发明提供一种安卓系统升级方法,适用于移动终端,包括:
接收OTA升级包,从所述OTA升级包中解压出分区数据文件及分区配置文件;
解析所述分区配置文件,得到新版本的分区信息;
将所述新版本的分区信息与现有分区信息作比较,判断分区是否发生变化;
当分区发生变化时,对备份标志位为1的分区进行数据备份;
根据所述新版本的分区信息,调整物理分区;
对调整后物理分区中的备份标志位为1的分区进行数据恢复;
将所述分区数据文件写到对应物理分区。
可选地,所述方法还包括:
当分区未发生变化时,将所述分区数据文件写到对应物理分区。
可选地,当分区未发生变化时,在将所述分区数据文件写到对应物理分区之前,所述方法还包括:
判断断电标志位是否有效,当所述断电标志位有效时,对备份标志位为1的分区进行数据恢复;当所述断电标志位无效时,将所述分区数据文件写到对应物理分区。
可选地,所述分区信息包括:分区名称、分区大小、分区个数及分区顺序。
第三方面,本发明提供一种安卓系统升级装置,位于服务器,包括:
第一制作模块,用于制作OTA原始包,所述OTA原始包包括分区数据文件及分区表,其中所述分区表包括移动终端的分区信息;
第一解压模块,用于从所述OTA原始包中解压出分区数据文件及分区表;
第一解析模块,用于解析所述分区表,生成分区配置文件;
第二制作模块,用于根据所述分区配置文件及分区数据文件,制作OTA升级包;
推送模块,用于将所述OTA升级包推送到移动终端。
可选地,所述分区配置文件包括:分区名称、分区大小、分区个数、分区顺序及分区备份标志位。
第四方面,本发明提供一种安卓系统升级装置,位于移动终端,包括:
第二解压模块,用于接收OTA升级包,从所述OTA升级包中解压出分区数据文件及分区配置文件;
第二解析模块,用于解析所述分区配置文件,得到新的分区信息;
比较模块,用于将所述新版本的分区信息与现有分区信息作比较,判断分区是否发生变化;
备份模块,用于当分区发生变化时,对备份标志位为1的分区进行数据备份;
调整模块,用于根据所述新版本的分区信息,调整物理分区;
恢复模块,用于对调整后物理分区中的备份标志位为1的分区进行数据恢复;
写数据模块,用于将所述分区数据文件写到对应物理分区。
可选地,所述写数据模块,还用于当分区未发生变化时,将所述分区数据文件写到对应物理分区。
可选地,所述装置还包括:
断电判断模块,用于当分区未发生变化时,在将所述分区数据文件写到对应物理分区之前,判断断电标志位是否有效;
所述恢复模块,还用于当所述断电标志位有效时,对备份标志位为1的分区进行数据恢复;
所述写数据模块,还用于当所述断电标志位无效时,将所述分区数据文件写到对应物理分区。
可选地,所述分区信息包括:分区名称、分区大小、分区个数及分区顺序。
第五方面,本发明提供一种服务器,所述服务器包括上述服务器侧的安卓系统升级装置。
第六方面,本发明提供一种移动终端,所述移动终端包括上述移动终端侧的安卓系统升级装置。
本发明提供的安卓系统升级方法、装置、服务器及移动终端,服务器在制作OTA升级包时加入了分区配置文件,终端根据该分区配置文件执行OTA升级流程时根据新的分区信息对物理分区进行调整,与现有技术相比,在系统升级时能够自适应调整物理分区,保证用户数据不会丢失,且不会影响原来的安卓的selinux权限设定。对于小存储系统,可以灵活配置分区,留给用户更多的使用空间。进一步地,本发明支持全磁盘的分区调整,并且提供了完善的断电保护方案,确保终端不会发生变砖。
附图说明
图1为本发明一实施例提供的服务器侧安卓系统升级方法的流程图;
图2为本发明一实施例提供的移动终端侧安卓系统升级方法的流程图;
图3为本发明另一实施例提供的移动终端侧安卓系统升级方法的流程图;
图4为本发明一实施例提供的服务器侧安卓系统升级装置的结构示意图;
图5为本发明一实施例提供的移动终端侧安卓系统升级装置的结构示意图;
图6为本发明另一实施例提供的移动终端侧安卓系统升级装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种安卓系统升级方法,适用于服务器,如图1所示,所述方法包括:
S11、制作OTA原始包,所述OTA原始包包括分区数据文件及分区表,其中所述分区表包括移动终端的分区信息。
在安卓原生的OTA升级方案中,OTA原始包中保存了完整的用于升级的各镜像的原始信息,通过该原始包可以制作OTA升级包。本发明实施例中,OTA原始包不仅包括分区数据文件,还包括分区表,所述分区表用于管理终端中的物理分区,记载有各物理分区的详细配置情况。
根据项目需求,首先会在终端相关的目录创建一份预制的分区表。该文件中记录了最终希望为该终端在一定ROM空间的情况下对每个分区分配的空间大小。
在存储容量比较小的设备上,为了留给用户尽量多的内部存储空间,需要将system分区的空间尽量减小。在编译时,将设备相关目录的分区表拷贝到编译目标目录下,将system目录的一系列目标文件(如预制apk等)全部编译出来以后,计算system目录所有文件的大小总和,根据总大小更新预制的分区表中关于system分区的大小配置。
在打包OTA原始包时,会在编译目标目录下生成OTA原始包的临时文件夹,将更新后的分区表连同生成的其他需要更新的分区数据文件(不能按字节升级的需要拷贝相应的目录)拷贝到临时文件夹中,最终将该临时文件夹打成压缩包(OTA原始包target-files.zip)。OTA原始包被保存在服务器上,每个版本都会保留一份,以实现后续不同版本差分升级的要求。
S12、从所述OTA原始包中解压出分区数据文件及分区表。
S13、解析所述分区表,生成分区配置文件。
解析所述分区表,将分区的名称、大小、个数、顺序、分区备份标志位以及其他一些标志位写到分区配置文件中。
其中,分区备份标志位为1时,表示分区需要备份;分区备份标志位为0时,表示分区不需要备份。分区是否需要备份还与升级方式有关,例如,system分区在整包升级时,不需要备份;在差分升级时,需要备份。
S14、根据所述分区配置文件及分区数据文件,制作OTA升级包。
将所述分区配置文件及分区数据文件写到OTA升级包临时目录中,将临时目录打包再进行数据签名,生成OTA升级包。
S15、将所述OTA升级包推送到终端。
本发明实施例提供一种安卓系统升级方法,适用于移动终端,如图2所示,所述方法包括:
S21、接收OTA升级包,从所述OTA升级包中解压出分区数据文件及分区配置文件。解压时先将OTA升级包映射到共享内存中,再将OTA升级包中的分区配置文件转移到ramdisk中的文件里。
S22、解析所述分区配置文件,得到新版本的分区信息。将所述新版本的分区信息置于一个partition的结构体中,保存各物理分区的名称、大小、分区个数、分区顺序以及由分区配置文件中传来的一些关于各分区的标志位。
S23、将所述新版本的分区信息与现有分区信息作比较,判断分区是否发生变化。
在比较分区信息之前,先检测分区数据是否损坏。首先从磁盘中加载主分区头及备份分区头,通过GPT分区索引header中的headerCRC值与整个header校验得出的CRC值进行比较,相等则该分区头是正确的数据。该过程中会初始化设置一些GPTData数据结构中的关键信息(如numParts、blockSize、diskSize等)。然后加载详细分区数据,详细分区数据有两个来源(LBA2--LBA33和LBA-2--LBA-33),只有当数据块的CRC值与mainHeader或secondHeader的partitionEntriesCRC值匹配时,才说明是正确的数据。如果header或详细分区数据无法匹配对应的CRC,程序终止,并报错分区数据损坏。
确认分区数据没有损坏之后,通过比较分区名称、分区大小、分区个数及分区顺序来判断物理分区是否发生了变化,其中,在比较分区大小时,system分区及data分区要做特殊处理。如果system分区前面的分区大小有变化,认为system分区有变化;如果system分区之前没有分区发生变化,而system分区自身大小发生变化,则与磁盘中的system分区大小进行比较,如果差值在经验值内,则认为system分区没有变化,否则认为system分区已经变化。之所以要对system分区特殊处理,是由于system分区是根据最终打包的system目录下的所有文件所占用的空间总量加上一定的余量做成的。每次更新版本时,system分区的大小都会变化,而留有的余量通常也是比较小的。如果每次更新版本都要因system分区的变动去调整分区,这样的设计会给用户带来非常差的体验,每次执行整包升级或差分升级都需要消耗比较长的时间。我们给定一个经验值,判断如果这次版本与手机中已经存在的版本的system分区的大小小于该经验值,则认为system分区没有变动,不需要只因为system分区的变动而调整物理分区。对于data分区不作检测,直接忽略过去。
S24、当分区发生变化时,对备份标志位为1的分区进行数据备份。
通过上述方式,如果检测到物理分区发生了变化,将发生变化的分区(后面简称为变化分区)的位置传出来,并生成返回码(指示分区是否变化,如1表示变化,0表示未变化)。根据返回码,弹出“分区已经变化,是否继续?”,如果用户点击是,继续执行具体的升级流程;如果用户点击否,不再执行后面的流程,升级中止。如果没有检测到物理分区发生变化,按照现有的方案直接将分区数据文件写到各对应的物理分区,进行升级。
当用户选择继续升级时,有些分区的逻辑地址在发生变更之后,这些分区上的数据全部错乱,处于不可用状态,需要将这些分区清空。如果这些分区的数据是比较重要的,则要在调整物理分区之前,对这些分区进行数据备份,在调整完物理分区之后,需要将备份的数据重新写回到这些分区上。备份分区时,终端遍历partition结构体数组,第一个变化分区之前的所有分区不需要备份,备份标志位设置为0,第一个变化分区及其之后的分区中备份标志位为1的分区都需要备份,备份这些分区的数据到备份文件中。
在备份之前,首先检测外部存储剩余空间是否可以存放下备份文件。遍历需要备份的分区,根据备份标志位查看哪些分区需要备份,如果需备份的分区为data分区,需要mount查看其已用空间,根据已用空间确定需要拷贝的大小。如果没有文件系统,则直接计算其分区大小。同时计算emmc中剩给data分区的可分配空间大小,与已用空间进行比较,如果前者比后者小,则退出程序。
计算总的备份文件需要的空间,将该大小与外部存储卡的剩余空间大小比较,如果大于外部存储卡的剩余空间,返回返回码给脚本,脚本中加逻辑表明这时的情况是外部存储卡没有空间,终止脚本执行,并在屏幕上打印此时外部存储卡的剩余空间不足。如果外部存储剩余空间足够存放下备份文件,对备份标志位为1的分区进行备份,在备份时,检测各分区对应的备份文件是否已经存在,如果已经存在,将已有的文件删除。备份过程中,Data分区需要特殊处理,新的安卓版本中的selinux权限比较严格,升级程序不允许对data分区里的文件具有写权限。因此不能按文件拷贝data分区的内容。如果按字节直接拷贝data分区,因data分区物理分区空间较大,直接拷贝花费的时间较长。我们通过压缩文件系统,使得记录data分区文件系统的有效字节全被压缩到物理分区的前部,只需要拷贝有效的字节即可。
S25、根据所述新版本的分区信息,对物理分区进行调整。
将需要备份的分区数据备份之后,将物理分区调整为新版本中的分区名称、分区大小、分区个数及分区顺序。如果只是分区名称发生改变,修改相应的分区名称。如果分区大小、分区个数或分区顺序发生改变,由于涉及到分区地址,需要重新分配分区的逻辑地址。
具体地,重新分配所述第一个变化分区及其之后的分区的逻辑地址。根据分区变更的原则,更新分区数据结构中各分区的起始偏移量和终止偏移量(firstLBA和lastLBA)。
将新的分区数据结构按GPT分区的格式写入对应的四个关键地方(LBA1,LBA2~33,LBA-1,LBA-2~LBA-33),写入的过程是顺序执行的,这样总能保证有一组header和entry的内容是完好的。开机引导程序需要支持从GPT备份header和entry中读取分区数据,同时该调整物理分区的工具也支持,这样杜绝了系统变砖的风险。
S26、对调整后物理分区中的备份标志位为1的分区进行数据恢复。
最后恢复分区,将备份的分区数据重新写回到对应物理分区上,按字节或文件系统恢复相应分区的数据,system分区特殊处理,system分区的数据是只读的,不能修改,也不能挂载,只能按字节拷贝。将Data分区有效的数据恢复回来后,需要将其文件系统扩满物理分区。每恢复完一个分区,需要将对应的备份文件删除。
S27、更新分区数据文件,将所述分区数据文件写到对应物理分区。
本发明实施例提供的安卓系统升级方法,服务器在制作OTA升级包时加入了分区配置文件,终端根据该分区配置文件执行OTA升级流程时根据新的分区信息对物理分区进行调整,与现有技术相比,在系统升级时能够自适应调整物理分区,保证用户数据不会丢失,且不会影响原来的安卓的selinux权限设定。对于小存储系统,可以灵活配置分区,留给用户更多的使用空间。
进一步地,发明人在实际应用中发现,由于断电等原因会导致升级进程意外停止,尤其对于备份恢复流程以及识别分区是否发生了变动,在断电后,这些判断逻辑都发生了变化。终端在断电重启后,会重新进入recovery子系统从头开始进行升级过程,这时,有可能出现错误。
因此,如图3所示,本发明实施例加入了升级过程中的断电保护。当分区未发生变化时,在将所述分区数据文件写到对应物理分区之前,所述方法还包括:
S28、判断断电标志位是否有效。
所述断电标志位,用于标记终端重启前是否正在升级,且未完成升级过程,中间发生了意外断电。当所述断电标志位有效时,说明上次执行升级时是在调整完分区后断电退出的,一般是恢复分区的流程进行了一部分,因此直接执行S26,对备份标志位为1的分区进行数据恢复;当断电标志位无效时,执行S27,更新分区数据文件,将所述分区数据文件写到对应物理分区。
需要说明的是,所述断电标志位在对备份标志位为1的分区进行数据备份之后置为有效,在对调整后物理分区中的备份标志位为1的分区进行数据恢复之后置为无效。
通过增加完善的断电保护方案,确保终端升级过程中不会发生变砖。
本发明实施例还提供一种安卓系统升级装置10,位于服务器,如图4所示,所述装置10包括:
第一制作模块101,用于制作OTA原始包,所述OTA原始包包括分区数据文件及分区表,其中所述分区表包括移动终端的分区信息;
第一解压模块102,用于从所述OTA原始包中解压出分区数据文件及分区表;
第一解析模块103,用于解析所述分区表,生成分区配置文件;
第二制作模块104,用于根据所述分区配置文件及分区数据文件,制作OTA升级包;
推送模块105,用于将所述OTA升级包推送到移动终端。
可选地,所述分区配置文件包括:分区名称、分区大小、分区个数、分区顺序及分区备份标志位。
本发明实施例还提供一种安卓系统升级装置20,位于移动终端,如图5所示,所述装置20包括:
第二解压模块201,用于接收OTA升级包,从所述OTA升级包中解压出分区数据文件及分区配置文件;
第二解析模块202,用于解析所述分区配置文件,得到新版本的分区信息;
比较模块203,用于将所述新版本的分区信息与现有分区信息作比较,判断分区是否发生变化;
备份模块204,用于当分区发生变化时,对备份标志位为1的分区进行数据备份;
调整模块205,用于根据所述新版本的分区信息,调整物理分区;
恢复模块206,用于对调整后物理分区中的备份标志位为1的分区进行数据恢复;
写数据模块207,用于将所述分区数据文件写到对应物理分区。
进一步地,所述写数据模块207,还用于当分区未发生变化时,将所述分区数据文件写到对应物理分区。
进一步地,如图6所示,所述装置20还包括:
断电判断模块208,用于当分区未发生变化时,在将所述分区数据文件写到对应物理分区之前,判断断电标志位是否有效;
所述恢复模块206,还用于当所述断电标志位有效时,对备份标志位为1的分区进行数据恢复;
所述写数据模块207,还用于当所述断电标志位无效时,将所述分区数据文件写到对应物理分区。
可选地,所述分区信息包括:分区名称、分区大小、分区个数及分区顺序。
本发明实施例提供的安卓系统升级装置,服务器在制作OTA升级包时加入了分区配置文件,终端根据该分区配置文件执行OTA升级流程时根据新的分区信息对物理分区进行调整,与现有技术相比,在系统升级时能够自适应调整物理分区,保证用户数据不会丢失,且不会影响原来的安卓的selinux权限设定。对于小存储系统,可以灵活配置分区,留给用户更多的使用空间。进一步地,本发明支持全磁盘的分区调整,并且提供了完善的断电保护方案,确保终端不会发生变砖。
本发明实施例还提供一种服务器,所述服务器包括上述安卓系统升级装置10。
本发明实施例还提供一种移动终端,所述移动终端包括上述安卓系统升级装置20。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (7)

1.一种安卓系统升级方法,适用于移动终端,其特征在于,包括:
接收OTA升级包,从所述OTA升级包中解压出分区数据文件及分区配置文件;
解析所述分区配置文件,得到新版本的分区信息和分区备份标志位,所述分区信息包括分区名称、分区大小、分区个数及分区顺序,所述分区备份标志位用于表示分区是否需要备份,备份标志位为1表示需要备份,备份标志位为0表示不需要备份;
将所述新版本的分区信息与现有分区信息作比较,判断分区是否发生变化,其中在判断system分区是否变化时,参照以下原则:若新版本的system分区之前的分区大小有变化,则system分区有变化;若新版本的system分区之前没有分区发生变化,则进一步根据新版本的system分区大小与现有system分区大小的差值来判断system分区是否变化,若所述差值在设定阈值范围内,则system分区没有变化,若所述差值在设定阈值范围外,则system分区发生变化;
当分区发生变化且涉及到分区地址变化时,对第一个变化分区及其之后的分区中备份标志位为1的分区进行数据备份;
根据所述新版本的分区信息,调整物理分区;
对调整后物理分区中的备份标志位为1的分区进行数据恢复;
将所述分区数据文件写到对应物理分区。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当分区未发生变化时,将所述分区数据文件写到对应物理分区。
3.根据权利要求2所述的方法,其特征在于,当分区未发生变化时,在将所述分区数据文件写到对应物理分区之前,所述方法还包括:
判断断电标志位是否有效,当所述断电标志位有效时,对备份标志位为1的分区进行数据恢复;当所述断电标志位无效时,将所述分区数据文件写到对应物理分区。
4.一种安卓系统升级装置,位于移动终端,其特征在于,包括:
解压模块,用于接收OTA升级包,从所述OTA升级包中解压出分区数据文件及分区配置文件;
解析模块,用于解析所述分区配置文件,得到新版本的分区信息和分区备份标志位,所述分区信息包括分区名称、分区大小、分区个数及分区顺序,所述分区备份标志位用于表示分区是否需要备份,备份标志位为1表示需要备份,备份标志位为0表示不需要备份;
比较模块,用于将所述新版本的分区信息与现有分区信息作比较,判断分区是否发生变化,其中在判断system分区是否变化时,参照以下原则:若新版本的system分区之前的分区大小有变化,则system分区有变化;若新版本的system分区之前没有分区发生变化,则进一步根据新版本的system分区大小与现有system分区大小的差值来判断system分区是否变化,若所述差值在设定阈值范围内,则system分区没有变化,若所述差值在设定阈值范围外,则system分区发生变化;
备份模块,用于当分区发生变化且涉及到分区地址变化时,对第一个变化分区及其之后的分区中备份标志位为1的分区进行数据备份;
调整模块,用于根据所述新版本的分区信息,调整物理分区;
恢复模块,用于对调整后物理分区中的备份标志位为1的分区进行数据恢复;
写数据模块,用于将所述分区数据文件写到对应物理分区。
5.根据权利要求4所述的装置,其特征在于,所述写数据模块,还用于当分区未发生变化时,将所述分区数据文件写到对应物理分区。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
断电判断模块,用于当分区未发生变化时,在将所述分区数据文件写到对应物理分区之前,判断断电标志位是否有效;
所述恢复模块,还用于当所述断电标志位有效时,对备份标志位为1的分区进行数据恢复;
所述写数据模块,还用于当所述断电标志位无效时,将所述分区数据文件写到对应物理分区。
7.一种移动终端,其特征在于,所述移动终端包括如权利要求4至6中任一项所述的安卓系统升级装置。
CN201710447066.9A 2017-06-14 2017-06-14 安卓系统升级方法、装置、服务器及移动终端 Active CN109086078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710447066.9A CN109086078B (zh) 2017-06-14 2017-06-14 安卓系统升级方法、装置、服务器及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710447066.9A CN109086078B (zh) 2017-06-14 2017-06-14 安卓系统升级方法、装置、服务器及移动终端

Publications (2)

Publication Number Publication Date
CN109086078A CN109086078A (zh) 2018-12-25
CN109086078B true CN109086078B (zh) 2022-03-01

Family

ID=64839329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710447066.9A Active CN109086078B (zh) 2017-06-14 2017-06-14 安卓系统升级方法、装置、服务器及移动终端

Country Status (1)

Country Link
CN (1) CN109086078B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752577B (zh) * 2019-03-28 2023-07-18 深圳市优必选科技有限公司 一种系统版本的升级方法及设备
CN110399153B (zh) * 2019-07-25 2023-11-03 Oppo广东移动通信有限公司 系统升级方法、装置、终端及计算机可读存储介质
CN114443081A (zh) * 2020-11-04 2022-05-06 华为技术有限公司 终端升级的方法及终端
CN112527334B (zh) * 2020-12-18 2023-03-14 福建新大陆支付技术有限公司 基于Android平台可变大小的客户预安装定制分区方法及POS机
CN112788118B (zh) * 2020-12-30 2022-08-23 宁波奥克斯电气股份有限公司 Wi-Fi模组、智能家居设备及智能家居系统
CN113238771B (zh) * 2021-04-27 2022-06-21 瑞芯微电子股份有限公司 一种基于安卓系统的fota固件升级方法和装置
CN117806684B (zh) * 2024-01-11 2024-05-31 深圳创元智能软件科技有限公司 安卓版本更新方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484448A (zh) * 2015-08-28 2017-03-08 青岛海信移动通信技术股份有限公司 一种软件升级方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429640B2 (en) * 2009-06-05 2013-04-23 Dell Products L.P. System and method for modifying firmware
CN103123588A (zh) * 2013-02-05 2013-05-29 东莞宇龙通信科技有限公司 一种获取差分升级补丁的方法及系统
CN104714811A (zh) * 2013-12-13 2015-06-17 中兴通讯股份有限公司 差分升级包的制作方法及装置、系统差分升级方法及装置
US9778926B2 (en) * 2014-10-30 2017-10-03 Google Inc. Minimizing image copying during partition updates
WO2016078060A1 (zh) * 2014-11-20 2016-05-26 宇龙计算机通信科技(深圳)有限公司 用于多系统终端的系统升级方法、升级装置和终端
US9563418B1 (en) * 2015-03-26 2017-02-07 Captioncall, Llc Communication endpoints, software update servers, and related methods

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484448A (zh) * 2015-08-28 2017-03-08 青岛海信移动通信技术股份有限公司 一种软件升级方法及装置

Also Published As

Publication number Publication date
CN109086078A (zh) 2018-12-25

Similar Documents

Publication Publication Date Title
CN109086078B (zh) 安卓系统升级方法、装置、服务器及移动终端
CN111796856B (zh) 差分升级方法及装置、存储介质、计算机设备
US8886870B2 (en) Memory access table saving and restoring system and methods
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
CN101377744B (zh) 一种终端设备软件升级恢复方法及装置
US9164756B2 (en) Software updating process for an embedded device
US8756458B2 (en) Mount-time reconciliation of data availability
US20070055969A1 (en) System and method for updating firmware
US20090265403A1 (en) File system
CN111045713A (zh) 一种计算机系统的升级方法、系统及装置
US11144299B2 (en) Firmware updating method
CN104484240A (zh) 一种终端数据存储的方法及装置
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
CN112214346A (zh) 用于存储器子系统中的数据修改期间的错误检测的方法及装置
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory
US10657040B2 (en) Storage device and data management method of storage device
US10860533B1 (en) File size as an indicator of file properties
KR100575927B1 (ko) 이동통신 단말기에서 부팅 방법
EP4113288B1 (en) Systems and method for bootup activation of firmware images
CN107656747B (zh) 一种数据升级方法及移动终端
EP4024254A1 (en) Method and device for updating data
KR20140032071A (ko) 컴퓨팅 디바이스의 파일 시스템 관리 장치 및 방법
CN112631637B (zh) 基于rtos的ota升级方法、系统、设备及存储介质
US20240303189A1 (en) Memory system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant