NFC Mifare Ultralight Чтение / запись для простого приложения Java для настольных ПК с использованием ACR122
Изучив множество потоков по stackru, я до сих пор не нашел работающий "пример" чтения / записи карт MiFare Ultralight или Classic NFC с использованием устройства чтения смарт-карт ACS ACR122 USB в приложении Java... Конечно, я пытался проконсультироваться документация по NXP или ACS, но так и не удалось "просто" прочитать / записать блок данных.
Существует множество специфичных для Android библиотек, но нет старых библиотек J2SE, которые упрощают взаимодействие с MiFare (с помощью команд javax.smartcardio и APDU...)
Может ли кто-нибудь дать мне действительно хорошие и полезные указатели:
- используя команду APDU для MiFare Ultralight & classic
- (помогите мне разработать) библиотеку J2SE, которая устраняет сложность всех команд HEX, которые отправляются на / с карты
- примеры, которые будут использоваться на этих картах (Сверхлегкий / Классический) ...
Любая помощь очень ценится.
Разработка осуществляется с помощью:
- Считыватель ACS acr122U NFC
- Платформа Linux с использованием библиотек PC/SC lite
- Карты MiFare Ultralight и Classic 1K/4K 7UID
- Java SDK 1.6+ и выше
- Android 4.4.x телефон с NFC (например, Huwawei ...)
1 ответ
Я написал небольшую программу на Java (1.7+) для создания дампов (и записи в них) тегов MiFare Classic 1K с использованием ACS ACR122U. Это доступно на GitHub. Под капотом используется старая библиотека J2SE под названием NFCTools.
NFCTools помогает вам общаться с картами NFC, управляя всеми шестнадцатеричными /APDU вещами. Это приходит с многочисленными примерами. Однако я не знаю, хочет ли главный разработчик его поддерживать. Например, он пометил многие классы Mifare как устаревшие, чтобы реорганизовать поддержку Mifare, но в течение двух лет эта работа еще не завершена. Из списка рассылки:
Сначала я написал поддержку карт MIFARE Classic, и казалось, что использование этих классов для описания области памяти было хорошей идеей. Однако, когда я хотел добавить поддержку сверхлегких тегов, вышеуказанные классы не работали. С помощью сверхлегких тегов я решил использовать новый подход и создать класс org.nfctools.mf.ul.MemoryLayout. Я думаю, что это путь, поэтому я отметил классы MfCard как устаревшие.
Несмотря на это промежуточное состояние, он поддерживает множество читателей и форматов тегов. Примеры довольно полезны. Тогда, если у вас есть какие-то особые требования, я советую вам внести свой вклад в этот проект или раскошелиться.