CN102023885A - 一种存储Java卡运行时环境字节码的方法及*** - Google Patents
一种存储Java卡运行时环境字节码的方法及*** Download PDFInfo
- Publication number
- CN102023885A CN102023885A CN2010105937101A CN201010593710A CN102023885A CN 102023885 A CN102023885 A CN 102023885A CN 2010105937101 A CN2010105937101 A CN 2010105937101A CN 201010593710 A CN201010593710 A CN 201010593710A CN 102023885 A CN102023885 A CN 102023885A
- Authority
- CN
- China
- Prior art keywords
- file
- bytecode
- java card
- conversion
- cap file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种存储Java卡运行时环境字节码的方法及***,包括:将实现Java卡运行时环境的Java代码转换为class文件;将所述class文件转换为cap文件;将所述cap文件转换为字节码并存储到Java卡上,并在包注册表中记录所述字节码的存储位置。本发明由于将JCRE的Java代码按照应用程序的装载流程进行存储,因此装载过程不需要和COS代码一起编译,修改JCRE的Java代码,不需要修改COS代码,从而达到JCRE的Java代码和底层COS之间的相互独立。
Description
技术领域
本发明涉及智能卡技术领域,尤其涉及一种存储Java卡运行时环境字节码的方法及***。
背景技术
Java卡是Java技术的一个重要分支,Java卡技术包括Java卡虚拟机(JavaCard Virtual Machine,JCVM)、Java卡运行时环境(Java Card RuntimeEnvironment,JCRE)和Java卡应用编程接口(Java Card Application ProgrammingInterface,JCAPI)三部分。
JCVM是通过软件模拟实现的虚拟机器,引入JCVM后,Java语言在不同平台上运行时不需要重新编译。Java语言程序只需生成在JCVM上运行的目标代码即字节码,就可以在多种平台上不加修改地运行。JCVM在执行字节码时,把字节码解释成具体平台上的机器指令执行。
JCRE包括Java卡逻辑通道的处理、应用的选择和命令的分发等功能,采用Java语言实现。为了使JCRE能够被JCVM解释执行,需要将Java语言形式的JCRE(即JCRE的Java代码)生成在JCVM上运行的字节码。
在Java卡中运行的应用程序叫Applet,Applet被下载到微处理器的内存里,由JCVM来运行,运行过程中通过JCAPI调用预先定义的相应函数。
如前所述,为了使JCRE能够被JCVM解释执行,需要将JCRE的Java代码生成能够在JCVM上运行的字节码,目前对于JCRE的Java代码生成字节码的方式,主要采用SUN公司提供的解决方法,如图1所示,包括以下步骤:
1)首先需要将JCRE的Java代码,通过JAVA编译器Javac编译生成二进制代码文件即class文件;
2)然后通过转换器Converter将class文件转换成Java卡的可读汇编文件即JCA文件;
被编译后的class不能够被Java卡虚拟机所识别,现有的方法是将上述class文件转换为JCA文件。
3)最后使用SUN公司提供的Maskgen工具将JCA文件转换为字节码,将生成的字节码存储到Java的存储器中。
JCA文件也不是能够被Java卡虚拟机所识别的文件,Maskgen工具支持JCA文件到字节码的转换,因此,通过上述转换工具可以实现JCA文件到字节码的转换。
本地函数Native Method是预先定义的与平台相关的函数,JCRE的Java代码中只给出了哪些位置出现Native函数,但具体配置哪些Native函数,需要在将JCA文件转换为字节码的过程中进行配置;另外,在将JCA文件转换为字节码的过程中,还需要配置所生成的字节码在存储器中存储的起始地址ROMBASE。除了完成上述两项参数的配置外,还需要配置一些其它的参数,这样才能生成最终的字节码。
由JCA文件到字节码的转换,需要将JCA文件生成的字节码与实现智能卡操作***(Card Operating System,COS)的C语言程序一起进行编译,将最终得到的字节码存储到智能卡中。
现有将JCRE的Java代码转换成字节码的方法具有如下缺陷:如果要对JCRE的Java代码进行修改,还需要重新按上述方法生成字节码后与COS的C语言一起编译,不能做到JCRE的字节码的存储与COS之间的分离,因此JCRE字节码的生成与平台关系密切,不具有通用性;转换成字节码时,配置选项比较多如需要配置ROMBASE及Native函数名称等参数,使用Maskgen工具配置不方便。
发明内容
本发明实施例提供一种存储Java卡运行时环境字节码的方法及***,用以优化对Java卡运行时环境JCRE字节码的存储,实现JCRE的字节码的存储与COS之间的分离。
本发明提供一种存储Java卡运行时环境字节码的方法,包括:
将实现Java卡运行时环境的Java代码转换为class文件;
将所述class文件转换为cap文件;
将所述cap文件转换为字节码并存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
本发明还提供一种存储Java卡运行时环境字节码的***,包括:
第一转换单元,用于将实现Java卡运行时环境的Java代码转换为class文件;
第二转换单元,用于将所述class文件转换为cap文件;
第三转换单元,用于将所述cap文件转换为字节码;
存储记录单元,用于将所述第三转换单元转换后得到的字节码存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
利用本发明提供的存储Java卡运行时环境字节码的方法及***,具有以下有益效果:本发明由于将JCRE的Java代码按照应用程序的装载流程进行存储:Java代码-class文件-cap文件-字节码,因此装载过程不需要和COS代码一起编译,因此修改JCRE的Java代码,不需要修改COS代码。从而达到JCRE的Java代码和底层COS之间的相互独立。
附图说明
图1为现有存储Java卡运行时环境字节码的方法流程图;
图2为本发明提供的存储Java卡运行时环境字节码的方法流程图;
图3为本发明提供的存储Java卡运行时环境字节码的***结构图。
具体实施方式
下面结合附图和实施例对本发明提供的存储Java卡运行时环境字节码的方法及***进行更详细地说明。
根据前面的描述,Java卡的开发,需要将实现Java卡运行时环境的Java代码生成能够在Java虚拟机上运行的字节码,并将生成的字节码存储到卡片中,而对于字节码的生成方式及存储形式,一方面,存储结构不统一,另一方面,Java卡运行时环境需要经常修改,这样就会对存储结构做相应的修改,具有很大的局限性,不利于Java卡***的开发。
本发明提供一种存储Java卡运行时环境字节码的方法,如图2所示,包括:
步骤S201,将实现Java卡运行时环境JCRE的Java代码转换为class文件;
具体地,可以通过现有的JAVA编译器Javac对Java代码编译生成二进制代码形式的class文件,具体过程这里不再详述。
步骤S202,将所述class文件转换为cap文件;
Java卡的虚拟机并不“认识“Java的class文件,为了使开发好的Java代码能在Java卡中运行,上述对Java代码编译生成的class文件必须被转换成cap文件。cap文件就是可以被装载到Java卡上的Applet。这一过程需要使用Java卡转换器converter,具体过程这里不再详述。
步骤S203,将所述cap文件转换为字节码并存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
本发明步骤S203之前的步骤均是在Java卡外完成的,当作为Applet的cap文件生成后,就要进行Applet的安装,通过将cap文件转换为字节码并存储到Java卡的存储器,因此,Java卡运行时环境能够在Java虚拟机上运行。本发明提供的上述存储Java卡运行时环境字节码的方法,将JCRE的安装按照在Java卡运行的应用程序Applet来对待,根据Applet的安装过程:源代码编辑-源代码编译-cap文件生成-Applet安装,实现了Java卡运行时环境字节码的存储,可以使JCRE的Java代码与COS代码的存储相互独立。存储方式具有通用性且方便Java卡运行时环境的修改和更新。优选地,将所述cap文件转换为字节码并存储到Java卡上,具体包括:将所述cap文件转换为应用程序协议数据单元APDU文件,所述APDU文件由Java卡与外界进行数据交换的基本命令单位组成;将所述APDU文件转换为字节码并存储到Java卡的存储器中。
现有技术中由JCA文件生成的字节码,生成了C语言的数组。作为COS的一部分,需要和COS一起编译,生成初始化程序下载到卡片中,才可执行。本文提供的上述方法,由cap方式生成的字节码,以APDU命令中的数据方式存在,在卡片下载完COS后,以APDU命令的方式,将转换后的运行时环境代码下载到卡片中。两种方式转换后的数据,都是COS***的一部分。但JCA方式的数据,需要在COS编译期,就放到COS源文件中。而cap方式,是在卡片下载COS后,再以APDU方式下载到卡片中的。在下载本部分数据时,COS充当了接收数据,写入数据的角色。因此可以使JCRE的Java代码与COS代码的存储相互独立。在修改Java卡运行时环境代码时,不需要修改COS程序,只将新生成JCRE的字节码重新下载到卡片中即可,从而增强了开发的灵活性,提高了开发工作效率。
本发明优选实施例中存储器以固定大小的块为单位,将所有的cap文件顺序存放。每个cap文件占用若干(恰好存放下cap文件中的组件)个连续的块;每个cap文件内容都从块起始位置存放。cap文件中同一组件的内容,连续存放,不同的组件,存放顺序没有要求。因此本发明为字节码定义了一种存储结构。
依照本发明的优选实施例中,上面的处理过程中,cap文件通过converter进行生成即可。cap文件可以是Java Card2.1.1 Virtual Machine Specification或者Java Card 2.2 Virtual Machine Specification的文件结构形式。即cap文件包括用于存储不同类型数据的多个组件,根据现有的工具,所提供的cap文件包括如下组件:
Header组件-头组件;Directory组件-目录组件;Applet组件-应用组件;Import组件-导入组件;Constant Pool组件-常量池组件;Class组件-类组件;Method组件-方法组件;Static Field组件-静态域组件;Reference Location组件-参考位置组件;Export组件-导出组件;Descriptor组件-描述组件。
各个组件用于存储哪些类型的数据及如何确定数据所属的类型可以采用现有的方法,这里不再详述。在进行转换过程中,主要使用Header组件、Directory组件、Applet组件、Import组件、Constant Pool组件、Class组件、Method组件、Static Field组件、Reference Location组件、Export组件。而Descriptor组件不需要使用。
优选地,步骤S203中将cap文件转换为字节码并存储到Java卡上,具体包括:
1)将cap文件转换为应用程序协议数据单元APDU文件,所述APDU文件由Java卡与外界进行数据交换的基本命令单位组成;
应用协议数据单元APDU:用于智能卡与外界进行数据交换的基本命令单位。一个APDU要么包含一个指令消息,要么包含一个响应消息,它是智能卡与外界通信的基础,详细信息参照ISO 7816-3标准。具体转换过程也采用现有流程,主要是实现将cap文件转换为由多个基本命令单位组成的文件。
APDU文件是由若干条APDU命令组成的。每条命令都是命令头+数据的形式。其中数据部分即cap文件的组件内容。APDU文件是将所有cap文件的数据组织成APDU命令,并且存储到一个文本文件中。在实际情况中,存在一个APDU命令包括多个组件,和多个APDU只封装一个组件的情况,但这没有关系,它只是将cap文件的有效数据,提取出来而已。cap文件是压缩格式,有一些校验信息,不方便直接处理。所以才将它转成APDU文件。另一方面,是为了与应用的下载保持一致。应用cap文件的下载也是通过APDU下载到卡片中的。
定位组件内容的位置,通过以下包注册表中的信息定位:
CodeSection*块大小+组件偏移(classComp、HeaderComp等)
其中,CodeSection*块大小,定位了cap文件的起始地址。再加组件的偏移量,即定位了组件内容的位置。
2)将所述APDU文件转换为字节码并存储到Java卡的存储器中。
步骤S202将class文件转换为cap文件可以采用现有的转换器实现,由于Java卡Applet不允许与平台相关的Native函数包含在cap文件中,即不支持包含与平台相关的native函数的class文件到cap文件的转换,如果class文件中不包含与平台相关的native函数,则直接利用转换器将所述class文件转换为cap文件的数据格式后,将转换后的数据分入不同的组件中得到cap文件;在包注册表记录cap文件在Java卡的存储器中起始地址及各个组件相对起始地址的的偏移量。本发明实施例提供的上述方法还包括:在Java卡运行过程中,确定需要调用所述cap文件中内容时,根据包注册表中内容定位所述cap文件的存储位置;确定所调用cap文件中内容所在的组件,根据包注册表中的内容定位所述组件的存储位置,并执行所定位的组件。所调用cap文件中内容具体在那个组件,是由采用转换器将数据分入不同组件的规则确定的。
由于Java卡Applet不允许Native函数包含在cap文件中,本发明实施例对包含Native函数的class文件进行特殊处理,确定class文件中包含与平台相关的native函数时,将所述class文件转换为cap文件的数据格式后,按设定规则将native函数转换后的数据分入不同的组件中,其它部分按现有流程分入不同组件,从而得到cap文件。即将包含Native函数的class文件转换为类似普通cap文件的结构:模拟cap文件中的几个关键组件:Method组件、Header组件、Export组件,并将不同数据按设定规则归入不同的组件中,其在cap文件中的存储顺序与普通cap文件一致。本发明实施例提供的上述方法还包括:在Java卡运行过程中,确定需要调用所述cap文件中内容且所述cap文件中包含native函数时,根据所述包注册表中内容定位所述cap文件的存储位置;按设定规则对所述cap文件进行解析,确定所调用的内容所在的组件;根据包注册表中的内容定位所述组件的存储位置,并执行所定位的组件。
本发明实施例通过包注册表进行组件存储位置记录,各个组件之间的位置可以不固定。通过包注册表,可以将各个组件在cap文件内部的位置确定下来。
包注册表由固定的长度的记录组成。一条记录用于存储一个cap文件的存储位置及其各组件的存储,一个cap文件视为一个包,每一条记录包括内容:
Struct PackageRecord
{
U8 packageID;
U8 packageRefCount;
U8 codeSection;
U16 staticSection;
U16 headerComp;
U16 importComp;
U16 classComp;
U16 methodComp;
U16 exportComp;
U16 constantPoolComp;
}
其中,PackageID表示包的序号;packageRefCount表示此包被外包引用的次数;codeSection表示包代码所在的块号即此包在Java卡的存储器中的位置;staticSection表示静态域相对于包代码起始地址的偏移;headerComp表示头组件相对于包代码起始地址的偏移量;importComp表示导入组件相对于包代码起始地址的偏移量;classComp表示类组件相对于包代码起始地址的偏移量;methodComp表示方法组件相对于包代码起始地址的偏移量;exportComp表示导出组件相对于包代码起始地址的偏移量;constantPoolComp表示常量池组件相对于包代码起始地址的偏移。
这样,以上述方式将Java卡运行时环境的字节码下载到卡片的存储器后,卡片即可通过上述包注册表中的位置信息定位该包。从而识别包中的数据,执行包组件内容。如果修改了Java卡运行时环境的Java代码,只需要将修改后的JCRE的Java代码按上述过程转换为新的卡内存储结构(即新的cap文件),下载到卡片中即可。因此修改JCRE的Java程序,不需要修改COS代码。从而达到JCRE的Java代码和底层COS之间的相互独立。
上述Native函数作用:卡片在接收到数据后,以预先约定好的规则,对包括Native函数的cap文件进行解析。Native函数的实现在卡片内部实现。包含Native函数的cap文件起到连接普通JCRE包和卡片底层代码的作用。JCRE生成的普通包和底层Native函数的具体实现之间,通过包含Native函数的包进行链接。从而实现了上层Java代码和底层连接起来。
本发明实施例对包含Native函数的cap文件处理,可以不用获取SUN公司的授权,而且方便***的开发,节省了开发费用。
本发明还提供一种存储Java卡运行时环境字节码的***,如图3所示,包括:第一转换单元301,用于将实现Java卡运行时环境的Java代码转换为class文件;第二转换单元302,用于将所述class文件转换为cap文件;第三转换单元303,用于将所述cap文件转换为字节码;存储记录单元304,用于将所述第三转换单元转换后得到的字节码存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
优选地,所述第三转换单元303具体用于将所述cap文件转换为应用程序协议数据单元APDU文件,所述APDU文件由Java卡与外界进行数据交换的基本命令单位组成;并将所述APDU文件转换为字节码。
优选地,所述cap文件包括用于存储不同类型数据的多个组件,所述第二转换单元302具体用于利用转换器将所述class文件转换为cap文件的数据格式后,将转换后的数据分入不同的组件中得到cap文件,其中确定class文件中包含与平台相关的native函数时,按设定规则将对native函数转换后的数据分入不同的组件中。
优选地,上述存储Java卡运行时环境字节码的***还包括:第一定位单元,用于在Java卡运行过程中,确定需要调用所述cap文件中内容时,根据所述包注册表定位所述cap文件的存储位置;第一执行单元,用于确定所调用cap文件中内容所在的组件,所调用cap文件中内容包含native函数时,按设定规则对所述cap文件进行解析,确定所调用的内容所在的组件;执行单元,用于根据包注册表中的内容定位所述组件的存储位置,并执行所定位的组件。;
存储记录单元304具体用于在包注册表记录cap文件在Java卡的存储器中起始地址及各个组件相对起始地址的的偏移量。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种存储Java卡运行时环境字节码的方法,其特征在于,包括:
将实现Java卡运行时环境的Java代码转换为class文件;
将所述class文件转换为cap文件;
将所述cap文件转换为字节码并存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
2.如权利要求1所述的方法,其特征在于,将所述cap文件转换为字节码并存储到Java卡上,具体包括:
将所述cap文件转换为应用程序协议数据单元APDU文件,所述APDU文件由Java卡与外界进行数据交换的基本命令单位组成;
将所述APDU文件转换为字节码并存储到Java卡的存储器中。
3.如权利要求1或2所述的方法,其特征在于,所述cap文件包括用于存储不同类型数据的多个组件,将所述class文件转换为cap文件,具体包括:
利用转换器将所述class文件转换为cap文件的数据格式后,将转换后的数据分入不同的组件中得到cap文件,其中确定class文件中包含与平台相关的native函数时,按设定规则将对native函数转换后的数据分入不同的组件中。
4.如权利要求3所述的方法,其特征在于,在所述Java卡的包注册表中记录所述字节码的存储位置,具体包括:
在所述包注册表中记录cap文件在Java卡的存储器中起始地址,及所述各个组件相对起始地址的的偏移量。
5.如权利要求3所述的方法,其特征在于,还包括:
在Java卡运行过程中,确定需要调用所述cap文件中内容时,根据所述包注册表定位所述cap文件的存储位置;
确定所调用cap文件中内容所在的组件,其中,所调用cap文件中内容包含native函数时,按设定规则对所述cap文件进行解析,确定所调用的内容所在的组件;
根据包注册表定位所述组件的存储位置,并执行所定位的组件。
6.一种存储Java卡运行时环境字节码的***,其特征在于,包括:
第一转换单元,用于将实现Java卡运行时环境的Java代码转换为class文件;
第二转换单元,用于将所述class文件转换为cap文件;
第三转换单元,用于将所述cap文件转换为字节码;
存储记录单元,用于将所述第三转换单元转换后得到的字节码存储到Java卡上,并在所述Java卡的包注册表中记录所述字节码的存储位置。
7.如权利要求6所述的***,其特征在于,所述第三转换单元具体用于将所述cap文件转换为应用程序协议数据单元APDU文件,所述APDU文件由Java卡与外界进行数据交换的基本命令单位组成;并将所述APDU文件转换为字节码。
8.如权利要求6或7所述的***,其特征在于,所述cap文件包括用于存储不同类型数据的多个组件,所述第二转换单元具体用于利用转换器将所述class文件转换为cap文件的数据格式后,将转换后的数据分入不同的组件中得到cap文件,其中确定class文件中包含与平台相关的native函数时,按设定规则将对native函数转换后的数据分入不同的组件中。
9.如权利要求8所述的***,其特征在于,所述存储记录单元具体用于在所述包注册表中记录cap文件在Java卡的存储器中起始地址,及所述各个组件相对起始地址的的偏移量。
10.如权利要求8所述的***,其特征在于,还包括:
第一定位单元,用于在Java卡运行过程中,确定需要调用所述cap文件中内容时,根据所述包注册表定位所述cap文件的存储位置;
第二定位单元,用于确定所调用cap文件中内容所在的组件,其中,所调用cap文件中内容包含native函数时,按设定规则对所述cap文件进行解析,确定所调用的内容所在的组件;
执行单元,用于根据包注册表定位所述组件的存储位置,并执行所定位的组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105937101A CN102023885A (zh) | 2010-12-17 | 2010-12-17 | 一种存储Java卡运行时环境字节码的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105937101A CN102023885A (zh) | 2010-12-17 | 2010-12-17 | 一种存储Java卡运行时环境字节码的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102023885A true CN102023885A (zh) | 2011-04-20 |
Family
ID=43865207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105937101A Pending CN102023885A (zh) | 2010-12-17 | 2010-12-17 | 一种存储Java卡运行时环境字节码的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102023885A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495754A (zh) * | 2011-10-27 | 2012-06-13 | 飞天诚信科技股份有限公司 | 基于缓存的java卡事务处理方法 |
CN102567020A (zh) * | 2011-12-26 | 2012-07-11 | 大唐微电子技术有限公司 | 一种智能卡应用的实现方法及*** |
CN103744965A (zh) * | 2014-01-07 | 2014-04-23 | 东信和平科技股份有限公司 | 一种简易的多平台个人化智能卡方法 |
CN104463002A (zh) * | 2014-12-24 | 2015-03-25 | 北京奇虎科技有限公司 | 一种加固apk的方法和装置以及apk加固客户端和服务器 |
CN105005497A (zh) * | 2014-04-18 | 2015-10-28 | 中钞***产业发展有限公司 | 一种Java卡虚拟机中本地函数的调用方法及装置 |
CN105224863A (zh) * | 2015-10-28 | 2016-01-06 | 广州杰赛科技股份有限公司 | 数据处理方法、用户端、智能卡端及终端设备 |
CN105320686A (zh) * | 2014-07-29 | 2016-02-10 | 苏州融卡智能科技有限公司 | 一种优化java卡选择实例的方法 |
CN103677778B (zh) * | 2012-09-18 | 2016-09-14 | 北京中电华大电子设计有限责任公司 | 一种CAP文件Classref常量的解析方法 |
CN106020920A (zh) * | 2016-05-11 | 2016-10-12 | 广州新诚芯信息科技有限公司 | 一种jcvm解释器的预处理方法及*** |
CN109643230A (zh) * | 2016-09-02 | 2019-04-16 | 格马尔托股份有限公司 | 用作库包的java卡应用包 |
CN110795200A (zh) * | 2018-08-01 | 2020-02-14 | 北京钛云物联科技有限公司 | 一种适用于Java运行环境的装置及其实现方法 |
CN111880800A (zh) * | 2020-06-19 | 2020-11-03 | 深圳融卡智能科技有限公司 | 应用下载方法与应用下载*** |
CN112230941A (zh) * | 2020-09-22 | 2021-01-15 | 成都融微软件服务有限公司 | 一种Java Card包及应用程序安装方法和工具 |
CN112905271A (zh) * | 2021-03-04 | 2021-06-04 | 上海升途智能***有限公司 | 一种应用程序接口api的调用方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687862A (zh) * | 2005-06-16 | 2005-10-26 | 北京航空航天大学 | 智能卡安全环境的控制方法 |
CN101231597A (zh) * | 2008-02-01 | 2008-07-30 | 东信和平智能卡股份有限公司 | 智能卡中java程序指令的执行方法 |
CN101840332A (zh) * | 2010-03-09 | 2010-09-22 | 北京握奇数据***有限公司 | 一种java智能卡的数据处理方法、装置及*** |
-
2010
- 2010-12-17 CN CN2010105937101A patent/CN102023885A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1687862A (zh) * | 2005-06-16 | 2005-10-26 | 北京航空航天大学 | 智能卡安全环境的控制方法 |
CN101231597A (zh) * | 2008-02-01 | 2008-07-30 | 东信和平智能卡股份有限公司 | 智能卡中java程序指令的执行方法 |
CN101840332A (zh) * | 2010-03-09 | 2010-09-22 | 北京握奇数据***有限公司 | 一种java智能卡的数据处理方法、装置及*** |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495754A (zh) * | 2011-10-27 | 2012-06-13 | 飞天诚信科技股份有限公司 | 基于缓存的java卡事务处理方法 |
CN102567020A (zh) * | 2011-12-26 | 2012-07-11 | 大唐微电子技术有限公司 | 一种智能卡应用的实现方法及*** |
CN102567020B (zh) * | 2011-12-26 | 2015-02-25 | 大唐微电子技术有限公司 | 一种智能卡应用的实现方法及*** |
CN103677778B (zh) * | 2012-09-18 | 2016-09-14 | 北京中电华大电子设计有限责任公司 | 一种CAP文件Classref常量的解析方法 |
CN103744965A (zh) * | 2014-01-07 | 2014-04-23 | 东信和平科技股份有限公司 | 一种简易的多平台个人化智能卡方法 |
CN105005497A (zh) * | 2014-04-18 | 2015-10-28 | 中钞***产业发展有限公司 | 一种Java卡虚拟机中本地函数的调用方法及装置 |
CN105320686A (zh) * | 2014-07-29 | 2016-02-10 | 苏州融卡智能科技有限公司 | 一种优化java卡选择实例的方法 |
CN104463002A (zh) * | 2014-12-24 | 2015-03-25 | 北京奇虎科技有限公司 | 一种加固apk的方法和装置以及apk加固客户端和服务器 |
CN104463002B (zh) * | 2014-12-24 | 2017-04-05 | 北京奇虎科技有限公司 | 一种加固apk的方法和装置以及apk加固客户端和服务器 |
CN105224863A (zh) * | 2015-10-28 | 2016-01-06 | 广州杰赛科技股份有限公司 | 数据处理方法、用户端、智能卡端及终端设备 |
CN106020920A (zh) * | 2016-05-11 | 2016-10-12 | 广州新诚芯信息科技有限公司 | 一种jcvm解释器的预处理方法及*** |
CN109643230A (zh) * | 2016-09-02 | 2019-04-16 | 格马尔托股份有限公司 | 用作库包的java卡应用包 |
CN109643230B (zh) * | 2016-09-02 | 2021-11-12 | 格马尔托股份有限公司 | 用作库包的java卡应用包的方法和设备 |
CN110795200A (zh) * | 2018-08-01 | 2020-02-14 | 北京钛云物联科技有限公司 | 一种适用于Java运行环境的装置及其实现方法 |
CN111880800A (zh) * | 2020-06-19 | 2020-11-03 | 深圳融卡智能科技有限公司 | 应用下载方法与应用下载*** |
CN111880800B (zh) * | 2020-06-19 | 2023-10-31 | 无锡融卡科技有限公司 | 应用下载方法与应用下载*** |
CN112230941A (zh) * | 2020-09-22 | 2021-01-15 | 成都融微软件服务有限公司 | 一种Java Card包及应用程序安装方法和工具 |
CN112230941B (zh) * | 2020-09-22 | 2024-03-29 | 成都融微软件服务有限公司 | 一种Java Card包及应用程序安装方法和工具 |
CN112905271A (zh) * | 2021-03-04 | 2021-06-04 | 上海升途智能***有限公司 | 一种应用程序接口api的调用方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023885A (zh) | 一种存储Java卡运行时环境字节码的方法及*** | |
KR101318313B1 (ko) | 임베디드 플랫폼에서 프로그램을 동적 링크하는 방법 및 임베디드 플랫폼이 기록된 컴퓨터로 판독가능한 기록매체 | |
CN106569869A (zh) | 插件化打包方法及装置 | |
CN103186380B (zh) | Apk的开发方法和装置 | |
CN105068818A (zh) | 生成渠道包的方法、装置与批量生成渠道包的方法、*** | |
CN109542445A (zh) | 一种Android插件化开发的方法和装置 | |
CN105354037A (zh) | 模块化的软件开发方法及软件开发装置 | |
CN104750528B (zh) | 一种Android程序中的组件管理方法和装置 | |
CN101937336B (zh) | 软件资产打包和消费方法和*** | |
CN102455931B (zh) | 一种Android平台工程的开发方法及*** | |
CN103365668B (zh) | 一种动态链接库装载和链接的方法、装置 | |
CN103677778B (zh) | 一种CAP文件Classref常量的解析方法 | |
CN106569880A (zh) | 一种Android应用间动态共享资源的方法及*** | |
CN105630518A (zh) | Android应用软件资源更新的方法和装置 | |
CN103838572A (zh) | 一种安卓开发包的打包***和方法 | |
CN111857801B (zh) | 一种移动应用的构建方法 | |
CN105516154A (zh) | 应用于SEAndroid***的安全策略配置方法及装置 | |
WO2018032653A1 (zh) | 一种Java卡应用的功能实现方法及装置 | |
CN111290801A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN102681893A (zh) | 可执行程序的跨平台实现方法及移动终端 | |
CN101957766A (zh) | 一种字节码织入方法、装置及*** | |
CN105404794A (zh) | Java应用软件的保护方法和装置 | |
CN103761107A (zh) | 软件包定制的装置及方法 | |
CN109240733A (zh) | 一种基于安卓***更新广告sdk的方法及终端 | |
CN102486735A (zh) | 一种手机软件动态加载方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110420 |