太阳城集团

  • / 14
  • 下载费用:30 金币  

一种为智能卡打补丁的方法和系统.pdf

摘要
申请专利号:

太阳城集团CN201310710638.X

申请日:

2013.12.19

公开号:

太阳城集团CN103677933A

公开日:

2014.03.26

当前法律状态:

驳回

有效性:

无权

法律详情: 发明专利申请公布后的驳回IPC(主分类):G06F 9/445申请公布日:20140326|||实质审查的生效IPC(主分类):G06F 9/445申请日:20131219|||公开
IPC分类号: G06F9/445 主分类号: G06F9/445
申请人: 大唐微电子技术有限公司
发明人: 董翔; 樊兆均
地址: 100094 北京市海淀区永嘉北路6号
优先权:
专利代理机构: 北京安信方达知识产权代理有限公司 11262 代理人: 王丹;栗若木
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201310710638.X

授权太阳城集团号:

||||||

法律状态太阳城集团日:

2018.04.20|||2014.04.23|||2014.03.26

法律状态类型:

太阳城集团发明专利申请公布后的驳回|||实质审查的生效|||公开

摘要

本发明公开了一种实现智能卡软件补丁的方法,包括:在平台系统软件中预留补丁代码调用接口,在可擦写存储空间内预留补丁代码运行空间;将补丁代码下载到预留的可擦写存储空间内,向补丁代码调用接口返回补丁代码运行的入口地址;如平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。本发明能便捷、高效地实现智能卡平台软件的适应性修改。本发明还公开了一种实现智能卡软件补丁的方法,能够便捷、高效地实现智能卡应用软件的适应性修改。

权利要求书

权利要求书
1.  一种实现智能卡软件补丁的方法,该方法包括:
在智能卡平台系统软件中预留补丁代码调用接口,在智能卡上的可擦写存储空间内预留补丁代码运行空间;
将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址;
如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。

2.  如权利要求1所述的方法,其特征在于:
所述智能卡是Java卡。

3.  如权利要求2所述的方法,其特征在于:
在智能卡平台系统软件中预留补丁代码调用接口,包括:在智能卡平台系统软件的以下一种或多种处理流程中预留补丁代码调用接口:a)中断处理流程;b)设备驱动处理流程;c)命令分发处理流程。

4.  如权利要求2所述的方法,其特征在于:
在智能卡平台系统软件中预留补丁代码调用接口,包括:
在智能卡平台系统软件中定义补丁函数指针,在系统初始化时设置此函数指针为空;
将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址,包括:
将补丁代码下载到预留的可擦写存储空间,将所述补丁函数指针赋值为所述补丁代码运行的入口地址;
如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码,包括:
如智能卡平台系统软件运行时检测到所述补丁函数指针不为空,则执行该补丁函数指针所指向的补丁代码;如智能卡平台系统软件运行时检测到所 述补丁函数指针为空,则执行原函数代码。

5.  一种实现智能卡软件补丁的方法,该方法包括:
应用软件中需要考虑产品适应性的功能模块采用服务端应用程序实现,应用软件的主框架模块采用客户端应用程序实现;客户端应用程序通过服务端应用程序的应用标识AID获得相应服务端应用程序的服务;
为不可删除的服务端应用程序打补丁时,直接下载并安装新的服务端应用程序,并为新下载的服务端应用程序创建新的AID;客户端应用程序查找所述新的AID,通过所述新的AID获得新下载的服务端应用程序的服务。

6.  如权利要求5所述的方法,其特征在于:
所述智能卡是Java卡。

7.  如权利要求6所述的方法,其特征在于,还包括:
为可删除的服务端应用程序打补丁时,删除该服务端应用程序,重新下载新的服务端应用程序,并为新下载的服务端应用程序创建与被删除的服务端应用程序相同的AID;客户端应用程序通过原来的AID获得新下载的服务端应用程序的服务。

8.  如权利要求6所述的方法,其特征在于:
所述AID包括版本号字段;
所述为新下载的服务端应用程序创建新的AID,包括:为新下载的服务端应用程序创建的AID的版本号比原来的服务端应用程序的AID的版本号高1号;
客户端应用程序查找所述新的AID,包括:
客户端应用程序从预定义的最高版本号的AID向低版本号的AID遍历,如找到一个版本号比当前需要打补丁的服务端应用小程序的版本号高的服务端应用小程序,则该新找到的服务端应用小程序的AID是新的AID。

9.  如权利要求6所述的方法,其特征在于:
客户端应用程序通过服务端应用程序的AID获得相应服务端应用程序 的服务,包括:
客户端应用程序调用Java卡标准API方法,通过指定服务端应用程序的AID和相应参数获得该服务端应用程序提供的共享接口,使用该共享接口中的方法,获得该服务端应用程序提供的服务。

10.  一种实现智能卡软件补丁的系统,该系统包括:
预处理模块,用于在智能卡平台系统软件中预留补丁代码调用接口,在智能卡上的可擦写存储空间内预留补丁代码运行空间;
下载模块,用于将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址;
打补丁模块,用于如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。

11.  如权利要求10所述的系统,其特征在于:
所述智能卡是Java卡。

12.  如权利要求11所述的系统,其特征在于:
预处理模块,用于通过以下方式在智能卡平台系统软件中预留补丁代码调用接口:
在智能卡平台系统软件的以下一种或多种处理流程中预留补丁代码调用接口:a)中断处理流程;b)设备驱动处理流程;c)命令分发处理流程。

13.  如权利要求11所述的系统,其特征在于:
预处理模块,用于通过以下方式在智能卡平台系统软件中预留补丁代码调用接口:在智能卡平台系统软件中定义补丁函数指针,在系统初始化时设置此函数指针为空;
下载模块,用于通过以下方式将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址:将补丁代码下载到预留的可擦写存储空间,将所述补丁函数指针赋值为所述补丁代码 运行的入口地址;
打补丁模块,用于如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码,包括:如智能卡平台系统软件运行时检测到所述补丁函数指针不为空,则执行该补丁函数指针所指向的补丁代码;如智能卡平台系统软件运行时检测到所述补丁函数指针为空,则执行原函数代码。

14.  一种实现智能卡软件补丁的系统,该系统包括:
应用程序创建模块,用于应用软件中需要考虑产品适应性的功能模块采用服务端应用程序实现,应用软件的主框架模块采用客户端应用程序实现;客户端应用程序通过服务端应用程序的应用标识AID获得相应服务端应用程序的服务;
打补丁模块,用于为不可删除的服务端应用程序打补丁时,直接下载并安装新的服务端应用程序,并为新下载的服务端应用程序创建新的AID;客户端应用程序查找所述新的AID,通过所述新的AID获得新下载的服务端应用程序的服务。

15.  如权利要求14所述的系统,其特征在于:
所述智能卡是Java卡。

16.  如权利要求15所述的系统,其特征在于:
打补丁模块,还用于为可删除的服务端应用程序打补丁时,删除该服务端应用程序,重新下载新的服务端应用程序,并为新下载的服务端应用程序创建与被删除的服务端应用程序相同的AID;客户端应用程序通过原来的AID获得新下载的服务端应用程序的服务。

17.  如权利要求15所述的系统,其特征在于:
所述AID包括版本号字段;
打补丁模块,用于采用以下的方式为新下载的服务端应用程序创建新的AID:为新下载的服务端应用程序创建的AID的版本号比原来的服务端应用 程序的AID的版本号高1号;
打补丁模块,用于客户端应用程序采用以下的方式查找所述新的AID:客户端应用程序从预定义的最高版本号的AID向低版本号的AID遍历,如找到一个版本号比当前需要打补丁的服务端应用小程序的版本号高的服务端应用小程序,则该新找到的服务端应用小程序的AID是新的AID。

18.  如权利要求15所述的系统,其特征在于:
应用程序创建模块,用于客户端应用程序通过服务端应用程序的AID获得相应服务端应用程序的服务,包括:
客户端应用程序调用Java卡标准API方法,通过指定服务端应用程序的AID和相应参数获得该服务端应用程序提供的共享接口,使用该共享接口中的方法,获得该服务端应用程序提供的服务。

说明书

说明书一种为智能卡打补丁的方法和系统
技术领域
本发明涉及智能卡领域,尤其涉及的是一种为智能卡打补丁的方法和系统。
背景技术
智能卡产品的生产模式决定了一次投片常常是生产成千上万个的智能卡芯片。在智能卡生产过程中会将很多软件代码,包括平台系统软件代码和部分应用软件代码,固化在智能卡的ROM中。由于ROM中的内容在卡生产完成后不能够再被修改,因此固化在ROM中的软件要尽量考虑周全各种用户需求,功能实现正确,通过必要的测试。但在实际的智能卡产品市场应用过程里,智能卡里的软件即使有充分的测试,还是有可能存在某些考虑不到的缺陷,另外,用户需求往往有不可预测的变化。若不能适应这些产品化要求,就可能造成大量已经生产的智能卡(Java卡)不能再投入市场,卖给用户,会给智能卡产品提供厂商造成相应的经济损失。
对于后下载到智能卡的可擦写存储器中的应用软件,如果需要更新,从技术上来讲,遵照Java Card规范是可以将该应用软件从卡上删除,再下载完善后的新应用软件到卡上的。但是,这种重新下载的方式具有下述缺陷:1)在删除原应用软件时会同时删除该应用软件所属的数据,造成用户使用过程中的数据丢失。2)即使对应用软件很少的改动也需要较多的操作过程,包括删除原来的应用软件,重新下载新应用软件,进行应用软件的实例化、预个人化和个人化操作等,这就需要很长的维护太阳城集团。3)有些应用的数据可能出于安全的原因只能够被初始化一次,否则卡片就要作废。
因此,需要一种便捷、高效的方法解决智能卡产品化过程中的适应性需求,实现智能卡软件的功能扩展和功能修改。
发明内容
本发明所要解决的技术问题是提供一种为智能卡打补丁的方法和系统,能够便捷、高效地实现智能卡软件的产品适应性修改。
为了解决上述技术问题,本发明提供了一种实现智能卡软件补丁的方法,该方法包括:
在智能卡平台系统软件中预留补丁代码调用接口,在智能卡上的可擦写存储空间内预留补丁代码运行空间;
将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址;
如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。
进一步地,该方法还包括下述特点:
所述智能卡是Java卡。
进一步地,该方法还包括下述特点:
在智能卡平台系统软件中预留补丁代码调用接口,包括:在智能卡平台系统软件的以下一种或多种处理流程中预留补丁代码调用接口:a)中断处理流程;b)设备驱动处理流程;c)命令分发处理流程。
进一步地,该方法还包括下述特点:
在智能卡平台系统软件中预留补丁代码调用接口,包括:
在智能卡平台系统软件中定义补丁函数指针,在系统初始化时设置此函数指针为空;
将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址,包括:
将补丁代码下载到预留的可擦写存储空间,将所述补丁函数指针赋值为所述补丁代码运行的入口地址;
如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码,包括:
如智能卡平台系统软件运行时检测到所述补丁函数指针不为空,则执行该补丁函数指针所指向的补丁代码;如智能卡平台系统软件运行时检测到所述补丁函数指针为空,则执行原函数代码。
为了解决上述技术问题,本发明还提供了一种实现智能卡软件补丁的方法,该方法包括:
应用软件中需要考虑产品适应性的功能模块采用服务端应用程序实现,应用软件的主框架模块采用客户端应用程序实现;客户端应用程序通过服务端应用程序的应用标识AID获得相应服务端应用程序的服务;
为不可删除的服务端应用程序打补丁时,直接下载并安装新的服务端应用程序,并为新下载的服务端应用程序创建新的AID;客户端应用程序查找所述新的AID,通过所述新的AID获得新下载的服务端应用程序的服务。
进一步地,该方法还包括下述特点:
所述智能卡是Java卡。
进一步地,该方法还包括下述特点:
为可删除的服务端应用程序打补丁时,删除该服务端应用程序,重新下载新的服务端应用程序,并为新下载的服务端应用程序创建与被删除的服务端应用程序相同的AID;客户端应用程序通过原来的AID获得新下载的服务端应用程序的服务。
进一步地,该方法还包括下述特点:
所述AID包括版本号字段;
所述为新下载的服务端应用程序创建新的AID,包括:为新下载的服务端应用程序创建的AID的版本号比原来的服务端应用程序的AID的版本号高1号;
客户端应用程序查找所述新的AID,包括:
客户端应用程序从预定义的最高版本号的AID向低版本号的AID遍历,如找到一个版本号比当前需要打补丁的服务端应用小程序的版本号高的服务端应用小程序,则该新找到的服务端应用小程序的AID是新的AID。
进一步地,该方法还包括下述特点:
客户端应用程序通过服务端应用程序的AID获得相应服务端应用程序的服务,包括:
客户端应用程序调用Java卡标准API方法,通过指定服务端应用程序的AID和相应参数获得该服务端应用程序提供的共享接口,使用该共享接口中的方法,获得该服务端应用程序提供的服务。
为了解决上述技术问题,本发明还提供了一种实现智能卡软件补丁的系统,该系统包括:
预处理模块,用于在智能卡平台系统软件中预留补丁代码调用接口,在智能卡上的可擦写存储空间内预留补丁代码运行空间;
下载模块,用于将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址;
打补丁模块,用于如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。
进一步地,该系统还包括下述特点:
所述智能卡是Java卡。
进一步地,该系统还包括下述特点:
预处理模块,用于通过以下方式在智能卡平台系统软件中预留补丁代码调用接口:
在智能卡平台系统软件的以下一种或多种处理流程中预留补丁代码调用接口:a)中断处理流程;b)设备驱动处理流程;c)命令分发处理流程。
进一步地,该系统还包括下述特点:
预处理模块,用于通过以下方式在智能卡平台系统软件中预留补丁代码调用接口:在智能卡平台系统软件中定义补丁函数指针,在系统初始化时设置此函数指针为空;
下载模块,用于通过以下方式将补丁代码下载到预留的可擦写存储空间 内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址:将补丁代码下载到预留的可擦写存储空间,将所述补丁函数指针赋值为所述补丁代码运行的入口地址;
打补丁模块,用于如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码,包括:如智能卡平台系统软件运行时检测到所述补丁函数指针不为空,则执行该补丁函数指针所指向的补丁代码;如智能卡平台系统软件运行时检测到所述补丁函数指针为空,则执行原函数代码。
为了解决上述技术问题,本发明还提供了一种实现智能卡软件补丁的系统,该系统包括:
应用程序创建模块,用于应用软件中需要考虑产品适应性的功能模块采用服务端应用程序实现,应用软件的主框架模块采用客户端应用程序实现;客户端应用程序通过服务端应用程序的应用标识AID获得相应服务端应用程序的服务;
打补丁模块,用于为不可删除的服务端应用程序打补丁时,直接下载并安装新的服务端应用程序,并为新下载的服务端应用程序创建新的AID;客户端应用程序查找所述新的AID,通过所述新的AID获得新下载的服务端应用程序的服务。
进一步地,该系统还包括下述特点:
所述智能卡是Java卡。
进一步地,该系统还包括下述特点:
打补丁模块,还用于为可删除的服务端应用程序打补丁时,删除该服务端应用程序,重新下载新的服务端应用程序,并为新下载的服务端应用程序创建与被删除的服务端应用程序相同的AID;客户端应用程序通过原来的AID获得新下载的服务端应用程序的服务。
进一步地,该系统还包括下述特点:
所述AID包括版本号字段;
打补丁模块,用于采用以下的方式为新下载的服务端应用程序创建新的 AID:为新下载的服务端应用程序创建的AID的版本号比原来的服务端应用程序的AID的版本号高1号;
打补丁模块,用于客户端应用程序采用以下的方式查找所述新的AID:客户端应用程序从预定义的最高版本号的AID向低版本号的AID遍历,如找到一个版本号比当前需要打补丁的服务端应用小程序的版本号高的服务端应用小程序,则该新找到的服务端应用小程序的AID是新的AID。
进一步地,该系统还包括下述特点:
应用程序创建模块,用于客户端应用程序通过服务端应用程序的AID获得相应服务端应用程序的服务,包括:
客户端应用程序调用Java卡标准API方法,通过指定服务端应用程序的AID和相应参数获得该服务端应用程序提供的共享接口,使用该共享接口中的方法,获得该服务端应用程序提供的服务。
与现有技术相比,本发明提供的一种为智能卡打补丁的方法和系统,针对智能卡平台系统软件,通过将补丁代码下载到智能卡的可擦写永久存储区,按需调用补丁代码的函数,能够便捷、高效地实现智能卡平台软件的适应性修改;针对应用软件,应用软件中需要考虑产品适应性的功能模块以服务端应用程序实现,应用软件中的主框架模块以客户端应用程序实现,客户端应用程序通过服务端应用程序的AID获得相应服务,完成打补丁,从而便捷、高效地实现智能卡应用软件的适应性修改。
附图说明
图1为本发明实施例的一种为智能卡打补丁的方法(对平台系统软件打补丁)的流程图。
图2为本发明实施例的另一种为智能卡打补丁的方法(对应用软件打补丁)的流程图。
图3为本发明实施例的一种为智能卡打补丁的系统的结构示意图(对平台系统软件打补丁)。
图4为本发明实施例的一种为智能卡打补丁的系统的结构示意图(对应 用软件打补丁)。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,本发明实施例提供了一种实现智能卡软件补丁的方法,该方法包括:
S10,在智能卡平台系统软件中预留补丁代码调用接口,在智能卡上的可擦写存储空间内预留补丁代码运行空间;
S20,将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址;
S30,如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。
该方法还可以包括下述特点:
较佳地,在智能卡平台系统软件中预留补丁代码调用接口,包括:在智能卡平台系统软件的以下一种或多种处理流程中预留补丁代码调用接口:a)中断处理流程;b)设备驱动处理流程;c)命令分发处理流程;
较佳地,在智能卡平台系统软件中预留补丁代码调用接口,包括:对功能需求容易出现变化的处理流程、或者在产品化阶段需要进行功能扩展的处理流程、或者容易出现功能缺陷的处理流程,为这些处理流程预留补丁代码调用接口。
较佳地,所述智能卡是Java卡。
其中,Java卡平台系统软件一般采用C语言+汇编语言(ASM)实现。但是,如果所述Java卡平台系统软件中还具有采用Java语言实现的处理流程,则需要先通过虚拟机native方法将该处理流程转换为用C语言实现,然后在其C语言实现中再采用上面的打补丁方法。
较佳地,将补丁代码下载到预留的可擦写存储空间内之前,将所述补丁代码编译为智能卡平台系统软件的函数库。具体地,如补丁程序的实现不依赖智能卡平台系统软件里的函数功能,则直接将所述补丁程序编译成函数库。如补丁程序实现需要调用智能卡平台系统软件里的函数功能,则在编译补丁程序时,需要导入固化在智能卡ROM里智能卡平台系统软件相应的编译太阳城集团(如函数地址、全局变量地址等)。
较佳地,将补丁代码下载到预留的可擦写存储空间内,包括:智能卡平台系统软件接收到智能卡外部设备通过应用协议数据单元(application protocol data unit,APDU)命令发送过来的补丁代码后,将所述补丁代码下载到预留的可擦写存储空间内。
较佳地,所述可擦写存储空间为EEPROM。
较佳地,具体实现时,可以在智能卡平台系统软件中定义补丁函数指针,该补丁函数指针与需要打补丁的原函数具有相同的定义(也即,参数类型和返回值类型相同),在系统初始化时设置此函数指针为空。将补丁代码下载到预留的可擦写存储空间,将所述补丁函数指针赋值为所述补丁代码运行的入口地址。在智能卡平台系统软件运行时,增加对此补丁函数指针的判断,如所述补丁函数指针为空(即不存在补丁函数),则仍然执行原函数代码,如果所述补丁函数指针不为空(即存在补丁函数),则执行该补丁函数指针所指向的补丁代码。
较佳地,如图2所示,本发明实施例还提供了一种实现智能卡软件补丁的方法,该方法包括:
S10,应用软件中需要考虑产品适应性的功能模块采用服务端应用程序实现,应用软件的主框架模块采用客户端应用程序实现;客户端应用程序通过服务端应用程序的应用标识AID获得相应服务端应用程序的服务;
S20,为不可删除的服务端应用程序打补丁时,直接下载并安装新的服务端应用程序,并为新下载的服务端应用程序创建新的AID;客户端应用程序查找所述新的AID,通过所述新的AID获得新下载的服务端应用程序的服务;
该方法还可以包括下述特点:
其中,所述智能卡是Java卡。
较佳地,每一个应用程序应用程序具有唯一的应用标识(AID);其中,AID可以包括标识字段和版本号字段。同一个功能模块的各应用程序的AID,其标识字段相同,版本号字段不同;不同功能模块的应用程序的AID的标识字段不同。比如,服务端应用程序的AID定义规则如下:AID由10位组成,前9个字节为0x112233445566778899,最后1个字节表示版本号,版本号从0到15。
较佳地,客户端应用程序通过服务端应用程序的AID获得相应服务端应用程序的服务,包括:
客户端应用程序调用Java卡标准应用程序接口API方法getAppletShareableInterfaceObject(AID serverAID,byte parameter),通过指定服务端应用程序的AID和相应参数获得该服务端应用程序提供的共享接口,使用该共享接口中的方法,获得该服务端应用程序提供的服务。
较佳地,步骤S20中,为可删除的服务端应用程序打补丁时,删除该服务端应用程序,重新下载新的服务端应用程序,并为新下载的服务端应用程序创建与被删除的服务端应用程序相同的AID;客户端应用程序通过原来的AID获得新下载的服务端应用程序的服务。
较佳地,所述为新下载的服务端应用程序创建新的AID,包括:为新下载的服务端应用程序创建的AID的版本号比原来的服务端应用程序的AID的版本号高1号;
客户端应用程序查找所述新的AID,包括:客户端应用程序从预定义的最高版本号的AID向低版本号的AID遍历,如找到一个版本号比当前需要打补丁的服务端应用小程序的版本号高的服务端应用小程序,则该新找到的服务端应用小程序的AID是新的AID。
如图3所示,本发明实施例还提供了一种实现智能卡软件补丁的系统,该系统包括:
预处理模块,用于在智能卡平台系统软件中预留补丁代码调用接口,在 智能卡上的可擦写存储空间内预留补丁代码运行空间;
下载模块,用于将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址;
打补丁模块,用于如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码。
该系统还可以包括下述特点:
其中,所述智能卡是Java卡。
较佳地,预处理模块,用于通过以下方式在智能卡平台系统软件中预留补丁代码调用接口:在智能卡平台系统软件的以下一种或多种处理流程中预留补丁代码调用接口:a)中断处理流程;b)设备驱动处理流程;c)命令分发处理流程。
较佳地,预处理模块,用于通过以下方式在智能卡平台系统软件中预留补丁代码调用接口:在智能卡平台系统软件中定义补丁函数指针,在系统初始化时设置此函数指针为空;
下载模块,用于通过以下方式将补丁代码下载到预留的可擦写存储空间内,向所述补丁代码调用接口返回所述补丁代码运行的入口地址:将补丁代码下载到预留的可擦写存储空间,将所述补丁函数指针赋值为所述补丁代码运行的入口地址;
打补丁模块,用于如所述智能卡平台系统软件检测到所述补丁代码调用接口包含补丁代码运行的入口地址,则通过该补丁代码调用接口运行该补丁代码,包括:如智能卡平台系统软件运行时检测到所述补丁函数指针不为空,则执行该补丁函数指针所指向的补丁代码;如智能卡平台系统软件运行时检测到所述补丁函数指针为空,则执行原函数代码。
如图4所示,本发明实施例还提供了一种实现智能卡软件补丁的系统,该系统包括:
应用程序创建模块,用于应用软件中需要考虑产品适应性的功能模块采用服务端应用程序实现,应用软件的主框架模块采用客户端应用程序实现; 客户端应用程序通过服务端应用程序的应用标识AID获得相应服务端应用程序的服务;
打补丁模块,用于为不可删除的服务端应用程序打补丁时,直接下载并安装新的服务端应用程序,并为新下载的服务端应用程序创建新的AID;客户端应用程序查找所述新的AID,通过所述新的AID获得新下载的服务端应用程序的服务。
该系统还可以包括下述特点:
其中,所述智能卡是Java卡。
较佳地,打补丁模块,还用于为可删除的服务端应用程序打补丁时,删除该服务端应用程序,重新下载新的服务端应用程序,并为新下载的服务端应用程序创建与被删除的服务端应用程序相同的AID;客户端应用程序通过原来的AID获得新下载的服务端应用程序的服务。
较佳地,所述AID包括版本号字段;
打补丁模块,用于采用以下的方式为新下载的服务端应用程序创建新的AID:为新下载的服务端应用程序创建的AID的版本号比原来的服务端应用程序的AID的版本号高1号;
打补丁模块,用于客户端应用程序采用以下的方式查找所述新的AID:客户端应用程序从预定义的最高版本号的AID向低版本号的AID遍历,如找到一个版本号比当前需要打补丁的服务端应用小程序的版本号高的服务端应用小程序,则该新找到的服务端应用小程序的AID是新的AID。
较佳地,应用程序创建模块,用于客户端应用程序通过服务端应用程序的AID获得相应服务端应用程序的服务,包括:客户端应用程序调用Java卡标准API方法getAppletShareableInterfaceObject(AID serverAID,byte parameter),通过指定服务端应用程序的AID和相应参数获得该服务端应用程序提供的共享接口,使用该共享接口中的方法,获得该服务端应用程序提供的服务。
上述实施例提供的一种为智能卡打补丁的方法和系统,针对智能卡平台 系统软件,通过将补丁代码下载到智能卡的可擦写永久存储区,按需调用补丁代码的函数,能够便捷、高效地实现智能卡平台软件的适应性修改;针对应用软件,应用软件中需要考虑产品适应性的功能模块以服务端应用程序实现,应用软件中的主框架模块以客户端应用程序实现,客户端应用程序通过服务端应用程序的AID获得相应服务,完成打补丁,从而便捷、高效地实现智能卡应用软件的适应性修改。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
太阳城集团需要说明的是,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

关 键 词:
一种 智能卡 打补丁 方法 系统
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:一种为智能卡打补丁的方法和系统.pdf
链接地址:http://zh228.com/p-6180507.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');