PC/SC在android上的移植
2015-11-21 20:29
399 查看
本处只讨论分别移植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,这个没有尝试过。
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,这个没有尝试过。
相关文章推荐
- Android中的Handler的用法和用Handler进行更新版本
- Android 使用百度LBS SDK(六)轨迹回放
- Android逆向之旅---基于对so中的函数加密技术实现so加固
- android手机震动代码
- Android对不同DPI的dimen选择优先级问题
- 《第一行代码--Android》读书笔记之使用通知和多媒体
- Android数据存储——SharedPreferences、File、Sqlite
- android压缩图片Demo
- Android开发规范之编码规范
- Android dumpsys 命令解析
- Android 手势(Gesture)
- Android 相机,视频录制
- Android 图片二次采样、质量压缩
- Android APK反编译教程(带工具)
- Android 蓝牙
- Android5.0+(Percent 百分比布局)
- Android 5.0+(RecycleView、CardView、Palette)
- android studio 启动后activity_main.xml的design下报错rendering problems can't resolve resource……
- android5.0+(Toolbar)
- android5.0+(NavigationView)