系统更新方法及非短暂计算机可读介质与流程

文档序号:11285835阅读:258来源:国知局
系统更新方法及非短暂计算机可读介质与流程

本申请涉及电数字数据的处理领域,尤其涉及一种系统更新方法和保存用于实现前述方法的可执行代码的非短暂计算机可读介质。



背景技术:

目前android系统recovery升级采用的是两层设计架构:recovery主体程序+updater脚本执行程序+升级包。执行方式为recovery主体程序先启动,在完成必要的挂载分区、校验升级包签名后,再fork出一个进程来加载执行updater程序来执行升级脚本。在这种架构中,recovery主体程序内部的代码都是根据系统具体的需求固定死的,比如分区名称、签名验证规则、解析升级脚本的规则等等,一旦系统发布到市场后,只能在满足现有代码基础上做适当的修改或者升级,无法对系统进行根本性的改变,也就是无法任意定制系统。例如,发布出去的是一个系统,现在希望通过升级程序变成双系统,甚至改变用户可见存储大小等等,这些需求是现有androidrecovery程序架构无法满足的,因为androidrecovery设计架构的前提条件是不改变分区表的前提下进行升级,因此设计了前述架构。同时,android的升级包是明文的,也就是说一旦解压后,可以看到明文的升级脚本内容,这不利于系统安全性,会泄露系统相关分区以及升级信息。



技术实现要素:

为了克服现有技术中存在的不足,本发明要解决的技术问题是提供一种系统更新方法,其使能通过更新任意定制和改造系统,而代码改写量远小于传统recovery升级架构的代码改写量。

为解决上述技术问题,本发明系统更新方法,包括:

生成用于执行更新的主程序;

生成一个或多个更新子程序执行体,其中每一更新子程序具有相应的功能,及所述一个或多个更新子程序执行体在成功执行后构成所述系统的至少一部分;

生成更新配置文件,所述更新配置文件包含所述一个或多个更新子程序执行体的路径;

其中所述主程序在启动运行时,加载解析所述更新配置文件,并根据所述更新配置文件中的所述路径逐一加载和执行所述一个或多个更新子程序执行体中的每一更新子程序执行体。

作为本发明所述方法的改进,所述方法还包括:将所述一个或多个更新子程序执行体和所述更新配置文件打包成更新包。

作为本发明所述方法的进一步改进,所述方法还包括:所述主程序在启动运行时,对所述更新包的合法性进行校验。

作为本发明所述方法的另一种改进,所述方法还包括:所述主程序在加载一更新子程序执行体之后对其进行安全性校验。

作为本发明所述方法的又一种改进,所述方法还包括:每一更新子程序执行体在执行后将执行结果回传给所述主程序。

作为本发明所述方法的再一种改进,所述方法还包括:所述主程序在所有更新子程序执行体成功执行后提供更新成功的反馈。

为解决上述技术问题,本发明非短暂计算机可读介质,保存有用于执行系统更新的主程序、一个或多个更新子程序执行体和更新配置文件,其中每一更新子程序具有相应的功能,及所述一个或多个更新子程序执行体在成功执行后构成所述系统的至少一部分,所述更新配置文件包含所述一个或多个更新子程序执行体的路径;其中,所述主程序在启动运行时,加载解析所述更新配置文件,并根据所述更新配置文件中的所述路径逐一加载和执行所述一个或多个更新子程序执行体中的每一更新子程序执行体。

本发明方法提出了一种新的recovery架构,其采用recovery主程序+recovery更新配置文件+子程序执行体的方式。配置文件中保存的是主程序需要启动执行的子程序路径,用户根据需要可以配置任意多个子程序,用户可以定制每一个子程序的功能,而recovery主程序代码永远不需要改变,仅仅是按照配置文件的内容来加载并执行子程序即可,每一个子程序的执行结果都会回传给主程序,从而可通过更新任意定制系统,满足任意升级的需求。

另外,升级包的内容仅仅包含新的recovery配置文件和新的子程序执行体两部分内容,这样的升级包即使泄露出去,也无法从中看出系统的相关信息,使系统更加安全。

结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。

附图说明

图1为根据本发明方法的一实施例的流程图。

图2为使用本发明方法进行系统更新的一实施例的流程图。

为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。

具体实施方式

下面参照附图对本发明的实施方式和实施例进行详细说明。

通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。

图1示出了本发明方法应用于android系统升级更新的实施例。当然,只要适当,本发明方法也可应用于其它操作系统的更新升级。

下面结合图1所示流程图对本发明的系统更新方法的一实施例的各步骤进行具体说明。

在步骤s102中,移动设备厂商生成用于执行android操作系统更新的recovery主程序。recovery主程序一旦生成,其代码永远不需要改变。

在步骤s104中,生成一个或多个更新子程序执行体,每一更新子程序具有相应的功能,及一个或多个更新子程序执行体在成功执行后构成操作系统的至少一部分。各更新子程序之间有约定好的通讯机制,以确保各更新子程序之间能够进行相互通讯。

在步骤s106中,生成更新配置文件,该更新配置文件包含所述一个或多个更新子程序执行体的路径。

在步骤s108中,将所述一个或多个更新子程序执行体和所述更新配置文件打包成更新包,供终端用户下载或向终端用户推送。

其中,所述主程序在启动运行时,对所述更新包的合法性进行校验。在通过合法性校验的基础上,加载解析所述更新包中的更新配置文件,并根据所述更新配置文件中的所述路径逐一加载和执行所述一个或多个更新子程序执行体中的每一更新子程序执行体,以对操作系统进行更新升级。

例如,假设更新配置文件中包含了安全校验子程序、日志输出子程序、ui子程序、分区挂载子程序、升级规则子程序、升级子程序的路径。recovery主程序可预先安装在终端用户的移动设备上。在包含更新配置文件和更新子程序执行体的更新包推送或下载到移动设备之后,可进行系统更新升级。图2示出了更新升级的流程图。

在步骤s202,recovery主程序启动。

在步骤s204,recovery主程序首先校验更新包的合法性。如果更新包通过合法性校验,则处理进行到步骤s206,否则处理进行到步骤s230。

在步骤s206,recovery主程序加载解析更新配置文件。

在步骤s208,recovery主程序加载执行安全校验子程序,利用签名机制对安全校验子程序进行二进制校验,校验通过后该子程序执行其自身逻辑。

在步骤s210,recovery主程序加载日志子程序,通知安全校验子程序对其进行校验,校验通过后该子程序执行其自身逻辑。

在步骤s212,recovery主程序加载ui子程序,通知安全校验子程序对其进行校验,校验通过后该子程序执行其自身逻辑。

在步骤s214,recovery主程序加载分区挂载子程序,通知安全校验子程序对其进行校验,校验通过后该子程序执行其自身逻辑。

在步骤s216,recovery主程序加载升级子程序,通知安全校验子程序对其进行校验,校验通过后该子程序执行其自身逻辑,升级前会查询升级规则子程序是否允许升级。

在步骤s218,recovery主程序加载升级规则子程序,通知安全校验子程序对其进行校验,校验通过后该子程序执行其自身逻辑。

在步骤s220,recovery主程序在所有子程序依次成功执行后,提示反馈升级成功,由此系统将按照这些子程序的设计逻辑成为新的订制系统。

步骤s208到步骤s218的任一步骤校验未通过,则处理均进行到步骤s230。

在步骤s230,中间的任意过程失败后(如任意更新子程序执行体的校验或执行失败),recovery主程序用恰当的方式反馈给用户。

本发明方法的特点是可任意灵活扩展子程序,由此就可以按照需要对系统进行任意的改造,只要在升级包中提供recovery配置文件和子程序本身即可,recovery主程序无需改变。不同的子程序可以实现任意功能,只要用户需要,理论上可以任意组织、重新设计并订制系统。

本发明方法不仅实现了可扩展的智能recovery架构,而且大大降低了程序员写代码的工作负荷,提高了生产率。

本发明的一实施例还提供一种非短暂计算机可读介质,其上保存有用于执行系统更新的主程序、一个或多个更新子程序执行体和更新配置文件,其中每一更新子程序具有相应的功能,及所述一个或多个更新子程序执行体在成功执行后构成所述系统的至少一部分,所述更新配置文件包含所述一个或多个更新子程序执行体的路径;其中,所述主程序在启动运行时,加载解析所述更新配置文件,并根据所述更新配置文件中的所述路径逐一加载和执行所述一个或多个更新子程序执行体中的每一更新子程序执行体。根据一种实施方式,所述一个或多个更新子程序执行体和所述更新配置文件包含在一个更新包中;和/或所述主程序在启动运行时,对所述更新包的合法性进行校验。

在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、rom、ram、闪存、便携计算机存储介质如cd-rom、dvd-rom、闪盘驱动器和/或例如具有通用串行总线(usb)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。

除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。

前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明作出各种变形和修改,这些变形或修改仍落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1