1

I buy ACR122U SDK that has a acr122 reader,cd and cards and I try to test it. the reader detect the cards by changing its LED light from red to green but when I take my phone (NFC is turned on) near the reader,there is nothing happen.

How do I make the reader detect my phone? I have to install java card applet into my phone for letting my phone act as a contactless card?

Michael Roland
  • 39,663
  • 10
  • 99
  • 206
Dexter Moregan
  • 161
  • 2
  • 2
  • 12

2 Answers2

3

Using the ACR122U NFC reader you have three options:

  • ACR122U in peer-to-peer mode: In peer-to-peer mode, you can communicate with an Android device using Android's built in Beam functionality. On the reader side you would need to implement the SNEP service (and the underlying LLCP + NFCIP-1 protocol stack). You can find examples, for instance, with ISMB-SNEP, NFC Tools and nfcpy.

  • ACR122U in card emulation mode: In card emulation mode the ACR122U can be used to emulate a tag/contactless smartcard that can be detected by an Android device just like any other NFC tag/contactless smartcard. You can find examples, for instance, with libnfc.

  • ACR122U in reader/writer mode: In reader/writer mode, the ACR122U can communicate with contactless smartcards. This goes into the direction of what takumar already posted in his answer. While you were stuck with the requirement of a secure element (which is typically difficult due to lack of access or even lack of an SE), with recent Android versions (specifically CyanogenMod 9.1+ or Android 4.4+), you have the option to use host card emulation (HCE) mode. See the Android documentation for how that works on Android 4.4 and later.

Community
  • 1
  • 1
Michael Roland
  • 39,663
  • 10
  • 99
  • 206
  • I'm wondering if you've tried using a PN532 in emulation mode (14443-4 PICC emulation) using an iPhone's CoreNFC as the reader initiator? I have been experimenting with it but not getting any sane results. The RATS is returned as 0xE0, but when I try to get the first command from the iPhone I get 0x60 rather than the expected select command (00 A4 04 00 00). This result is the same whether or not I include a "ISO7816 application identifier" in the info.plist of the iPhone app. I was expecting the first command to be a select command with the AID I specify/ – Papyrus Apr 13 '21 at 01:56
0

Your phone must be enabled for card emulation, not all are. Furthermore, you need to figure out where card emulation is routed to. This can be the SIM or some embedded secure element. Once that is done, you can think of deploying the application onto a test SIM (it is very unlikely that you'll ever get the keys to the embedded secure element). Working with an AOSP build of Android (for instance on the Nexus 5) helps because you can set the route. Test SIMs with test keys can be bought online I believe. Once you have one, you can use GPShell to install the application. Good luck.

Toluene
  • 751
  • 3
  • 9