Чтение NFC-тегов NfcA MifareClassic

У меня разные теги:

Я хочу прочитать свой ключ. UID — 20 66 be 52, ATQA — 00 40, SAK — 00 08 (ATQA и SAK такие же, как у ключа Amazon, поэтому я предполагаю, что это также Mifare Classic 1 КБ)

Всякий раз, когда я пытаюсь transceive(byte[]), я ловлю TagLostException. Забавный факт: рекламный тег работает лучше, но все равно выдает IOException: Transceive failed

Попытка разобрать тег (для моего ключа) на IsoDep или MifareClassic выдает ошибку Nullpointer. Работает только NfcA, но я не могу прочитать данные из тега.

Может ли кто-нибудь предоставить мои действительные команды или любой другой способ прочитать содержимое с Android.

MifareClassic mfc = MifareClassic.get(tagFromIntent);
mfc.connect(); //Nullpointer

РЕДАКТИРОВАТЬ: Похоже, проблема может заключаться в моем Nexus 4 (в основном купил его для вещей NFC :( ) кажется, что он не поддерживает классические теги MIFARE. Но если у вас все еще есть идеи, запишите их.


person paulgavrikov    schedule 04.02.2013    source источник


Ответы (1)


Хорошо, теперь ясно: Nexus 4 не поддерживает MIFARE Classic (например, MIFARE Ultralight работает)

Он может читать UID, ATQA и SAK, но не может ни записывать, ни читать из блоков/секторов.

Печально, что флагманское устройство высокого класса, такое как Nexus 4 (а также Nexus 10), не может считывать самые популярные теги.

person paulgavrikov    schedule 04.02.2013
comment
Верно. Он не поддерживает его не потому, что он не совместим с NFC Forum, а потому, что он использует проприетарный криптографический алгоритм (Crypto 1), который Broadcom и Google не хотели лицензировать. На устройствах с контроллерами NXP NFC (Nexus S, Galaxy Nexus и т. д.) вы получаете это бесплатно, поскольку аппаратное обеспечение поддерживает это. Как правило, вам нужно проверить результат SomeNfcTech.get() на нуль, потому что не все гарантированно поддерживаются. - person Nikolay Elenkov; 04.02.2013
comment
Кроме того, алгоритм Crypto 1 полностью сломан, и нет оправдания использованию Classic для новых проектов. - person Nikolay Elenkov; 04.02.2013
comment
Я бы тоже не стал платить лицензионные сборы за полностью сломанную криптографию. То, что Mifare Classic уходит, — это хорошо для технологии NFC. - person Nils Pipenbrinck; 04.02.2013
comment
Теоретически возможно ли повторно реализовать Crypto 1 в программном обеспечении на устройстве Android (возможно, путем изменения программного стека/драйвера NFC, или это должно быть реализовано на оборудовании NFC? - person lxgr; 11.02.2013