Мы разработали прототип платы с микроконтроллером, который может обмениваться данными со смарт-картой (он может считывать ATR, выдавать и читать ответы на команды APDU и т. д.). Теперь я хочу использовать это оборудование с телефоном или планшетом Android. Наша плата имеет USB-соединение, через которое мы можем читать и записывать в MCU через Android.
Конечная цель состоит в том, чтобы иметь работающее устройство чтения смарт-карт на платформе Android с поддержкой PKCS #11 и предоставить библиотеку конечным пользователям устройства чтения смарт-карт, чтобы они могли обмениваться данными со своими картами.
Я читал несколько обсуждений на эту тему, в некоторых из них говорилось, что для этого мне нужно будет создать собственный Android. Я не очень хорошо знаком с архитектурой Android, чтобы понять, зачем мне пересобирать Android, когда я могу общаться со своим периферийным устройством (картридером) через USB. Мне кажется, что если я предоставлю библиотеку, которая реализует CCID-подобный интерфейс, пользователи смогут затем общаться с моим ридером, используя USB-стек Android, путем интеграции моей библиотеки в их целевой файл .apk.
Есть ли какие-либо проблемы с вышеуказанным планом, о которых мы не знаем? Меня беспокоит то, что мы упускаем что-то фундаментальное в устройствах для чтения Android или смарт-карт в целом (например, безопасность), что вызовет у нас проблемы, когда мы начнем внедрять библиотеки, описанные выше.