CN109634885B - 移动终端与智能卡通信的方法及装置 - Google Patents
移动终端与智能卡通信的方法及装置 Download PDFInfo
- Publication number
- CN109634885B CN109634885B CN201811284709.3A CN201811284709A CN109634885B CN 109634885 B CN109634885 B CN 109634885B CN 201811284709 A CN201811284709 A CN 201811284709A CN 109634885 B CN109634885 B CN 109634885B
- Authority
- CN
- China
- Prior art keywords
- smart card
- mobile terminal
- terminal
- interface
- computer
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明涉及计算机应用开发技术领域。本发明实施例提供一种移动终端与智能卡通信的方法及装置,其中该方法包括:获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;基于PC/SC接口模块,将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至所述智能卡接口;基于所述智能卡接口,将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。由此,将在电脑系统平台上成熟应用的PC/SC智能卡应用通过接口封装技术复用,只需简单的接口方式的修改就能够实现在移动智能终端与智能卡之间的通信,而无需重新拟定接口规范,降低了研发压力和研发成本。
Description
技术领域
本发明涉及计算机应用开发技术领域,具体地涉及一种移动终端与智能卡通信的方法及装置。
背景技术
PC/SC规范由微软公司与世界其它著名的智能卡厂商组成的PC/SC工作组所提出的,PC/SC规范是一个基于windows平台的标准用户接口(API),提供了从个人电脑(Personal Computer)到智能卡(Smart Card)的整合环境.Smartcard API允许用户同安全模块进行通讯,而PC/SC则为windows应用同Smartcard通讯提供了接口。
随着移动智能终端(包括智能手机等)的兴起以及迅猛发展,移动支付愈加普及,以往基于PC/SC规范的windows平台的智能卡应用也需要适用于Android平台。目前相关技术中是提出了如下的设想:既然可以提出一种基于windows平台的标准用户接口(API)规范,那么同样可以提出基于Android平台的API规范。
但是,本申请的发明人在实践本申请的过程中发现上述相关技术方案中至少存在如下的缺陷:需要耗费大量的人力物力去重新拟定一份新的API规范,成本耗费巨大且无法实现软件的复用。
发明内容
本发明实施例的目的是提供一种移动终端与智能卡通信的方法及装置,用以至少解决目前相关技术中重新拟定接口规范所导致的研发压力和成本耗费过大的问题。
为了实现上述目的,本发明实施例一方面提供一种终端与智能卡通信的方法,应用于终端,所述终端设置有用于与智能卡通讯的智能卡接口,该方法包括:获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;基于PC/SC接口模块,将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至所述智能卡接口;基于所述智能卡接口,将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。
在一些实施方式中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。
在一些实施方式中,所述基于PC/SC接口模块,将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据包括:基于集成在所述PC/SC接口模块中的PC/SC通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。
在一些实施方式中,所述PC/SC接口模块还包括符合安卓接口定义语言的AIDL接口,其中所述将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据包括:基于所述AIDL接口,将所述电脑智能卡数据转换为对应安卓操作系统的终端智能卡数据。
在一些实施方式中,所述基于所述智能卡接口,将所述终端智能卡数据发送至与所述移动终端通讯的智能卡包括:基于所述智能卡接口,将所述终端智能卡数据发送至移动终端中的安全元件,其中所述安全元件包括以下中的一者或多者的安全模块:SIM模块、SAM模块以及NFC模块;基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口。
本发明实施例另一方面提供一种终端与智能卡通信的装置,移动终端包括智能手机,其中所述移动终端与智能卡通信的装置包括:电脑数据封装单元,用于获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;PC/SC接口模块,用于将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至智能卡接口;以及所述智能卡接口还用于将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。
在一些实施方式中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。
在一些实施方式中,所述PC/SC接口模块包括:卡数据转换单元,用于基于集成在所述PC/SC接口模块中的PC/SC通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及系统数据转换单元,用于将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。
在一些实施方式中,所述PC/SC接口模块还包括符合Android接口定义语言的AIDL接口,用于将所述电脑智能卡数据转换为对应安卓操作系统的终端智能卡数据。
在一些实施方式中,所述智能卡接口用于将所述终端智能卡数据发送至移动终端中的安全元件,其中所述安全元件包括以下中的一者或多者的安全模块:SIM模块、SAM模块以及NFC模块;以及基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口。
通过上述技术方案,提出了将用户操作数据封装成对应电脑操作系统的电脑用户操作数据,然后应用PC/SC接口模块将电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将终端智能卡数据发送至智能卡接口,以实现终端智能卡数据发送至与移动终端通讯的智能卡。由此,将在电脑系统平台上成熟应用的PC/SC智能卡应用通过接口封装技术复用,只需简单的接口方式的修改就能够实现在移动智能终端与智能卡之间的通信,而无需重新拟定接口规范,降低了研发压力和研发成本。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明一实施例的移动终端与智能卡通信的方法的流程图;
图2A是本发明一实施例的移动终端与智能卡通信的方法的原理结构示意图;
图2B是本发明一实施例的移动终端与智能卡通信的方法的原理流程示意图;
图3是本发明一实施例的移动终端与智能卡通信的装置的结构框图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
如图1所示,是本发明一实施例的移动终端与智能卡通信的方法,包括:
S11、获取用户操作数据,并将用户操作数据封装成对应电脑操作系统的电脑用户操作数据。
关于本发明实施例方法的执行主体,其可以是移动终端,例如智能手机。需说明的是,目前在电脑系统平台(例如windows)与智能卡之间通讯是采用的PC/SC规范应用已经是目前较为成熟的技术了,而本发明实施例是旨在提供一全新的用于实现在移动终端与智能卡之间进行通信的技术方案。
关于本发明实施例的用户操作数据的获取,可以是通过接收用户对移动终端或移动终端的APP的特定操作所产生的数据。关于电脑用户操作数据的封装方式,其可以是直接将电脑应用植入移动终端或移动终端的APP,从而用户操作所植入的该电脑应用便可实现电脑用户操作数据的获取,其还可以是基于数据协议将用户操作数据转换而成的,且以上实施方式都属于本发明的保护范围内。
其中,移动终端的类型可以是智能手机等,在其上能够搭建相应的移动终端操作系统平台,例如安卓操作系统等。以及,智能卡接口可以是移动终端所自带的智能卡接口,在Android系统中,所有同安全元件(SE, Secure Element),例如SIM,SAM,NFC等安全模块,进行的通讯都可以是通过智能卡接口(SmartCard API)进行的。
S12、基于PC/SC接口模块,将电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将终端智能卡数据发送至所述智能卡接口。
具体的,可以是首先,基于集成在PC/SC接口模块中的PC/SC通信协议,将电脑用户操作数据转换为电脑智能卡数据,该PC/SC通信协议可以是通过复用在电脑中所用的指令、代码或模块所实现的;然后,将电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。在一些实施方式中,当移动终端操作平台是安卓时,PC/SC接口模块还包括符合Android接口定义语言的AIDL接口,由此通过该AIDL接口将电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。由此,能够将PC/SC接口移植到Android操作系统平台上,让基于windows系统平台PC/SC规范的智能卡应用工作在Android操作系统上。
S13、基于智能卡接口,将终端智能卡数据发送至与移动终端通讯的智能卡。
具体的,可以是基于智能卡接口,将终端智能卡数据发送至移动终端中的安全元件,其中该安全元件包括以下中的一者或多者的安全模块:SIM模块、SAM模块以及NFC模块;进而,通过该安全元件,将终端智能卡数据发送至智能卡接口。
在一些实施方式中,考虑到Android操作系统以及windows操作系统的内核都是基于LINUX,本实施例还可以是推荐采用基于LINUX的PC/SC接口。由此,使得当应用需要在windows操作平台上使用时,可以在该PC/SC接口外部封装一套windows接口;当应用需要工作在Android操作系统时,则封装一份Android接口。因此,就可以实现接口的平台无关性,只要有需要,可以适用于任何基于LINUX的平台,且现存的基于windows平台的智能卡应用只需要经过简单的封装操作,就可以顺利的工作在Android系统上,从而简单有效地实现在安卓移动终端与智能卡通信。
如图2A和2B,其示出的是本发明一实施例的移动终端与智能卡通信的方法的原理结构和原理流程,在Android系统中,所有同Secure Element安全元件(比如SIM,SAM,NFC等安全模块)进行的通讯都是通过智能卡接口SmartCard API进行的。为了在Android设备上提供PC/SC接口,因此需要为PC/SC接口提供智能卡读卡器驱动程序(IFD handler)。IFDhandler控制器负责将智能卡应用(例如OpenSC)通过PC/SC接口下发的APDU(应用协议数据单元)包路由到Smart Card API,再由Smart Card API负责同Secure Element通讯。
关于PC/SC接口的.so库文件集成到system/lib/libpcsclite.so文件中,APP层的智能卡应用APK可以直接调用该库文件,所有可用的接口定义在winscard.h文件中。
IFD handler通过AIDL方式同SmartCardService通讯。需要在frameworks层新增SmartcardSystemService.java文件,该service需要实现IFDhandler中的SmartcardSystemService.aidl中的所有接口,且需要在SystemServer中启动SmartcardSystemService。在SmartcardSystemService.java的构造方法中,启动SmartcardService,同时需要新增一个pcscsmartcardservice.aidl文件。然后在SmartcardService中实现pcscsmartcardservice.aidl的所有接口。这样的话,就可以实现IFDhandler同SmartCardService通讯。
在本实施例中,Android系统中有一套SmartCardAPI接口可以直接访问SC卡。因此,在PC/SC接口中,添加了一套smartcardservice的AIDL接口,然后PC/SC驱动程序通过AIDL将应用程序下发的卡接口数据通过SmartCardAPI下发给卡,从而实现SC卡通讯。
首先,应用程序调用标准的PC/SC接口(wincardapi)。PC/SC接口将这些wincardapi转换成android系统已有的SmartCardAPI,通过AIDL方式发送到smartcardservice,再由smartcardservice同卡进行通讯;然后,待命令执行完成后,再返回给PC/SC,最后上报给应用程序。
通过本发明实施例,可以很方便的实现现有的基于windows平台的智能卡应用移植到Android系统中,而不必特意规范一种基于Android系统的基于PC/SC规范的API。当然,如果是现阶段新开发的基于Android系统的智能卡应用,建议直接使用智能卡API。
如图3所示,本发明一实施例的移动终端与智能卡通信的装置30,移动终端包括智能手机,其中所述移动终端与智能卡通信的装置包括:
电脑数据封装单元301,用于获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;
PC/SC接口模块302,用于将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,并将所述终端智能卡数据发送至智能卡接口303;以及
所述智能卡接口303还用于将所述终端智能卡数据发送至与所述移动终端通讯的智能卡。
在一些实施方式中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。
在一些实施方式中,所述PC/SC接口模块302包括:卡数据转换单元,用于基于集成在所述PC/SC接口模块中的PC/SC通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及系统数据转换单元,用于将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据。
在一些实施方式中,所述PC/SC接口模块302还包括符合Android接口定义语言的AIDL接口,用于将所述电脑智能卡数据转换为对应安卓操作系统的终端智能卡数据。
在一些实施方式中,所述智能卡接口用于将所述终端智能卡数据发送至移动终端中的安全元件,其中所述安全元件包括以下中的一者或多者的安全模块:SIM模块、SAM模块以及NFC模块;以及基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口。
关于本发明实施例的移动终端与智能卡通信的装置的细节,可以参照上文移动终端与智能卡通信的方法实施例的描述,从而实现与上述移动终端与智能卡通信的方法实施例相同或相似的技术效果,故在此便不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (2)
1.一种移动终端与智能卡通信的方法,应用于包括智能手机的移动终端,所述移动终端设置有用于与智能卡通讯的智能卡接口,该方法包括:
获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;
基于PC/SC接口模块,将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,步骤包括:基于集成在所述PC/SC接口模块中的PC/SC通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及基于AIDL接口将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据,之后将所述终端智能卡数据发送至所述智能卡接口;基于所述智能卡接口,将所述终端智能卡数据发送至与所述移动终端通讯的智能卡,步骤包括:基于所述智能卡接口,将所述终端智能卡数据发送至移动终端中的安全元件;基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口,其中步骤还包括:在frameworks层新增SmartcardSystemService.java文件,以实现IFDhandler中的SmartcardSystemService.aidl中的所有接口,且需要在SystemServer中启动SmartcardSystemService,其中在SmartcardSystemService.java的构造方法中,启动SmartcardService,同时新增一个pcscsmartcardservice.aidl文件,然后在SmartcardService中实现pcscsmartcardservice.aidl的所有接口,以供IFD handler通过AIDL同SmartCardService通讯,其中所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。
2.一种移动终端与智能卡通信的装置,移动终端包括智能手机,其中所述移动终端与智能卡通信的装置包括:
电脑数据封装单元,用于获取用户操作数据,并将所述用户操作数据封装成对应电脑操作系统的电脑用户操作数据;
PC/SC接口模块,用于将所述电脑用户操作数据转换为对应移动终端操作系统的终端智能卡数据,步骤包括:基于集成在所述PC/SC接口模块中的PC/SC通信协议,将所述电脑用户操作数据转换为电脑智能卡数据;以及基于AIDL接口将所述电脑智能卡数据转换为对应移动终端操作系统的终端智能卡数据,之后将所述终端智能卡数据发送至智能卡接口;以及所述智能卡接口还用于将所述终端智能卡数据发送至与所述移动终端通讯的智能卡,步骤包括:基于所述智能卡接口,将所述终端智能卡数据发送至移动终端中的安全元件;
基于所述安全元件,将所述终端智能卡数据发送至所述智能卡接口,其中步骤还包括:在frameworks层新增SmartcardSystemService.java文件,以实现IFDhandler中的SmartcardSystemService.aidl中的所有接口,且需要在SystemServer中启动SmartcardSystemService,其中在SmartcardSystemService.java的构造方法中,启动SmartcardService,同时新增一个pcscsmartcardservice.aidl文件,然后在SmartcardService中实现pcscsmartcardservice.aidl的所有接口,以供IFD handler通过AIDL同SmartCardService通讯,其中,所述电脑操作系统包括windows操作系统,以及所述移动终端操作系统包括安卓操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811284709.3A CN109634885B (zh) | 2018-10-31 | 2018-10-31 | 移动终端与智能卡通信的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811284709.3A CN109634885B (zh) | 2018-10-31 | 2018-10-31 | 移动终端与智能卡通信的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109634885A CN109634885A (zh) | 2019-04-16 |
CN109634885B true CN109634885B (zh) | 2020-06-30 |
Family
ID=66066979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811284709.3A Active CN109634885B (zh) | 2018-10-31 | 2018-10-31 | 移动终端与智能卡通信的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634885B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434379A (zh) * | 2002-01-24 | 2003-08-06 | 通用电机股份有限公司 | 用于从计算机对智能卡执行操作的方法 |
CN101118630A (zh) * | 2006-07-31 | 2008-02-06 | 冲电气工业株式会社 | 个人识别/属性认证系统和个人识别/属性认证方法 |
CN101938520A (zh) * | 2010-09-07 | 2011-01-05 | 中兴通讯股份有限公司 | 一种基于移动终端签名的远程支付系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100407180C (zh) * | 2006-08-15 | 2008-07-30 | 北京飞天诚信科技有限公司 | 一种使hid设备能提供智能卡接口的装置及方法 |
CN101620758B (zh) * | 2008-07-01 | 2012-10-31 | 中国银联股份有限公司 | 一种支持Web服务的智能卡 |
-
2018
- 2018-10-31 CN CN201811284709.3A patent/CN109634885B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434379A (zh) * | 2002-01-24 | 2003-08-06 | 通用电机股份有限公司 | 用于从计算机对智能卡执行操作的方法 |
CN101118630A (zh) * | 2006-07-31 | 2008-02-06 | 冲电气工业株式会社 | 个人识别/属性认证系统和个人识别/属性认证方法 |
CN101938520A (zh) * | 2010-09-07 | 2011-01-05 | 中兴通讯股份有限公司 | 一种基于移动终端签名的远程支付系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109634885A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102232304B (zh) | 一种移动通信终端间进行系统升级的方法、系统及终端 | |
US8768250B2 (en) | Enhanced near field communication terminal, smart card and communication method thereof | |
US11102646B1 (en) | Triggering electronic subscriber identity module activation | |
CN107251069B (zh) | 一种近场通信支付方法及终端 | |
CN111479259B (zh) | Sim卡配置分发方法及系统 | |
CN105263140A (zh) | 一种实现sim卡远程鉴权的系统与方法 | |
WO2019184658A1 (zh) | 配置文件的切换方法、装置与移动终端 | |
CN105592403B (zh) | 一种基于nfc的通信装置和方法 | |
CN112416458A (zh) | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 | |
EP2509351A1 (en) | Smart card authentication device and method | |
US20220382920A1 (en) | Terminal and communication method | |
CN110427260B (zh) | 主机作业调度方法、装置及系统 | |
WO2012037791A1 (zh) | 射频识别应用信息的显示方法、装置和系统 | |
WO2010118612A1 (zh) | 一种安装非接触支付应用的方法、智能卡及移动终端 | |
US20110197203A1 (en) | Communication device, communication method and program | |
CN107784243B (zh) | 一种在安卓系统中实现读卡器设备通信的方法及装置 | |
CN103491654A (zh) | 用于多卡终端的通信方法和多卡终端 | |
CN109634885B (zh) | 移动终端与智能卡通信的方法及装置 | |
CN102572800A (zh) | 一种基于stk技术进行sim卡自动读取终端imei信息的方法 | |
CN108307286B (zh) | 一种基于nfc实现安卓设备间通信的方法和系统 | |
CN101917780B (zh) | 无线通信终端网络设备功能的实现方法及装置 | |
CN102547661B (zh) | 一种Android系统与电信智能卡通信的方法及装置 | |
US20150281965A1 (en) | Management server, data processing method, and program | |
CN114116487B (zh) | 压力测试方法、装置、电子设备及存储介质 | |
CN108804236B (zh) | 一种aidl文件的共享方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |