片内操作系统下载的方法、片内操作系统和智能卡的制作方法

文档序号:6355181阅读:310来源:国知局
专利名称:片内操作系统下载的方法、片内操作系统和智能卡的制作方法
技术领域
本发明涉及智能卡技术领域,特别是涉及一种片内操作系统下载的方法、一种片 内操作系统和一种智能卡。
背景技术
伴随着智能卡的发展,人们利用其内部的微处理器芯片,开发了应用于智能卡内 部的各种各样的操作系统,即cos。COS的全称是Chip OperatingSystem(片内操作系统), 它一般是紧紧围绕着它所服务的智能卡的特点而开发的,即COS是一个专用系统而不是通 用系统,一种COS —般都只能应用于特定的某种(或者某些)智能卡,不同卡内的COS—般 是不同的。传统的COS下载通常按以下过程进行首先,芯片在下载COS前称为白卡状态,白卡状态的卡片由Loader (加载器)程序 控制所有命令的运行;其中,Loader程序是预置于白卡中的一段程序,用于控制COS下载, 所以在下载完成COS之前Loader程序不能被修改,否则下载COS不能成功;其次,通过Loader程序提供的命令接口,将COS程序下载到卡片中,当COS程序下 载完成后,卡片的控制权会交给C0S,也就是说卡片的命令处理全部由COS完成,而Loader 程序目前没有用处;再者,当卡片需要恢复为白卡状态时,需要进行一个反向的操作,即先通过一条私 有的APDU(应用协议数据单元,Application Protocol Data Unit)命令将卡片的控制权 由COS交给Loader程序,这时卡片的命令全部由Loader程序控制。然后通过Loader程序 提供的一条擦除卡片的APDU命令擦除C0S,这时卡片即转为了白卡状态。可以看出,在卡片的整个生命周期中,Loader程序一直存在于卡片中并且不能被 破坏,否则就造成卡片不能正常下载COS或者不能恢复为白卡状态。但是,对于采用Flash外存的Flash卡片来说,其内部的Flash空间一般会划分为 如下几块存放COS的COS区、存放Loader程序的Loader区和为用户预留的用户区。通 常,Flash空间为固定大小也即智能卡的存储空间有限,Loader区会占用几K的空间,COS 区所占用的空间时大时小,用户往往对用户区空间的大小有一定要求;这样,在COS代码量 相对较大的情况下,COS区所占用的空间就会相应的变大,导致用户区的空间缩小,也即不 再满足用户的要求。总之,需要本领域技术人员迫切解决的一个技术问题就是如何能够增加上述情 形下的用户区空间。

发明内容
本发明所要解决的技术问题是提供一种片内操作系统下载的方法、一种片内操作 系统和一种智能卡,能够节省智能卡的Flash空间,从而满足用户区空间的需求。为了解决上述问题,本发明公开了一种片内操作系统下载的方法,包括
将片内操作系统程序拆分为主程序和辅程序,其中,辅程序的大小不超过智能卡 的加载器区的大小;调用位于所述加载器区的加载器程序,将主程序编译后下载至智能卡的片内操作 系统区;通过主程序控制擦除所述加载器区,以及,将所述辅程序编译后下载至所述加载 器区。优选的,所述将片内操作系统程序拆分为主程序和辅程序的步骤,包括从所述片内操作系统程序中减去若干功能独立的函数,并依据所述若干功能独立 的函数生成辅程序,以减去所述若干功能独立的函数后的片内操作系统程序作为主程序;在主程序中定义供辅程序定义的接口,以及,在辅程序中定义供主程序调用的接优选的,步骤将主程序编译包括对所述主程序进行编译,转换为所述加载器程序 支持的第一下载格式文件,和/或,步骤将辅程序编译包括对所述辅程序进行编译,转换为所述主程序支持 的第二下载格式文件。优选的,所述方法还包括通过主程序控制恢复所述加载器区,包括擦除所述加载器区,将加载器程序编译 后下载至所述加载器区。优选的,步骤将加载器程序编译包括获取加载器程序后将其转换为主程序支持的第三下载格式文件。优选的,所述方法还包括通过加载器程序控制擦除所述片内操作系统区。另一方面,本发明还公开了一种片内操作系统,所述片内操作系统的程序包括主 程序和辅程序,所述主程序存储于智能卡的片内操作系统区,所述辅程序存储于智能卡的 加载器区;其中,所述辅程序的大小不超过所述加载器区的大小。优选的,在所述智能卡需要修改或恢复为白卡时,所述辅程序被擦除,所述加载器 区用于存储加载器程序。优选的,在所述智能卡需要修改或恢复为白卡时,所述主程序被擦除。另一方面,本发明还公开了一种智能卡,包括权利要求7-9任一所述的片内操作 系统。与现有技术相比,本发明具有以下优点本发明将COS程序拆分为主程序和辅程序,并且,通过Loader程序将主程序编译 后下载至COS区,以及,通过主程序控制将辅程序编译后下载至Loader区;由于辅程序的大 小不会超过智能卡的Loader区的大小,其可以复用Loader区;因此,相对于已有方法COS 区存储所有的COS程序,由于本发明的COS区仅存储COS的主程序,故可以节省COS区的辅 程序所占用的那部分空间,因此,本发明能够节省智能卡的Flash空间,从而满足用户对于 用户区空间的需求。另外,对于下载COS后需要进行修卡或擦空为白卡的情形,本发明还可以通过主程序控制恢复所述加载器区,其中,在将加载器程序编译后下载至所述加载器区前,会通过 擦除所述加载器区使辅程序让出Loader区,最终达到修卡或擦空为白卡的目的。总之,本发明可以通过采用Loader区交替存储Loader程序或COS的辅程序,以达 到COS的辅程序复用Loader区空间的目的,从而节省COS的辅程序所占用的那部分空间。


图1是本发明一种片内操作系统下载的方法实施例1的流程图;图2是本发明一种Flash空间的示例;图3是本发明一种片内操作系统下载的方法示例的流程图;图4是本发明一种片内操作系统下载的方法实施例2的流程图;图5是本发明一种片内操作系统实施例的结构图;图6是本发明一种智能卡实施例的结构图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。首先,根据Loader程序和COS的原理,可以得知,卡片控制权的转移有两种,一是 COS下载引起的控制权从Loader程序到COS的转移;二是卡片恢复为白卡状态所引起的控 制权从COS到Loader程序的转移。其次,对于Loader程序,由于其是用来下载COS用的,其只在掌握卡片控制权时才 会起作用,而当COS下载完毕后,其对用户是没有用的。对于C0S,其也只在掌握卡片控制权 时才会起作用。再者,无论卡片控制权的归属如何,如果能够让Loader程序和COS复用部分Flash 空间,并且,在卡片控制权发生转移时让出所占用的Flash空间,那么,将能够节省复用的 这部分Flash空间。进一步,在实际应用中,Loader区空间一般小于COS区空间。综上,本发明实施例的核心构思之一在于,通过将COS程序拆分为主程序和辅程 序,使得Loader程序和COS的辅程序复用Loader区空间。参照图1,示出了本发明一种片内操作系统下载的方法实施例1的流程图,具体可 以包括步骤101、将COS程序拆分为主程序和辅程序,其中,辅程序的大小不超过智能卡 的Loader区的大小;本发明可以应用于各种Flash卡片,如SIM用户身份识别模块,Subscriber Identity Module)卡、电卡等,用以节省这些卡片的Flash空间,从而满足用户对于用户区 空间的需求。为了实现Loader程序和COS的辅程序复用Loader区空间的目的,本发明实施例 的COS程序拆分应满足如下条件1、智能卡要下载程序,都需要将程序编译后的二进制码转化为某种格式的文件形 式,然后通过读卡器下载到卡片中。例如目前是一张白卡,卡片中只有Loader程序,要下载COS的话,需要将COS程序编译出来的二进制码转化为Loader程序支持的由多条APDU 命令组成的文件形式,然后才可以通过读卡器下载到卡片中。因此,本发明实施例将辅程序的大小不应超过智能卡的Loader区的大小,作为复 用Loader区空间的最基本条件。2、在卡片控制权从Loader程序向COS转移时,为了使Loader程序让出Loader区, 那么,辅程序的下载应晚于主程序;以及,在卡片控制权从COS向Loader程序转移时,为了 使辅程序让出Loader区,那么,辅程序的擦除应早于主程序。综上,确定了主程序和辅程序的功能分配,也即,本发明实施例的COS程序拆分的 依据拆分后的主程序掌握卡片控制权,其应具备基本读写、下载等主要功能;拆分后的辅 程序具有辅助功能,如交互功能等各种应用功能。在本发明的一种优选实施例中,可提供如下COS程序拆分方案,具体可以包括子步骤Al、从所述COS程序中减去若干功能独立的函数,并依据所述若干功能独 立的函数生成辅程序,以减去所述若干功能独立的函数后的COS程序作为主程序;子步骤A2、在主程序中定义供辅程序定义的接口,以及,在辅程序中定义供主程序 调用的接口。在实际中,所述若干功能独立的函数主要可以包括一些算法和应用程序的 APKApplication Programming hterface,应用程序编程接口);由于仅从原有COS程序 中减去了所述若干功能独立的函数,拆分后的仍然具有原有COS程序的主体函数,因此,主 程序具备基本读写、下载等主要功能,且在被下载后掌握卡片控制权。本发明将主程序编译的步骤可以包括对所述主程序进行编译,转换为所 述Loader程序支持的第一下载格式文件;优选的,所述第一下载格式文件可以包括 Hexdntel HEX)文件,Hex文件是由一行行符合htel HEX文件格式的文本所构成的ASCII 文本文件和/或,将辅程序编译的步骤可以包括对所述辅程序进行编译,转换为所述主程 序编译后支持的第二下载格式文件;优选的,所述第二下载格式文件可以包括PRG文件,这 里,PRG是foxbase/foxpro的程序文件,在DOS下可以用foxbase/foxpro来打开或执行, Windows下可以用Visual Foxpro打开或执行。在执行子步骤Al生成辅程序的过程中,可以通过编译不断检测辅程序的方式,将 辅程序的大小控制在智能卡的Loader区的大小之内。假设智能卡的Loader区的大小为 IOk,且从所述COS程序中减去的10个功能独立的函数所生成辅程序在编译后显示的大小 为8k,此时,8k < 10k,可以满足条件,但优选地,为了更好地复用Loader区的所有空间, 以及为了减少主程序编译后所占用的Flash空间,还可以增加功能独立的函数的数目,例 如,从所述COS程序中减去的14个功能独立的函数所生成辅程序在编译后显示的大小正 好为10k,此时,则可以最大限度地复用Loader区的所有空间,从而能够大大节省智能卡的 Flash空间。步骤102、调用位于所述Loader区的Loader程序,将主程序编译后下载至智能卡 的COS区;本步骤通过下载主程序后,来完成卡片控制权从Loader程序到主程序的转移,也 就转移到COS来控制。在实际中,可依据APDU(应用协议数据单元)命令,调用所述Loader程序,本发明对具体的调用方式不加以限制。步骤103、通过主程序控制擦除所述Loader区,以及,将所述辅程序编译后下载至 所述Loader区。在所述主程序掌握卡片控制权后,由于其具备基本读写功能,故本步骤通过调用 其来擦除所述Loader区,使Loader程序让出Loader区。在实际中,所述主程序可通过私 有APDU命令将loader程序擦除;例如,向智能卡发送一条0002000000命令,在收到这条命 令后,所述主程序即对loader区进行擦除。另外,由于所述主程序具备下载功能,本步骤还可以通过调用其来下载所述辅程 序后,使辅程序占用Loader区。在实际中,所述主程序也可通过私有APDU命令下载辅程序; 例如,向智能卡发送84DE0200050102030405,表示向智能卡0200这个地址写入5个字节 0102030405。参考图2,示出了本发明一种Flash空间的示例,其具体可以包括Loader区201、 COS区202和用户区203,其中,Loader区201用来交替存储Loader程序或COS的辅程序, 以达到COS的辅程序复用Loader区空间的目的;COS区202用来存储COS的主程序,用户 区203为用户预留区域。可以看出,相对于已有方法COS区存储所有的COS程序,由于本发 明的COS区仅存储COS的主程序,故可以节省COS的辅程序所占用的那部分空间,也即,本 发明能够减少COS区空间的大小,节省智能卡的Flash空间,从而满足用户对于用户区空间 的需求。需要说明的是,图2只是作为示例,实际上,本发明中COS区202可以指Flash空间 中除Loader区201外的任意空间区域,其地址空间可由本领域技术人员根据需要来配置, 例如可以配置为连续或者不连续,本发明对具体的COS区不加以限制。以下通过图3所示的本发明一种片内操作系统下载的方法示例为使本领域技术 人员更好地理解本发明,具体可以包括步骤301、在白卡状态,卡片由Loader程序控制;步骤302、将COS程序拆分为主程序和辅程序,其中,辅程序的大小不超过智能卡 的Loader区的大小;步骤303、对所述主程序进行编译,转换为所述Loader程序支持的第一下载格式 文件Hex ;步骤304、对所述辅程序进行编译,转换为所述主程序支持的第二下载格式文件 PRG ;步骤305、通过Loader程序下载Hex到卡片中,由COS掌握卡片控制权;步骤306、通过COS擦除Loader区;步骤307、通过COS下载RRG到Loader区,完成COS下载。参照图4,示出了本发明一种片内操作系统下载的方法实施例2的流程图,具体可 以包括步骤401、将COS程序拆分为主程序和辅程序,其中,辅程序的大小不超过智能卡 的Loader区的大小;步骤402、调用位于所述Loader区的Loader程序,将主程序编译后下载至智能卡 的COS区;
步骤403、通过主程序控制擦除所述Loader区,以及,将所述辅程序编译后下载至 所述Loader区;步骤404、通过主程序控制恢复所述Loader区,具体可以包括步骤441、擦除所述Loader区;步骤442、将Loader程序编译后下载至所述Loader区。由于卡片下载COS后有可能需要进行修卡或擦空为白卡的处理,故本实施例相对 于实施例1,增加了步骤404的处理方法。由于此时Loader程序已被COS擦除,故在及转移卡片控制权之前,需要将芯片的 Loader程序恢复,本实施例正是通过步骤404来实现Loader程序的恢复。在本发明的一种优选实施例中,可将Loader程序编译的步骤可以包括获取 Loader程序后,将其转换为主程序支持的第三下载格式文件。在实际中,可由芯片厂商提供loader程序编译后的二进制码的文件。要下载 Loader程序的话,需要将loader程序编译后的二进制码的文件转化为主程序支持的由多 条APDU组成的文件形式,然后才可以通过读卡器下载到卡片中。因此,上述得到的第三下 载格式文件,就是一种依据Loader程序编译出来的二进制码转换后形成的文件,其可由多 条APDU命令组成,并且这些APDU命令是COS的主程序能够支持的。在实际中,下载了 Loader程序,即可意味着完成了卡片控制权从主程序到Loader 程序的转移。在本发明的一种优选实施例中,为了下次COS下载的便利性,还可以包括通 过加载器程序控制擦除所述COS区,这里的控制也可依据APDU命令来实现,具体参照前述 APDU命令,在此不作赘述。对于方法实施例2而言,由于其与方法实施例1基本相似,所以描述的比较简单, 相关之处参见方法实施例1的部分说明即可。前述片内操作系统的下载方法实施例可用于实际的片内操作系统中,本发明还公 开了一种片内操作系统实施例,参照图5,所述片内操作系统的程序5A具体可以包括主程 序501和辅程序502,所述主程序501可存储于智能卡的片内操作系统区,所述辅程序502 可存储于智能卡的加载器区;其中,所述辅程序502的大小不超过所述加载器区的大小。上述实施例适用于将COS程序成功下载到智能卡后、所述COS程序在智能卡中的 分布存储;其中,所述COS程序的拆分及具体的COS程序下载过程请参照片内操作系统下载 的方法实施例,在此不作赘述。实际应用中,对于成功下载COS程序后的智能卡,还有可能对其进行修卡或擦空 为白卡的处理,此时需要将智能卡的Loader程序恢复。因此,在本发明的一种优选实施例 中,在所述智能卡需要修改或恢复为白卡时,所述辅程序502可被擦除,而所述加载器区可 用于存储加载器程序。在本发明的另一种优选实施例中,在所述智能卡需要修改或恢复为白卡时,所述 主程序501也可被擦除。对于片内操作系统实施例而言,由于其与片内操作系统下载的方法实施例基本相 似,所以描述的比较简单,相关之处参见片内操作系统下载的方法实施例的部分说明即可。前述片内操作系统实施例可用于实际的智能卡中,参照图6,示出了本发明一种智能卡实施例的结构图,具体可以包括片内操作系统601、片内操作系统区602和加载器区 603,其特征在于,所述片内操作系统的程序6A具体可以包括主程序611和辅程序612,所述 片内操作系统区602主要用于存储所述主程序611 ;所述加载器区603主要用于存储所述 辅程序612;其中,所述辅程序612的大小不超过所述加载器区602的大小。上述实施例适用于将COS程序成功下载到智能卡后、所述片内操作系统区602和 加载器区603的分布存储;其中,所述COS程序的拆分及具体的COS程序下载过程请参照片 内操作系统下载的方法实施例,在此不作赘述。实际应用中,对于成功下载COS程序后的智能卡,还有可能对其进行修卡或擦空 为白卡的处理,此时需要将智能卡的Loader程序恢复。因此,在本发明的一种优选实施例 中,在所述智能卡需要修改或恢复为白卡时,所述加载器区603还可用于存储加载器程序, 此时,所述辅程序612则被擦除。在本发明的另一种优选实施例中,在所述智能卡需要修改或恢复为白卡时,所述 主程序611也可被擦除。对于智能卡实施例而言,由于其与片内操作系统下载的方法和片内操作系统实施 例基本相似,所以描述的比较简单,相关之处参见片内操作系统下载的方法实施例和片内 操作系统实施例的部分说明即可。以上对本发明所提供的一种片内操作系统下载的方法、一种片内操作系统和一种 智能卡,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一 般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种片内操作系统下载的方法,其特征在于,包括将片内操作系统程序拆分为主程序和辅程序,其中,辅程序的大小不超过智能卡的加 载器区的大小;调用位于所述加载器区的加载器程序,将主程序编译后下载至智能卡的片内操作系统区;通过主程序控制擦除所述加载器区,以及,将所述辅程序编译后下载至所述加载器区。
2.如权利要求1所述的方法,其特征在于,所述将片内操作系统程序拆分为主程序和 辅程序的步骤,包括从所述片内操作系统程序中减去若干功能独立的函数,并依据所述若干功能独立的函 数生成辅程序,以减去所述若干功能独立的函数后的片内操作系统程序作为主程序; 在主程序中定义供辅程序定义的接口,以及,在辅程序中定义供主程序调用的接口。
3.如权利要求1所述的方法,其特征在于,步骤将主程序编译包括对所述主程序进行 编译,转换为所述加载器程序支持的第一下载格式文件,和/或,步骤将辅程序编译包括对所述辅程序进行编译,转换为所述主程序支持的第 二下载格式文件。
4.如权利要求1所述的方法,其特征在于,还包括通过主程序控制恢复所述加载器区,包括擦除所述加载器区,将加载器程序编译后下 载至所述加载器区。
5.如权利要求4所述的方法,其特征在于,步骤将加载器程序编译包括 获取加载器程序后将其转换为主程序支持的第三下载格式文件。
6.如权利要求5所述的方法,其特征在于,还包括 通过加载器程序控制擦除所述片内操作系统区。
7.一种片内操作系统,其特征在于,所述片内操作系统的程序包括主程序和辅程序,所 述主程序存储于智能卡的片内操作系统区,所述辅程序存储于智能卡的加载器区;其中,所述辅程序的大小不超过所述加载器区的大小。
8.如权利要求7所述的片内操作系统,其特征在于,在所述智能卡需要修改或恢复为 白卡时,所述辅程序被擦除,所述加载器区用于存储加载器程序。
9.如权利要求7所述的片内操作系统,其特征在于,在所述智能卡需要修改或恢复为 白卡时,所述主程序被擦除。
10.一种智能卡,包括权利要求7-9任一所述的片内操作系统。
全文摘要
本发明提供了一种片内操作系统下载的方法、一种片内操作系统和一种智能卡,其中的方法具体包括将片内操作系统程序拆分为主程序和辅程序,其中,辅程序的大小不超过智能卡的加载器区的大小;调用位于所述加载器区的加载器程序,将主程序编译后下载至智能卡的片内操作系统区;通过主程序控制擦除所述加载器区,以及,将所述辅程序编译后下载至所述加载器区。本发明能够节省智能卡的Flash空间,从而满足用户区空间的需求。
文档编号G06K1/12GK102110004SQ20111004786
公开日2011年6月29日 申请日期2011年2月28日 优先权日2011年2月28日
发明者崔毅 申请人:北京握奇数据系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1