PC/SC在android上的移植

原创 2015年11月21日 20:29:25

本处只讨论分别移植libusb,pcsc和ccid部分,主要涉及到的源码为:

libusb:http://sourceforge.net/projects/libusb/

pcscd:https://github.com/mikma/pcsc-lite-android

ccid:https://github.com/mikma/ccid-android


使用testpcsc测试失败的原因是因为pcscd没有正常启动,有可能涉及到usbfs有没有挂载成功,由于测试的时候手机是作为一个device设备,

 不是一个host,所以在没有插入一个device设备也就没有生成该节点。可以通过查看dev/bus/usb是否有建立。而libusb在加载的时候会去检

测 usbfs,一 旦检 测失败pcscd也就退出了,有时也会出现僵死情况。

reader.conf个人理解是用pcscd守护进程(用户空间)可以有两种方式和内核层进行通信。这又涉及到PC/SC这个读卡的通信规范。

一般情况下可以这么理解:pcscd守护进程<—>ccid(usb转换成卡的协议)<— >libusb(泛指 枚举usb)<—>读卡设备

第一种方式(没有具体验证过),将ccid+libusb(泛指usb协议)放在内核中做,内核向用户空间提供一个tty接口,那对用户空间来说操作起来

就相对简单,直接当一个串口设备操作,这种情况下,android上只要移植pscs这个库,同时需要reader.conf这个文件来配置串口设备。

第二种方式,将ccid+libusb(移植的开源库),这种方式在内核层做的就相对简单,只需要将读卡器注册 成usbfs设备就行了,而繁重的usb枚举,

ccid协议转换都将有用户空间来做,这时候就不需要reader.conf但由于涉及到usb枚举就需要另一个文件info.plist。这个文件在 ccid库中会自动生成

(如果没有的话可以先编译一个PC版本的就可以得到),里面已经包含了很多型号。将自己的模块信息加进去就行了。

scardcontril,testpcsc分别用来调试ccid和pcscd,另外libusb可以用 listdevice(lsusb)来测试。


一个完整的例子:https://github.com/mikma/androidsc-usb,这个没有尝试过。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

PC/SC规范介绍

1.简介: PC/SC规范由微软公司与世界其它著名的智能卡厂商组成的PC/SC工作组提出的。PC/SC规范是一个基于WINDOWS平台的一个标准用户接口(AP1),提供了一个从个人电脑(Person...

VC中PC/SC智能卡接口的编程

[摘要]本文介绍了如何在VC中通过PC/SC接口实现对智能卡读写器的操作,并给出了详细的例子代码。 [关键词]智能卡、PC/SC、智能卡读写器 1 引言 完整的智能卡应用系统由后台服...

VC中PC/SC智能卡接口的编程

[摘要]本文介绍了如何在VC中通过PC/SC接口实现对智能卡读写器的操作,并给出了详细的例子代码。 [关键词] 智能卡、PC/SC、智能卡读写器 1 引言 完整的智能卡应用系统由后台服务程...

VC中PC/SC智能卡接口的编程

[摘要]本文介绍了如何在VC中通过PC/SC接口实现对智能卡读写器的操作,并给出了详细的例子代码。 [关键词]智能卡、PC/SC、智能卡读写器 1 引言 完整的智能卡应用系统由后台服务程序、主机...

windows PC/SC 常用Scard前缀函数说明

Windows系统提供了大量的API来方便的进行智能卡应用程序的开发,通过它们我们可以直接控制智能卡读卡器对智能卡进行操作,也可以与智能卡建立直接的虚拟连接而不用考虑智能卡读卡器。

VC中PC/SC智能卡接口的编程

VC中PC/SC智能卡接口的编程 有关PC/SC协议的网址:http://www.gemplus.com.cn/techno/pcsc/ 1 引言 完整的智能卡应用系统由...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)