在Android中开发智能卡读卡器

Som*_*ter 7 usb android apdu smartcard

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

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

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

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

Syl*_*ard 2

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

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