LibraryNFC
LibraryNFC copied to clipboard
MIFARE DESFire NFC Reader and HCE Emulator apps for Android
LibraryNFC
is a school project to emulate NXP's MIFARE DESFire-based library ID cards with Android's Host Card Emulation.
LibraryHCE
This module offers emulation of a contactless library ID card. Emulation uses native MIFARE DESFire command set. The DESFire protocol implemented here is this reverse engineered version.
See the list of supported commands.
LibraryReader
This module enables reading data from physical and emulated DESFire-based library ID cards.
Its programmed use-case is to
- connect with a DESFire card (physical or with a specific Android application)
- select a library DESFire Application
- authenticate with AES key
- read data from a DESFire File
Configuration
HCE AID
The "Android" AID used by both HCE and Reader Android applications can be configured in the strings.xml file of the nfc helper library.
Emulated library ID
The data (Application AID, AES key, Data Files) of the emulated DESFire Application can be configured here.
Library ID reader
The data (Application AID and AES key) of the Reader module can be configured here.
Deployment
To deploy the applications two NFC-capable Android phones are needed. My setup included motorola one (Emulator) and Nexus 4 (Reader). I have tested emulation with some Sony and Huawei phones and it didn't work so well. You can use CTSVerifier to test your phone's NFC capabilities.
I was using Android Studio version 3.6.1.
Issues
Although I don't plan to update the app anytime soon, feel free to open Issues if you need clarification or help with NFC. I'd like to thank this way for many others that provided me with resources. Please consider starring the repo if you like it!