在Android中开发智能卡读卡器

问题描述 投票:7回答:2

我们开发了一个带有微控制器的原型板,它可以与SmartCard通信(它可以读取ATR,发出和读取对APDU命令的响应等)。现在我想将这个硬件与Android手机或平板电脑一起使用。我们的电路板具有USB连接,通过它我们可以通过Android读取和写入MCU。

最终目标是在支持PKCS#11的Android平台上安装功能强大的智能卡读卡器,并为SmartCard读卡器的最终用户提供库,以便他们可以与卡进行通信。

我已经阅读了几个关于这个主题的讨论,其中一些讨论说我必须构建一个自定义Android才能做到这一点。我不熟悉Android架构,了解为什么当我可以通过USB与外围设备(读卡器)通信时,我必须重新构建Android。在我看来,如果我提供一个实现类似CCID接口的库,用户可以通过将我的库集成到他们的目标.apk文件,使用Android USB堆栈与我的阅读器进行通信。

我们不知道上述计划有什么问题吗?我担心我们缺少一些关于Android或SmartCard读卡器的基本信息(例如:安全性),这会在我们开始实施上述库时给我们带来问题。

android usb smartcard apdu
2个回答
1
投票

我已经为我的自定义平台在定制的Gingerbread发行版中集成了USB外设。您自定义Android平台的唯一原因是添加或修改一些可让您访问USB设备的驱动程序。如果您的USB设备已经使用了标准Android设备支持的协议,那就享受您的运气吧!几乎所有的设置。但在庆祝胜利之前,我会在各种设备上尝试。在Android和内核级别,Google提供了一个包含大量驱动程序源代码的非线性分布。由手机/平板电脑制造商决定根据其设备使用的硬件确定哪些低级驱动程序和协议。由于手机/平板电脑的内存容量有限,一般规则是包含所需内容。在PC-Linux体系结构中,您没有问题,因为硬盘空间太大,您可以包含所有存在的驱动程序,并让系统根据它发现的内容选择所需的内容。

希望这个简单的答案会有所帮助。


0
投票

我不确定读者的CCID实现,但是对于android有一些C / C ++端口,不确定它们是否有效。在android部分很容易实现CCID协议,看看this。最困难的部分是为阅读器制作固件,您需要处理许多小细节。

© www.soinside.com 2019 - 2024. All rights reserved.