1.本发明涉及芯片嵌入式技术领域,特别涉及一种基于安全芯片的操作系统在线升级方法。
背景技术:2.目前,得益于嵌入式技术的普及,应用领域逐步扩大,智能终端业务处理能力不断提高,数据交互需求量不断增大,安全芯片作为一种嵌入式安全单元,os(operating system)是安全芯片内的操作系统软件,和安全芯片一起在智能终端中起到至关重要的作用。
3.操作系统(本文后续以os简称)主要用于接收和处理外界(如手机或者读卡器)通讯,负责系统、应用、安全、文件等管理,当智能终端等设备的业务流程发生变化、增加新业务,尤其是当安全芯片完成产品化之后,经常需要根据客户需求增加某些业务或更改os某些功能,为此需要对安全芯片os软件进行升级。
4.而现有传统的os升级方式,需要避开应用业务执行期,将应用业务状态返回到芯片出厂状态后才能进行os升级,应用业务所有数据和状态丢失,后续需要重新进行应用环境的初始化工作,导致工作效率低下,为用户的使用带来麻烦,因而具有一定局限性。
5.因此,本文为嵌入式安全芯片设计一种操作系统在线升级方法,能够在应用业务状态下也能完成os升级,并且不影响已经存在的应用业务的所有数据和状态。
技术实现要素:6.本发明所解决的技术问题是,如何设计一种基于安全芯片的操作系统在线升级方法。
7.本发明的方法针对安全芯片的操作系统在线升级,通过从用户应用空闲区中查找并合并足够的空闲区开辟操作系统补丁代码区,然后进行操作系统补丁代码下载;同时利用校验成功后才修改应用程序管理数据并使能操作系统补丁功能,确保当前系统只有一个有效的操作系统执行代码,实现在应用业务状态下,不影响已经存在的应用业务的所有数据和状态的同时完成操作系统的升级,提升操作系统升级效率。
8.为了更好的理解图3中操作系统在线升级方法的流程图的流程说明,增加了流程中需要操作的各步骤和模块功能描述,说明如下:
9.os原始代码区,是指芯片厂商默认下载的安全芯片操作系统代码区域,如果不进行操作系统的升级,此为唯一有效的操作系统代码;
10.os配置管理区,是指维护安全芯片操作系统运行的管理区域,可以包含数据镜像备份、应用事务备份配置、os操作系统升级标记、应用程序管理数据信息等配置;
11.应用数据区,是指当前应用业务已经下载数据的区域;
12.应用空闲区,是指当前可提供给用户下载数据的空闲区域,操作系统会针对应用数据和应用空闲区进行管理,可以包含应用空闲区所有可用的空间信息;
13.os补丁代码区,是指用来存放当前要升级的安全芯片操作系统代码,从现有应用空闲区开辟可用的空间作为os补丁代码区,若没有足够的应用空闲区,会导致升级失败;
14.内存紧缩,是指配置os补丁空间前,需要根据待更新的os代码大小和当前os补丁代码区大小的差异,由os升级管理模块决定开辟新os补丁代码区的策略:待更新的os代码大小超过当前os补丁代码区大小,需要动态查找或者内存搬移合并足够的应用空闲区,来满足当前操作系统补丁代码的空间需求,这个过程一般称为内存紧缩;
15.应用程序管理数据,是指存储应用程序的相关数据信息用于应用管理,可以包括异常信息、程序跳转、应用补丁表等,在进行os原始代码区和os补丁代码区的程序运行切换时,需要修改其中的管理信息,保证应用业务执行没有差异。
16.本发明的方法,在原有安全芯片空间和应用体系结构中,通过在应用空闲区中动态开辟os补丁代码区作为当前要升级的安全芯片操作系统代码存储,并且配合修改os配置管理和应用程序管理数据,使得芯片在应用状态下完成操作系统后,操作系统将根据os配置管理将对应更新的代码将跳转到os补丁代码区执行,从而不影响已下载的应用数据和执行状态。
17.本发明提供的方法,提供一种开辟新os补丁代码区的内存紧缩策略:若待更新的os代码大小不大于旧os补丁代码区大小时,直接减少旧os补丁代码区大小,增加应用空闲区即可;若待更新的os代码大小大于旧os补丁代码区大小时,将对旧os补丁代码区后续的应用空闲区进行内存紧缩操作,直到获取到足够的空间;该策略的目的是更加有效地利用应用空闲区的资源。
18.本发明提供的方法,提供一种在线升级必要流程,用户可以根据安全芯片特点、应用业务需要,如果有必要可以在启动os升级前增加用户权限认证,确保os升级的权限等级和管理;同时在进行os补丁代码下载时,如果有必要可以进行加密下载,确保os升级的安全性;
19.为了保证操作系统更新过程中发生断电或者异常时,重新上电或异常恢复以后,操作系统补丁功能是否使能标记为旧值或者新值,而不是第三态,本发明方法在操作系统更新过程中可以增加镜像处理,在关闭os补丁功能和使能os补丁功能时进行数据镜像备份,当新上电或异常恢复时,先判断os补丁功能的有效和合法性,然后根据判断结果选择需要执行的操作系统代码,这里的镜像处理可以使用业界通用备份方法,目的是保证操作系统代码补丁功能再次上电的正确性,如果有安全芯片自身可以保证,可以不进行镜像处理。
20.同时为了保证操作系统更新过程中发生断电或者异常时,重新上电或异常恢复以后,操作系统补丁功能和应用程序管理数据的更新保持同步,同时回退为旧值或者更新为新值,本发明方法在操作系统更新应用程序管理数据和使能操作系统补丁功能过程中使用业界应用通用事务方法,目的是保证应用程序管理数据信息的修改和使能操作系统补丁功能的同步性。
21.本发明方法针对应用空闲区开辟os补丁代码区进行设计,由于整体用户空间由安全芯片决定,这样会导致完成os升级后,后续应用数据空间减少;整体应用数据空间、os补丁代码区规划这是可以由用户指定并需要考虑的。
附图说明
22.图1是操作系统在线升级方法的安全芯片空间划分变化演示图。
23.图2是操作系统在线升级方法的功能模块演示。
24.图3是操作系统在线升级方法的流程图。
具体实施方式
25.下面结合附图对本发明方法进行详细说明。
26.如图1所示,本发明的方法基于的安全芯片空间划分变化演示大致如下:
27.当安全芯片出厂发布后,默认至少包含os原始代码区、os配置区和应用空闲区,此时没有应用数据;
28.当安全芯片完成产品化提供给应用下载了应用数据后,安全芯片的空间划分大致如应用业务状态划分,此时包含有应用数据区,下载了应用对象、数据和状态;同时也存在未下载应用业务的应用空闲区;
29.基于应用业务状态,如果进行操作系统在线升级后,空间划分将进入os升级状态分布,从应用空闲区中开辟增加os补丁代码区;
30.该部分空间均是指掉电不丢失的存储空间,空间划分区域用来演示变化可以有所差异。
31.如图2所示,本发明的方法通常可以通过安全芯片如下模块实现:
32.os代码执行模块:一般存储于os原始代码区,执行默认os代码,根据os配置管理模块查询的结果决定执行哪一块os代码;
33.os配置管理模块:一般存储于os配置区,完成os系统相关数据镜像备份功能、参数[配置功能、os升级相关标记、应用程序管理数据的存储并供os代码执行模块查询;
[0034]
os升级管理模块:一般存储于os原始代码区,根据os配置管理模块判断os补丁功能是否有效,决定后续os升级的具体流程、新os补丁代码区的开辟策略等;
[0035]
os配置管理模块需要存储和记录应用程序管理数据,在进行os升级时能后,能够及时根据os升级结果更新应用程序管理数据,不影响应用业务的执行;
[0036]
os升级管理模块在os补丁代码下载前,如果有必要可以增加用户权限管理,确保os升级的权限等级和管理;同时在os补丁代码下载时,如果有必要可以进行加密下载,确保os升级的安全性;而在完成校验后修改应用程序管理数据信息并使能操作系统补丁功能时,通常使用应用事务机制进行处理,保证应用程序管理数据信息和操作系统补丁功能使能标志更新状态一致,同时更新成功或回退旧值,保证当前系统只有一个有效的操作系统执行代码。
[0037]
如图3所示,给出本发明方法具体使用流程图,流程图中介绍使用本发明方法功能如何操作,按以下步骤操作,保证本发明方法功能的正确性,完成应用业务状态下操作系统在线升级功能:
[0038]
步骤1,在应用状态下,判断接收命令是否是启动操作系统升级命令,若是,将启动操作系统升级,进入步骤2,若不是将跳出操作系统升级流程,结束本流程;
[0039]
步骤2,若当前安全芯片操作系统补丁代码功能有效,则进入步骤3,否则在确保操作系统补丁功能为无效的状态下,进入步骤4;
[0040]
步骤3,关闭操作系统补丁功能,进入步骤4;
[0041]
步骤4,根据待升级的操作系统补丁大小,从用户应用空闲区中查找、整理出足够的空闲区作为操作系统补丁代码区,获取并配置操作系统补丁代码区起始地址和大小,若无足够空间,升级失败,结束本流程,否则进入步骤5;
[0042]
步骤5,根据升级命令,执行操作系统补丁代码下载,完成后进入步骤6;
[0043]
步骤6,对本次操作系统升级下载的补丁代码进行校验,确保代码的正确性;若操作系统升级校验成功,进入步骤7;若操作系统升级校验失败,则升级失败,结束本流程;
[0044]
步骤7,修改应用程序管理数据并使能操作系统补丁功能,完成操作系统升级流程。
[0045]
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导和说明,关于图1、2可以进行很多改变和变化。对示例性流程进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的实施方案进行各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
[0046]
通过本发明的阐述和本发明介绍的方法,通过对应用空闲区以及应用程序管理数据进行管理,开辟os补丁代码区,完成在应用业务状态下的os升级,同时不影响已经存在的应用业务的所有数据和状态,极大地提高os的升级效率。