Rachita Nanda
Rachita Nanda

Reputation: 4659

Write NFC-A host-based card emulation for CPR 40.30 reader

HCE was implemented in the Android 4.4, but there is very little information regarding how to write in an emulated card.

NFC card details that are compatible with CPR 40.30

IC manufacturer: NXP Semiconductors

IC type:
MIFARE Ultralight (MF0ICU1)

-- NDEF ------------------------------

NFC data set storage not present:
Maximum NDEF storage size after format: 46 bytes

-- EXTRA ------------------------------

 Memory size:
64 bytes total memory
* 16 pages, with 4 bytes per page
* 48 bytes user memory (12 pages)

-- TECH ------------------------------

 Technologies supported:
ISO/IEC 14443-3 (Type A) compatible
ISO/IEC 14443-2 (Type A) compatible

Android technology information:
Tag description:
* TAG: Tech [android.nfc.tech.NfcA, android.nfc.tech.MifareUltralight, android.nfc.tech.NdefFormatable]
android.nfc.tech.NdefFormatable
android.nfc.tech.MifareUltralight
android.nfc.tech.NfcA
* Maximum transceive length: 253 bytes
* Default maximum transceive time-out: 2000 ms

Detailed protocol information:
ID: 04:AC:91:52:CB:29:80
ATQA: 0x4400
SAK: 0x00

I want to write HCE code and want my Android phone to act like a card which can be read by CPR 40.30 reader. I'm assuming the HCE code should emulate a card with the above mentioned specifications, as the above NFC card can be read by the reader.

The only useful sample code I have found till now for HCE is this, but it uses ISO-DEP. I want to use NFC-A (ISO/IEC 14443 type A) instead.

How can I write code to emulate an NFC-A card?

Referred Links:

Upvotes: 1

Views: 1904

Answers (1)

Michael Roland
Michael Roland

Reputation: 40849

Android only supports emulation of ISO/IEC 7816-4 application structures on top of ISO-DEP (ISO/IEC 14443-4). The Android API does not provide any means to access emulation of lower protocol layers.

From the developer guide:

Specifically, Android 4.4 supports emulating cards that are based on the NFC-Forum ISO-DEP specification (based on ISO/IEC 14443-4) and process Application Protocol Data Units (APDUs) as defined in the ISO/IEC 7816-4 specification.

Note that the CPR 40.30 should support ISO-DEP too.

Upvotes: 0

Related Questions