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

技术编号:14563672 阅读:168 留言:0更新日期:2017-02-05 20:36
本申请公开了一种基于容器的移动终端操作系统升级方法,其中多个操作系统分别在不同容器中运行,所述方法包括:将待升级操作系统切换到后台,及将非升级操作系统之一切换到前台;停止待升级操作系统所在的容器;所述非升级操作系统从服务器下载待升级操作系统的升级包;在用户确认升级时验证所述升级包的签名是否合法;在所述签名合法时用所述升级包中的升级文件盖写待升级操作系统的相应文件;及在升级完成后启动待升级操作系统所在的容器。本发明专利技术可实现在不重启机器的情况下对操作系统进行升级。

【技术实现步骤摘要】

本申请涉及电数字数据处理领域,尤其涉及一种在基于容器的多操作系统移动终端中进行操作系统升级的方法和装置。
技术介绍
目前,行业内对移动终端如手机操作系统升级的方案主要有2种。一种是完整升级,即将一个完整的操作系统镜像(通常几百M大小)写入到存储设备。另一种是增量升级,即仅仅更新两个版本之间的差异文件,升级包通常很小。然而,这两种方案均需要重启手机、进入升级recovery模式才能进行升级,升级完成后需要再次重启手机。
技术实现思路
本申请的目标在于提供一种不需要重启机器即可对操作系统进行升级的方法和装置。本申请的目标由一种基于容器的移动终端操作系统升级方法实现,其中多个操作系统分别在不同容器中运行,该方法包括:将待升级操作系统切换到后台,及将非升级操作系统之一切换到前台;停止待升级操作系统所在的容器;所述非升级操作系统从服务器下载待升级操作系统的升级包;在用户确认升级时验证所述升级包的签名是否合法;在所述签名合法时用所述升级包中的升级文件盖写待升级操作系统的相应文件;及在升级完成后启动待升级操作系统所在的容器。本申请的目标还由一种基于容器的移动终端操作系统升级装置实现,其中多个操作系统分别在不同容器中运行,其该装置包括:系统切换单元,用于将待升级操作系统切换到后台及将非升级操作系统之一切换到前台;容器停止单元,用于停止待升级操作系统所在的容器;升级包下载单元,用于使所述非升级操作系统从服务器下载待升级操作系统的升级包;升级确认单元,用于使用户能进行是否升级的确认;验证单元,用于在用户确认升级时验证所述升级包的签名是否合法;升级单元,用于在所述签名合法时用所述升级包中的升级文件盖写待升级操作系统的相应文件;及容器启动单元,用于在升级单元完成升级后启动待升级操作系统所在的容器。基于Linux容器技术,可以在同一个移动终端设备上同时运行2个以上操作系统,在bootfs(启动文件系统)启动时使各个操作系统分别运行于不同容器中,各个操作系统共享kernel(内核)。本专利技术在进行系统升级时,把待升级操作系统切换到后台,然后停掉待升级操作系统所在的容器。而用当前运行于前台的操作系统对后台操作系统进行升级,升级成功后再把后台操作系统所在的容器启动起来。在整个升级过程中,移动终端均不需要重启。除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。附图说明本专利技术将在下面参考附图并结合优选实施例进行更完全地说明。图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切换到前台。具体地,切换通过控制容器前后台切换的节点switch_ns进行,各容器只需向其写入1,即切换到前台,写入0,即切换到后台。之后,处理进行到步骤S20,执行命令lxc-stop–nandroid停止待升级操作系统OS-2所在的容器。之后,处理进行到步骤S30,OS-1中有一个otad进程负责与服务器通信并从服务器下载OS-2的升级包,在此该升级包为完整升级包,下载后存放在内置sdcard目录上。之后,处理进行到步骤S40,弹出提示框提示用户是否确认升级。如果用户点击确认升级,处理进行到步骤S50,发送dbus给updated进程指示可以更新了。由于完整升级包比较大,没有使用对称加密,只进行了签名,在此只利用pubkey验证升级包的签名是否合法。合法则允许进入下一步升级流程,不合法则提示用户升级包非法,结束升级。在签名合法时,处理进行到步骤S60,将升级包中的镜像写入到OS-2所在的分区。之后,处理进行到步骤S70,执行命令lxc-start–nandroid再次启动OS-2所在的容器。可见,在整个升级过程中,均不需要重新启动移动终端。图2示出了本专利技术方法的另一实施例,其类似于图1所示的实施例,但该实施例适用于升级包为增量升级包的情形即其中OS-2的升级包为增量升级包。由于增量升级包经过openssl对称加密和签名,为此,在步骤S50之前还包括步骤S45,updated进程对升级包进行解密,然后才进行步骤S50以验证升级包的签名是否合法。另外,在签名合法时,更新文件的处理也不同于图1所示的实施例。在图2所示的实施例中,在升级包签名合法时,步骤S60包括下述子步骤:S61,将OS-2的系统分区挂载到保存升级文件的目录,然后进行步骤S62,对待升级文件进行校验如md5sum,以确保待升级文件版本正确及未被修改过。然后进行步骤S63,用bspatch(补丁合成工具)和升级包中的补丁文件对待升级文件进行更新。打过补丁后,文件内容就更新到了新版本了,然后对打过补丁的文件的属性重新赋值。在实施例中,本专利技术也可适用于多系统的情况。例如,假设有3个系统,一个SyberOS,2个Android,分别称为OS-1、OS-2和OS-3及分别运行于3个容器中。用SyberOS即OS-1升级OS-本文档来自技高网...

【技术保护点】
一种基于容器的移动终端操作系统升级方法,其中多个操作系统分别在不同容器中运行,其特征在于,所述方法包括:将待升级操作系统切换到后台,及将非升级操作系统之一切换到前台;停止待升级操作系统所在的容器;所述非升级操作系统从服务器下载待升级操作系统的升级包;在用户确认升级时验证所述升级包的签名是否合法;在所述签名合法时用所述升级包中的升级文件盖写待升级操作系统的相应文件;及在升级完成后启动待升级操作系统所在的容器。

【技术特征摘要】
1.一种基于容器的移动终端操作系统升级方法,其中多个操作系统分别
在不同容器中运行,其特征在于,所述方法包括:
将待升级操作系统切换到后台,及将非升级操作系统之一切换到前台;
停止待升级操作系统所在的容器;
所述非升级操作系统从服务器下载待升级操作系统的升级包;
在用户确认升级时验证所述升级包的签名是否合法;
在所述签名合法时用所述升级包中的升级文件盖写待升级操作系统的相应
文件;及
在升级完成后启动待升级操作系统所在的容器。
2.根据权利要求1所述的方法,其特征在于,在所述升级包为增量升级
包时,在验证签名之前还包括对升级包进行解密。
3.根据权利要求1所述的方法,其特征在于,在所述升级包为增量升级
包时,所述盖写包括:
将待升级操作系统的系统分区挂载到保存升级包的目录;
对升级文件进行校验以确保升级文件版本正确及未被修改过;
用bspatch和升级包中的补丁文件对待升级文件进行更新。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对打过补丁的文件的属性重新赋值。
5.根据权利要求1所述的方法,其特征在于,在所述升级包为完整升级
包时,所述盖写包括将升级包镜像写入到待升级操作系统的对应分区。
6.根据权利要求1所述的方法,其特征在于,所述切换通过设备节点进
行。
7.一种基于容器的移动终端操作系统升级装置...

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

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

1