libnfc с ACR122U не дает ответа на SELECT (по AID) APDU

См. APDU для чтения NFC SELECT (по AID) не направляется на устройство Android при отладке и возможных результатах. TL;DR читатель может просто не существовать.


У меня есть NFC-ридер ACR122U. Я пытаюсь запустить этот пример http://www.nfc-tools.org/index.php?title=Libnfc:APDU_example#apdu_example.c на моем компьютере с Ubuntu.

Это вывод журнала, который я получаю, когда подключаю свое устройство Android (должно быть в режиме HCE) к считывателю:

./apdu_example
debug   libnfc.general  log_level is set to 3
debug   libnfc.general  allow_autoscan is set to true
debug   libnfc.general  allow_intrusive_scan is set to false
debug   libnfc.general  0 device(s) defined by user
./apdu_example uses libnfc libnfc-1.7.1
debug   libnfc.driver.acr122_usb    device found: Bus 001 Device 088 Name     ACS ACR122
debug   libnfc.general  1 device(s) found using acr122_usb driver
debug   libnfc.driver.acr122_usb    3 element(s) have been decoded from "acr122_usb:001:088"
debug   libnfc.driver.acr122_usb    TX: 62 00 00 00 00 00 00 01 00 00
debug   libnfc.driver.acr122_usb    RX: 80 02 00 00 00 00 00 00 81 00 3b 00
debug   libnfc.driver.acr122_usb    ACR122 PICC Operating Parameters
debug   libnfc.driver.acr122_usb    TX: 6f 05 00 00 00 00 00 00 00 00 ff 00     51 00 00
debug   libnfc.driver.acr122_usb    RX: 80 01 00 00 00 00 00 02 fe 00 00
debug   libnfc.chip.pn53x   GetFirmwareVersion
debug   libnfc.driver.acr122_usb    TX: 6f 07 00 00 00 00 00 00 00 00 ff 00 00 00 02 d4 02
debug   libnfc.driver.acr122_usb    RX: 80 08 00 00 00 00 00 02 fe 00 d5 03 32 01 06 07 90 00
debug   libnfc.chip.pn53x   SetParameters
debug   libnfc.driver.acr122_usb    TX: 6f 08 00 00 00 00 00 00 00 00 ff 00 00 00 03 d4 12 14
debug   libnfc.driver.acr122_usb    RX: 80 04 00 00 00 00 00 02 fe 00 d5 13 90 00
debug   libnfc.general  "ACS / ACR122U PICC Interface" (acr122_usb:001:088) has been claimed.
debug   libnfc.chip.pn53x   ReadRegister
debug   libnfc.driver.acr122_usb    TX: 6f 11 00 00 00 00 00 00 00 00 ff 00 00 00 0c d4 06 63 02 63 03 63 0d 63 38 63 3d
debug   libnfc.driver.acr122_usb    RX: 80 09 00 00 00 00 00 02 fe 00 d5 07 00 00 00 00 00 90 00
debug   libnfc.chip.pn53x   PN53X_REG_CIU_TxMode (Defines the transmission data rate and framing during transmission)
debug   libnfc.chip.pn53x   PN53X_REG_CIU_RxMode (Defines the transmission data rate and framing during receiving)
debug   libnfc.chip.pn53x   WriteRegister
debug   libnfc.driver.acr122_usb    TX: 6f 0d 00 00 00 00 00 00 00 00 ff 00 00 00 08 d4 08 63 02 80 63 03 80
debug   libnfc.driver.acr122_usb    RX: 80 04 00 00 00 00 00 02 fe 00 d5 09 90 00
debug   libnfc.chip.pn53x   RFConfiguration
debug   libnfc.driver.acr122_usb    TX: 6f 09 00 00 00 00 00 00 00 00 ff 00 00 00 04 d4 32 01 00
debug   libnfc.driver.acr122_usb    RX: 80 04 00 00 00 00 00 02 fe 00 d5 33 90 00
debug   libnfc.chip.pn53x   RFConfiguration
debug   libnfc.driver.acr122_usb    TX: 6f 09 00 00 00 00 00 00 00 00 ff 00 00 00 04 d4 32 01 01
debug   libnfc.driver.acr122_usb    RX: 80 04 00 00 00 00 00 02 fe 00 d5 33 90 00
debug   libnfc.chip.pn53x   RFConfiguration
debug   libnfc.driver.acr122_usb    TX: 6f 0b 00 00 00 00 00 00 00 00 ff 00 00 00 06 d4 32 05 ff ff ff
debug   libnfc.driver.acr122_usb    RX: 80 04 00 00 00 00 00 02 fe 00 d5 33 90 00
NFC reader: ACS / ACR122U PICC Interface opened
Polling for target...
debug   libnfc.chip.pn53x   ReadRegister
debug   libnfc.driver.acr122_usb    TX: 6f 13 00 00 00 00 00 00 00 00 ff 00     00 00 0e d4 06 63 02 63 03 63 05 63 38 63 3c 63 3d
debug   libnfc.driver.acr122_usb    RX: 80 0a 00 00 00 00 00 02 fe 00 d5 07     80 80 43 00 10 00 90 00
debug   libnfc.chip.pn53x   InListPassiveTarget
debug   libnfc.chip.pn53x   No timeout
debug   libnfc.driver.acr122_usb    TX: 6f 09 00 00 00 00 00 00 00 00 ff 00     00 00 04 d4 4a 01 00
debug   libnfc.driver.acr122_usb    RX: 80 0e 00 00 00 00 00 02 fe 00 d5 4b     01 01 08 03 20 04 01 02 03 04 90 00
Target detected!
=> a4 04 00 07 f0 01 02 03 04 05 06 00
debug   libnfc.chip.pn53x   InDataExchange
debug   libnfc.chip.pn53x   Timeout value: 5000
debug   libnfc.driver.acr122_usb    TX: 6f 14 00 00 00 00 00 00 00 00 ff 00     00 00 0f d4 40 01 a4 04 00 07 f0 01 02 03 04 05 06 00
res from transceive: -6
debug   libnfc.chip.pn53x   InDataExchange
debug   libnfc.chip.pn53x   Timeout value: 5000
debug   libnfc.driver.acr122_usb    TX: 6f 14 00 00 00 00 00 00 00 00 ff 00     00 00 0f d4 40 01 a4 04 00 07 f0 01 02 03 04 05 06 00

По сути, я вижу, что читатель видит мое Android-устройство, поскольку я вижу UID (01 02 03 04) (или другой UID, если я коснусь другого устройства). После этой передачи select AID apdu просто истекает время ожидания, и я не вижу соответствующего ответа в своих журналах Android.

На Android-устройстве у меня установлено приложение с AID, который я пытаюсь выбрать — f0 01 02 03 04 05 06.

Может ли это быть проблемой именно с этой читалкой? Существуют и другие ADPU, которые также мешают читателю отвечать, например. FF 00 00 00 02 D4 04 просто не отвечает. Можно ли как-то продиагностировать железо?


person cliffroot    schedule 14.05.2018    source источник
comment
связанные проблемы, которые у меня есть с этим читателем: stackoverflow.com/questions/50294970/ stackoverflow.com/questions/50316799/   -  person cliffroot    schedule 14.05.2018