一种Android系统与电信智能卡通信的方法及装置制造方法及图纸

技术编号:7502086 阅读:392 留言:0更新日期:2012-07-11 02:21
本发明专利技术公开了一种Android系统与电信智能卡通信的方法,用以实现Android系统和电信智能卡之间的通信。该方法为:根据Android系统电话进程中用于与电信智能卡通信的类获取与电信智能卡通信的对象的接口函数,根据接收的访问电信智能卡的应用程序协议数据单元APDU指令,获取需要与电信智能卡通信的数据内容,调用所述接口函数,将所述数据内容重组为APDU指令,并将重组后的APDU指令发送至所述电信智能卡。本发明专利技术同时公开了一种Android系统与电信智能卡通信的装置。

【技术实现步骤摘要】

本专利技术涉及通信和智能卡
,尤其ー种Android系统与电信智能卡通信的方法及装置
技术介绍
目前,很多智能手机都采用Android系统平台,但是在Android系统中,出于安全考虑,直接与SIM (Subscriber Identity Module,用户身份识别模块)卡通信的接ロ被屏蔽,使得第三方应用程序不能直接与SIM卡进行数据交互,从而导致第三方应用程序无法直接使用SIM卡提供的服务。现有技术中,第三方应用程序直接利用已封装的用于读写SIM卡电话本或短消息的方法(即函数)间接访问SIM卡,该访问方式一方面破坏了现有SIM卡电话本或短消息的本身应用规则,另一方面也为第三方应用程序使用的SIM卡服务带来了隐患,使得SIM卡作为安全服务载体的价值受到较大的限制。
技术实现思路
本专利技术提供ー种Android系统与电信智能卡通信的方法及装置,用以实现 Android系统和电信智能卡之间的通信,为第三方应用程序使用电信智能卡提供的各种服务提供高效、安全的环境。本专利技术实施例提供的具体技术方案如下ー种Android系统与电信智能卡通信的方法,包括根据Android系统电话进程中用于与电信智能卡通信的类获取与电信智能卡通信的对象的接ロ函数;根据接收的访问电信智能卡的应用程序协议数据单元APDU指令,获取需要与电信智能卡通信的数据内容;调用所述接ロ函数,将所述数据内容重组为APDU指令,并将重组后的APDU指令发送至所述电信智能卡。ー种Android系统与电信智能卡通信的装置,包括第一处理单元,用于根据Android系统电话进程中用于与电信智能卡通信的类获取与电信智能卡通信的对象的接ロ函数;第二处理单元,用于根据接收的访问电信智能卡的应用程序协议数据单元APDU 指令,获取需要与电信智能卡通信的数据内容;第三处理单元,用于调用所述接ロ函数,将所述数据内容重组为APDU指令,并将所述重组后的APDU指令发送至所述电信智能卡。基于上述技术方案,本专利技术实施例中,根据Android系统电话进程中用于与电信智能卡通信的类获取与电信智能卡通信的对象的接ロ函数后,根据接收的访问电信智能卡的APDU指令,获取需要与电信智能卡通信的数据内容,并调用接ロ函数将该数据内容重组为APDU指令,将重组后的APDU指令发送至电信智能卡,从而通过Android系统直接与电信智能卡进行通信,使第三方应用程序可以在高效、安全的环境下使用电信智能卡提供的各种服务。附图说明图1为本实施例中Android系统与电信智能卡通信的方法流程图;图2为本实施例中第三方应用程序、与电信智能卡通信的类、电话进程的关系示意图;图3为本实施例中Android系统与电信智能卡通信的装置结构图。 具体实施例方式为了通过Android系统和电信智能卡通信,为第三方应用程序直接使用电信智能卡提供的各种服务提供高效、安全的环境,本专利技术实施例提供了ー种Android系统与电信智能卡通信的方法。下面结合附图对本专利技术优选的实施方式进行详细说明。如附图1所示,本专利技术实施例中,Android系统与SIM卡通信的详细方法流程如下步骤101 根据Android系统电话进程中用于与电信智能卡通信的类获取与电信智能卡通信的对象的接ロ函数。实际应用中,与电信智能卡通信的对象为Android系统电话进程(即phone进程) 中的CommandsInterface对象,接ロ函数包括第一接ロ函数(sendEnvelope成员函数)和第二接ロ函数(iccIO成员函数)。较佳地,获取与电信智能卡通信的对象的接ロ函数后,将该对象包含的第一接ロ 函数和第二接ロ函数封装为ー接ロ对象,该接ロ对象用于第三方应用程序与电信智能卡通信时直接调用。其中,Android系统电话进程中预置有与电信智能通信的类。其中,在Android系统电话进程中预置与电信智能卡通信的类时,将采用移动终端厂商提供的platform私钥签名对该程序签名后下载安装至Android系统电话进程的过程中,电话进程采用预置的platform公钥对该类进行验签,并在验签通过后进行安装。电话进程是Android系统的核心模块,主要负责管理与电话相关的功能,例如,收发短消息、通话管理及与SIM卡的交互等。本实施例中,将与电信智能卡通信的类安装至 Android系统的电话进程中,使得该类具有电话进程的权限,能够与电信智能卡进行通信。 如附图2所示,为第三方应用程序、与电信智能卡通信的类、电话进程的关系示意图。步骤102 根据接收的访问电信智能卡的应用程序协议数据单元(APDU)指令,获取需要与电信智能卡通信的数据内容。实际应用中,第三方应用程序可以直接发送APDU指令,也可以发送与电信智能卡通信的数据内容,在发送数据内容时,按照与APDU指令各字节相一致的顺序发送。较佳地,获取需要与电信智能卡通信的数据内容之前,接收第三方应用程序发送的签名信息,采用预设的公钥验证签名信息的有效性,并在确定签名信息有效后,获取需要与电信智能卡通信的数据内容,该签名信息为根据第三方应用程序的程序包生成数字摘要后,采用预设的私钥对数字摘要进行加密生成。通过对第三方应用程序进行认证,以保证电信智能卡数据的安全,能够对访问电信智能卡的机制进行安全控制,保证正常的电信应用不受影响。步骤103 调用接ロ函数,将数据内容重组为APDU指令,并将重组后的APDU指令发送至电信智能卡。其中,将数据内容重组为APDU指令,具体为判断数据内容的预定字节是否为设定值,若是,则调用与电信智能卡通信的对象的第一接ロ函数,将该数据内容重组为 ppDownload指令;否则,调用与电信智能卡通信的对象的第二接ロ函数将数据内容重组为 ppDownload指令之外的其他APDU指令。具体地,判断接收的APDU指令的第二字节对应的数据是否为0xC2,若是,则调用 sendEnvelope成员函数,否则,调用iccIO成员函数。较佳地,将重组后的APDU指令发送至电信智能卡后,调用接ロ函数,接收电信智能卡返回的APDU响应,并获取APDU响应中携帯的处理结果信息。本实施例中,在将与电信智能卡通信的程序下载至phone进程中时,还需要将与电信智能卡通信的类对应的进程的属性设置为“com. android, phone”。例如,可采用语句 android :process = “com. android, phone设直;tfe^gjS'l生。其中,与电信智能卡通信的类调用phone进程中与电信智能卡通信的 CommandsInterface对象时,由于CommandsInterface对象是作为ー个私有变量存在于 phone进程中,需要采用Java语言的反射技术获得。例如,调用CommandsInterface对象的具体代码如下所示StkService mStkService = (StkService)StkService. getlnstance ();”犾取 StkService 对象Field field = mStkService. getClass () · getDeclaredField ( mCmdlf) -J / 获取成员变量名为mCmdlf的私有变量field. setAccess本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.ー种Android系统与电信智能卡通信的方法,其特征在干,包括根据Android系统电话进程中用于与电信智能卡通信的类获取与电信智能卡通信的对象的接ロ函数;根据接收的访问电信智能卡的应用程序协议数据单元APDU指令,获取需要与电信智能卡通信的数据内容;调用所述接ロ函数,将所述数据内容重组为APDU指令,并将重组后的APDU指令发送至所述电信智能卡。2.如权利要求1所述的方法,其特征在于,将所述数据内容重组为APDU指令,包括判断所述数据内容的预定字节是否为设定值,若是,则调用所述对象的第一接ロ函数,将所述数据内容重组为ppDownload指令;否则,调用所述对象的第二接ロ函数将所述数据内容重组为所述ppDownload指令之外的其他APDU指令。3.如权利要求2所述的方法,其特征在干,获取与电信智能卡通信的对象的接ロ函数后,还包括将所述对象包含的第一接ロ函数和第二接ロ函数封装为ー接ロ对象,所述接ロ对象用于第三方应用程序与所述电信智能卡通信时直接调用;在所述接ロ对象被所述第三方应用程序调用后,获取需要与所述电信智能卡通信的数据内容,调用所述接ロ对象包含的第一接ロ函数或第二接ロ函数将所述数据内容重组为 APDU指令,并发送至所述电信智能卡。4.如权利要求3所述的方法,其特征在于,获取需要与电信智能卡通信的数据内容之 IU,还包括接收所述第三方应用程序发送的签名信息,采用预设的公钥验证所述签名信息的有效性,并在确定所述签名信息有效后,获取需要与电信智能卡通信的数据内容,所述签名信息为根据所述第三方应用程序的程序包生成数字摘要后,采用预设的私钥对所述数字摘要进行加密生成。5.如权利要求1-4任一项所述的方法,其特征在干,将重组后的APDU指令发送至所述电信智能卡后,包括调用所述接ロ函数,接收所述电信智能卡返回的APDU响应,并获取所述APDU响应中携带的处理结果信息。6.ー种Android系统与电信智能卡通信的...

【专利技术属性】
技术研发人员:谢树丰
申请(专利权)人:北京握奇数据系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术