From ec8c6648819d21167a67817c0e6fa5c9937ec289 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Mon, 25 Mar 2019 00:12:55 +0000 Subject: [PATCH] Add README.md --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/README.md b/README.md new file mode 100644 index 0000000..8cdc287 --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# 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. -- Gitblit v1.9.1