终端升级的方法及终端技术

技术编号:33336565 阅读:9 留言:0更新日期:2022-05-08 09:19
本申请实施例提供一种终端升级的方法及终端,属于系统升级领域。该方法包括:接收目标版本的升级包,所述升级包包括所述目标版本的升级数据;将所述升级包存储在用户数据分区块设备,其中,所述块设备在升级过程中为未挂载状态,所述升级包的起始位置相对于所述块设备尾部的偏移量小于所述块设备升级后的可用空间;通过内存映射函数mmap将所述升级数据映射至所述终端的内存中;基于所述内存中的升级数据,将所述终端由当前版本升级为所述目标版本。本申请实施例提供的方法,可以解决升级过程中,由于data分区变化导致的升级失败的问题。题。题。

【技术实现步骤摘要】
终端升级的方法及终端


[0001]本申请涉及系统升级领域,尤其涉及一种终端升级的方法及终端。

技术介绍

[0002]用户为了获得最新的使用体验,需要对终端进行系统升级。通常来说,系统升级要通过空中下载技术(over the air,OTA)下载升级包,之后将下载的升级包存储在用户数据(data)分区,再利用该升级包将终端系统由低版本升级为高版本。然而,由于在升级过程中,其它分区可能会占用data分区的空间,使data分区被修改,从而会导致文件系统中的data分区中的升级包被破坏,升级失败。

技术实现思路

[0003]本申请提供了一种终端升级的方法及终端,通过将升级包存储于块设备中,解决了升级包在升级过程中被破坏,导致升级失败的问题。
[0004]第一方面,提供了一种终端升级的方法,包括:接收目标版本的升级包,所述升级包包括所述目标版本的升级数据;将所述升级包存储在用户数据分区块设备,其中,所述块设备在升级过程中为未挂载状态,所述升级包的起始位置相对于所述块设备尾部的偏移量小于所述块设备升级后的可用空间;通过内存映射函数mmap将所述升级数据映射至所述终端的内存中;基于所述内存中的升级数据,将所述终端由当前版本升级为所述目标版本。
[0005]其中,用户数据分区块设备在后文中也可用data分区块设备来表示,或者,后文中的块设备也是这里的数据分区块设备。
[0006]根据本申请实施例提供的终端升级的方法,通过将升级包存储在未挂载状态的用户数据块设备中,并利用mmap方式将升级数据映射至内存,使终端利用内存中的升级数据对各分区进行更新,实现系统升级,能够保证升级包在升级过程中不被破坏,提高OTA升级成功的几率。
[0007]结合第一方面,在第一方面的某些实现方式中,所述方法还包括:卸载所述块设备在文件系统中的访问路径。
[0008]结合第一方面,在第一方面的某些实现方式中,所述方法还包括:接收所述OTA服务器发送的第一信息,所述第一信息包括所述目标版本中的分区信息;根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化。
[0009]结合第一方面,在第一方面的某些实现方式中,所述方法还包括:根据所述升级包在所述块设备中的起始位置和所述用户数据分区块设备的大小,确定所述起始位置相对于所述块设备中参考位置的第一偏移量,所述参考位置包括所述块设备尾部所在的位置。
[0010]结合第一方面,在第一方面的某些实现方式中,所述方法还包括:生成升级命令,所述升级命令包括所述用户数据分区块设备的路径、所述第一偏移量、所述升级包大小;将所述升级命令存储于至少一个备用分区中,所述备用分区为在升级过程中不更新的分区。
[0011]结合第一方面,在第一方面的某些实现方式中,所述第一偏移量包括字节对齐大小,所述字节对齐大小用于使所述起始位置与所述mmap读取方式的整数倍字节位置对齐。
[0012]结合第一方面,在第一方面的某些实现方式中,所述第一信息具体包括所述目标版本中用户数据分区大小的指示信息,所述当前版本中的分区信息包括所述当前版本中用户数据分区大小;所述根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化,包括:当所述目标版本中的用户数据分区大小和所述当前版本中用户数据分区大小不同时,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化。
[0013]结合第一方面,在第一方面的某些实现方式中,所述第一信息包括所述目标版本中除用户数据分区之外的其他分区大小的指示信息,所述当前版本中的分区信息包括所述当前版本中除用户数据分区之外的其他分区大小的指示信息;所述根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化,包括:当所述目标版本中除用户数据分区之外的其它分区大小的总和与所述当前版本中除用户数据分区之外的其它分区大小的总和不同时,确定所述目标版本中的用户分区大小相对于所述当前版本中的用户分区大小发生变化。
[0014]第二方面,提供了一种终端,包括:下载模块,用于接收目标版本的升级包,所述升级包包括所述目标版本的升级数据;并用于将所述升级包存储在用户数据分区块设备,其中,所述块设备在升级过程中为未挂载状态,所述升级包的起始位置相对于所述块设备尾部的偏移量小于所述块设备升级后的可用空间;升级模块,用于通过内存映射函数mmap将所述升级数据映射至所述终端的内存中;并基于所述内存中的升级数据,将所述终端由当前版本升级为所述目标版本。
[0015]结合第二方面,在第二方面的某些实现方式中,所述终端还包括:卸载模块,用于卸载所述块设备在文件系统中的访问路径。
[0016]结合第二方面,在第二方面的某些实现方式中,所述终端还包括预下载模块和判断模块,其中,所述预下载模块,用于接收所述OTA服务器发送的第一信息,所述第一信息包括所述目标版本中的分区信息;所述判断模块,用于根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化。
[0017]结合第二方面,在第二方面的某些实现方式中,所述终端还包括升级预处理模块,用于根据所述升级包在所述块设备中的起始位置和所述用户数据分区块设备的大小,确定所述起始位置相对于所述块设备尾部的第一偏移量。
[0018]结合第二方面,在第二方面的某些实现方式中,所述升级预处理模块,还用于生成升级命令,所述升级命令包括所述用户数据分区块设备的路径、所述第一偏移量、所述升级包大小;所述存储模块,还用于将所述升级命令存储于至少一个备用分区中,所述备用分区为在升级过程中不更新的分区。
[0019]结合第二方面,在第二方面的某些实现方式中,所述第一偏移量包括字节对齐大小,所述字节对齐大小用于使所述起始位置与所述mmap读取方式的整数倍字节位置对齐。
[0020]结合第二方面,在第二方面的某些实现方式中,所述第一信息具体包括所述目标版本中用户数据分区大小的指示信息,所述当前版本中的分区信息包括所述当前版本中用
户数据分区大小;所述处理模块,还用于当所述目标版本中的用户数据分区大小和所述当前版本中用户数据分区大小不同时,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化。
[0021]结合第二方面,在第二方面的某些实现方式中,所述第一信息包括所述目标版本中除用户数据分区之外的其他分区大小的指示信息,所述当前版本中的分区信息包括所述当前版本中除用户数据分区之外的其他分区大小的指示信息;所述处理模块,还用于当所述目标版本中除用户数据分区之外的其它分区大小的总和与所述当前版本中除用户数据分区之外的其它分区大小的总和不同时,确定所述目标版本中的用户分区大小相对于所述当前版本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种终端升级的方法,其特征在于,应用于终端,包括:接收目标版本的升级包,所述升级包包括所述目标版本的升级数据;将所述升级包存储在用户数据分区块设备,其中,所述块设备在升级过程中为未挂载状态,所述升级包的起始位置相对于所述块设备尾部的偏移量小于所述块设备升级后的可用空间;通过内存映射函数mmap将所述升级数据映射至所述终端的内存中;基于所述内存中的升级数据,将所述终端由当前版本升级为所述目标版本。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:卸载所述块设备在文件系统中的访问路径。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:接收OTA服务器发送的第一信息,所述第一信息包括所述目标版本中的分区信息;根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化。4.根据权利要求1

3中任一项所述的方法,其特征在于,所述方法还包括:根据所述升级包在所述块设备中的起始位置和所述用户数据分区块设备的大小,确定所述起始位置相对于所述块设备中尾部的第一偏移量。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:生成升级命令,所述升级命令包括所述用户数据分区块设备的路径、所述第一偏移量、所述升级包大小;将所述升级命令存储于至少一个备用分区中,所述备用分区是在升级过程中不更新的分区。6.根据权利要求4或5所述的方法,其特征在于,所述第一偏移量包括字节对齐大小,所述字节对齐大小用于使所述起始位置与所述mmap读取方式的整数倍字节位置对齐。7.根据权利要求3

6中任一项所述的方法,其特征在于,第一信息具体包括所述目标版本中用户数据分区大小的指示信息,所述当前版本中的分区信息包括所述当前版本中用户数据分区大小;所述根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化,包括:当所述目标版本中的用户数据分区大小和所述当前版本中用户数据分区大小不同时,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化。8.根据权利要求3

6中任一项所述的方法,其特征在于,第一信息包括所述目标版本中除用户数据分区之外的其他分区大小的指示信息,所述当前版本中的分区信息包括所述当前版本中除用户数据分区之外的其他分区大小的指示信息;所述根据所述第一信息和所述当前版本中的分区信息,确定所述目标版本中的用户数据分区大小相对于所述当前版本中的用户数据分区大小发生变化,包括:当所述目标版本中除用户数据分区之外的其它分区大小的总和与所述当前版本中除用户数据分区之外的其它分区大小的总和不同时,确定所述目标版本中的用户分区大小相对于所述当前版本中的用户分区大小发生变化。
9.一种终端,其特征在于,包括:下载模块,用于接收目标版本的升级包,所述升级包包括所述目标版本的升级数据;并将所述升级包存储在用户数据分区块设备,其中,所述块设备在升级过程中为未挂载状态,所述升级包的起始位置相对于所述块设备尾部的偏移量小于所述块设备升级后的...

【专利技术属性】
技术研发人员:李海涛刘元陈超靳倡荣
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1