一种基于容器的移动终端操作系统升级方法和装置制造方法及图纸

技术编号:13179017 阅读:48 留言:0更新日期:2016-05-11 10:34
本申请公开了一种基于容器的移动终端操作系统升级方法,其中两个以上操作系统分别在不同容器中运行,该方法包括:将具有获取更新进程的操作系统切换到前台,及将其余操作系统切换到后台;从服务器下载前台和后台操作系统的增量升级包;在用户确认升级时重启系统进入recovery模式;对所述升级包进行解密并验证所述升级包的签名是否合法;在签名合法时将前台操作系统的系统分区挂载到保存前台操作系统升级文件的目录,及将后台操作系统的系统分区挂载到保存后台操作系统升级文件的目录;对升级文件分别进行校验;及用bspatch和升级包中的补丁文件对待升级文件进行更新。本发明专利技术可实现一次升级两个操作系统,且仅需重启一次机器。

【技术实现步骤摘要】

本申请涉及电数字数据处理领域,尤其涉及一种在基于容器的多操作系统移动终端中进行操作系统升级的方法和装置。
技术介绍
目前,行业内对移动操作系统升级的方案主要有2种。一种是完整升级,即将一个完整的操作系统镜像(通常几百M大小)写入到存储设备。另一种是增量升级,即仅仅更新两个版本之间的差异文件,升级包通常很小。然而,无论哪种方案,都是一次只能升级一个操作系统。随着容器技术的引入和发展,需要一次同时对两个以上系统进行升级。
技术实现思路
本申请的目标在于提供一种能够一次对两个以上操作系统进行升级的方法和装置。本申请的目标由一种基于容器的移动终端操作系统升级方法实现,其中两个以上操作系统分别在不同容器中运行,该方法包括:将具有获取更新进程的操作系统切换到前台,及将其余操作系统切换到后台;前台操作系统从服务器下载前台操作系统和后台操作系统的增量升级包;在用户确认升级时重启整个移动终端系统进入升级recovery模式;对所述升级包进行解密并验证所述升级包的签名是否合法;在所述签名合法时将前台操作系统的系统分区挂载到保存前台操作系统升级文件的目录,及将后台操作系统的系统分区挂载到保存后台操作系统升级文件的目录;对升级文件分别进行校验以确保升级文件版本正确及未被修改过;及用bspatch和升级包中的补丁文件对待升级文件进行更新。本申请的目标还由一种基于容器的移动终端操作系统升级装置实现,其中两个以上操作系统分别在不同容器中运行,该装置包括:系统切换单元,用于将具有获取更新进程的操作系统切换到前台,及将其余操作系统切换到后台;升级包下载单元,用于使前台操作系统从服务器下载前台操作系统和后台操作系统的增量升级包;升级确认单元,用于使用户能进行是否升级的确认;重启单元,用于在用户确认升级时重启整个移动终端系统进入升级recovery模式;解密单元,用于对所述升级包进行解密;验证单元,用于验证所述升级包的签名是否合法;分区挂载单元,用于在所述签名合法时将前台操作系统的系统分区挂载到保存前台操作系统升级文件的目录,及将后台操作系统的系统分区挂载到保存后台操作系统升级文件的目录;校验单元,用于对升级文件分别进行校验以确保升级文件版本正确及未被修改过;及更新单元,用于用bspatch(补丁合成工具)和升级包中的补丁文件对待升级文件进行更新。基于Linux容器技术,可以在同一个移动终端设备上同时运行2个以上操作系统,在bootfs(启动文件系统)启动时使各个操作系统分别运行于不同容器中,各个操作系统共享kernel(内核)。本专利技术在进行系统升级时,首先从服务器下载2个操作系统的增量升级包,然后重启机器进入recovery模式,同时增量升级两个操作系统。与分两次对两个操作系统进行升级相比,本专利技术方法只需要对机器重启一次,且提高了升级过程的安全性。除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。附图说明本专利技术将在下面参考附图并结合优选实施例进行更完全地说明。图1为根据本专利技术方法的一实施例的流程图。图2为根据本专利技术方法的另一实施例的流程图。图3为根据本专利技术装置的一实施例的结构示意图。图4为根据本专利技术装置的另一实施例的结构示意图。为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本专利技术所必要的细节,而省略其他细节。具体实施方式通过下面给出的详细描述,本专利技术的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本专利技术优选实施例的同时,它们仅为说明目的给出。基于Linux容器技术,可以在同一个移动终端设备如手机上同时运行2个以上操作系统,如2个或3个以上操作系统。在此以2个为例进行说明。在bootfs启动时,把第一操作系统OS-1如SyberOS和第二操作系统OS-2如Android分别运行于不同容器中,两个操作系统共享内核kernel。图1示出了本专利技术方法的一实施例,用于一次对操作系统OS-1和OS-2均进行升级,该方法开始于步骤S10,通过设备节点/proc/dev_ns/switch_ns将OS-2切换到后台,OS-1切换到前台,OS-1中有一个otad进程负责从服务器下载升级包。切换可通过控制容器前后台切换的节点switch_ns进行,各容器只需向其写入1,即切换到前台,写入0,即切换到后台。在实施例中,在切换操作系统之前通知用户。之后,处理进行到步骤S20,OS-1中的otad进程从服务器下载两个操作系统的升级包,下载后存放在内置sdcard目录上。两个操作系统的升级包可打包成一个文件,也可分成两个文件。在实施例中,升级包可按如下所述进行制作。首先从服务器下载版本1(Syberos_cactus_20150724-140050-s.img)和版本2(Syberos_cactus_20150724-145821-s.img)的完整升级包到PC,使用sintool.py去掉完整升级包的签名,然后使用qtool.py分别将完整升级包解开到目录Syberos_cactus_20150724-140050和Syberos_cactus_20150724-145821,最后使用otatool.py基于这两个版本制作增量升级包。完整升级包中包含syberos的rootfs.img、zImage、u-boot.bin和android的system.img、boot.img等。otatool.py首先会创建目录update,然后分别把两个版本的syberos的rootfs.img挂载到目录rootfsDirOld和rootfsDirNew,把两个版本的android的system.img挂载到目录systemDirOld和systemDirNew,然后对比两个版本的文件差异,如果有差异则使用开源软件bsdiff生成patch,记录md5码和文件属性,软硬链接等,syberos的差异patch写到update目录,androi本文档来自技高网...

【技术保护点】
一种基于容器的移动终端操作系统升级方法,其中两个以上操作系统分别在不同容器中运行,其特征在于,所述方法包括:将具有获取更新进程的操作系统切换到前台,及将其余操作系统切换到后台;前台操作系统从服务器下载前台操作系统和后台操作系统的增量升级包;在用户确认升级时重启整个移动终端系统进入升级recovery模式;对所述升级包进行解密并验证所述升级包的签名是否合法;在所述签名合法时将前台操作系统的系统分区挂载到保存前台操作系统升级文件的目录,及将后台操作系统的系统分区挂载到保存后台操作系统升级文件的目录;对升级文件分别进行校验以确保升级文件版本正确及未被修改过;及用bspatch和升级包中的补丁文件对待升级文件进行更新。

【技术特征摘要】
1.一种基于容器的移动终端操作系统升级方法,其中两个以上操作系统
分别在不同容器中运行,其特征在于,所述方法包括:
将具有获取更新进程的操作系统切换到前台,及将其余操作系统切换到后
台;
前台操作系统从服务器下载前台操作系统和后台操作系统的增量升级包;
在用户确认升级时重启整个移动终端系统进入升级recovery模式;
对所述升级包进行解密并验证所述升级包的签名是否合法;
在所述签名合法时将前台操作系统的系统分区挂载到保存前台操作系统升
级文件的目录,及将后台操作系统的系统分区挂载到保存后台操作系统升级文
件的目录;
对升级文件分别进行校验以确保升级文件版本正确及未被修改过;及
用bspatch和升级包中的补丁文件对待升级文件进行更新。
2.根据权利要求1所述的方法,其特征在于,前台操作系统和后台操作
系统的增量升级包打包成一个文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对打过补丁的文件的属性重新赋值和/或处理软硬链接。
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
设置能力并恢复数据分区用户和属组。
5.根据权利要求1所述的方法,其特征在于,所述切换通过设备节点进
行。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在切换操作系统之前通知用户。
7.一种基于容器的移动终端操作...

【专利技术属性】
技术研发人员:李立帅
申请(专利权)人:北京元心科技有限公司
类型:发明
国别省市:北京;11

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

1