New file |
| | |
| | | # Enable NFC on Dell ControlVault2 |
| | | |
| | | ## Introduction |
| | | |
| | | Recent Dell laptops - i.e. E7470 - contain integrated Broadcom NFC (contactless), (contacted) chip card and fingerprint reader (USB 0a5c:5834 - Broadcom BCM5880 USH). |
| | | |
| | | The contacted card reader works out of the box on Linux, yet NFC reader does not - no RF field is present. |
| | | |
| | | Instructions from [blog.g3rt.nl](https://blog.g3rt.nl/enable-dell-nfc-contactless-reader.html) are not applicable: the ushdiag.exe does not recognize the device at all. |
| | | |
| | | This project aims to enable Linux to read NFC cards the same way Windows does. |
| | | |
| | | ## Usage |
| | | |
| | | 1. Clone the repository. |
| | | 1. Install python3 and python3-usb. |
| | | 1. Run: `./bcm20795.py on` |
| | | 1. Run `pcsc_scan` or whatever you prefer. |
| | | 1. Enjoy! |
| | | |
| | | To disable the reader replace `on` with `off`. |
| | | |
| | | ## Supported devices |
| | | |
| | | Currently only the following devices were tested and are known to work: |
| | | |
| | | * `0a5c:5834` |
| | | |
| | | Firmware update (done during driver installation on Windows) may be required. |
| | | |
| | | ## How it works? |
| | | |
| | | Python script sends the same sequence of commands the Windows driver does. The traffic was sniffed using USBPcap and Wireshark (kudos to [~jkramarz](https://github.com/jkramarz) for that). |
| | | |
| | | The data is sent as-is and responses are read, but no error-checking is done. |
| | | |
| | | The semi-annotated traffic dump is available as [traffic.txt](traffic.txt) - feel free to decode it further! |
| | | |
| | | The communication protocol is based on NCI (NFC Controller Interface). Unfortunately the specs are not freely available and some proprietary extensions are used. libnfc-nci and kernel sources were used to decode some structs. |
| | | |
| | | ## References |
| | | |
| | | * https://android.googlesource.com/platform/external/libnfc-nci/ - the driver of NFC component (BCM 20795), |
| | | * https://blog.g3rt.nl/enable-dell-nfc-contactless-reader.html - this does not work on E7470. |