title: Developing a smartcard reader in Android
body: <p>We developed a prototype board with a microcontroller, which can communicate with a SmartCard (It can read the ATR, issue and read responses to APDU commands, etc).Now I want to use this hardware with an Android phone or tablet. Our board has a USB connection, through which we can read and write to the MCU via Android.</p>
  
  <p>The end goal is to have a functioning smartcard reader on the Android platform with PKCS #11 support and provide a library to the end-users of the SmartCard reader so they can communicate with their cards.</p>
  
  <p>I have read several discussions on the subject, some of which stated that I would have to build a custom Android to do this. I am not very familiar with the Android architecture to understand why I would have to re-build Android when I can communicate with my peripheral (card reader) via USB. It seems to me that if I provide a library that implements CCID-like interface, the users can then communicate with my reader using the Android USB stack by way of integrating my library to their target .apk file.</p>
  
  <p>Are there any problems with the above plan that we are not aware? I am concerned that we are missing something fundamental about Android or SmartCard readers in general (for example: security) which will cause problems for us as we start implementing the libraries described above.</p>