Enable NFC for Linux and pcscd on Dell E7470 (and others) with ControlVault2
Jacek Kowalski
2020-07-24 f834210391b0549770947019c8bf6b5c5034d04c
README.md
@@ -1,4 +1,4 @@
# Enable NFC on Dell ControlVault2
# Enable NFC on Dell ControlVault2 and ControlVault3
## Introduction
@@ -14,7 +14,7 @@
1. Clone the repository.
1. Install python3 and python3-usb.
1. Run: `./bcm20795.py on` (use `sudo` if necessary).
1. Run: `./nfc.py on` (use `sudo` if necessary).
1. Run `pcsc_scan` or whatever you prefer.
1. Enjoy!
@@ -24,8 +24,9 @@
Currently only the following devices were tested and are known to work:
* `0a5c:5832`
* `0a5c:5834`
* `0a5c:5832` (ControlVault 2),
* `0a5c:5834` (ControlVault 2),
* `0a5c:5843` (ControlVault 3).
Firmware update (done during driver installation on Windows) may be required.
@@ -36,19 +37,20 @@
* Dell Latitude 7280
* Dell Latitude 7290
* Dell Latitude 7390
* Dell Latitude 7400
* Dell Latitude E5270
* Dell Latitude E7470
* Dell Latitude E7490
## 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).
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) and [~lgarbarini](https://github.com/lgarbarini) and 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 semi-annotated traffic dumps are available as [traffic_cv2.txt](traffic_cv2.txt) and [traffic_cv3.txt](traffic_cv3.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.
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 vendor-independent structs.
## References