The testing device should be a Nexus S running Android 2.3.3.  Phone must have usb debugging enabled.  Device needs to be rooted and have su installed.  Needs to have busybox and sqlite3 installed as well.

The Linux host needs to have the Android SDK installed as well as hub-ctrl.  It should be able to run the various examples in the libnfc-1.5.1 utils directory.  I used Ubuntu 11.10.

It requires a D-Link Corp. DUB-H7 7-port USB 2.0 hub and an ACS ACR122U NFC or SCL3711 reader plugged into its last port.

libnfc-1.5.1
This tree starts from the original libnfc-1.5.1 but has modifications.  In the utils directory you can find additional/modified files.  The rest is untouched.
	
fuzz_ndef-type4.py
This file fuzzes ndef’s using Type 4 transactions.    The path to adb and hub-ctrl is hardcoded.  It expects testcases to be in a file called bitflip.out in the same directory.  It needs to be run in the utils directory of libnfc as root.  It should be run with the ACR 122U.  Either run in a directory with an unmodified nfc-emulate-forum-type4 or with a valid cc.out file (see fuzz_memory-type4.py for info).

fuzz_memory-type2.py
This file fuzzes the MiFare UL memory structure before the NDEF field.  It reads in fuzzed values from bitflip.out, writes them to a file called test.out that nfc-emulate-forum-tag2 has been modified to look for.  The file test.out has a copy of the whole UL card memory.   It needs to be run in the utils directory of libnfc as root.  It should be run with the SCL3711.

fuzz_memory-type4.py
This file fuzzes the Capability Container of a Type 4 transaction.  It reads Capability Containers from bitflip.out and then writes them into a file called cc.out that nfc-emulate-forum-tag4 has been modified to look for.  It needs to be run in the utils directory of libnfc as root. It should be run with the ACR 122U.

nfcpy
This is a modified version of the nfcpy software suite.  

fuzz-connect.py
This file fuzzes the Connect LLCP PDU.  It reads the PDU’s from a file called bitflip.out and places it in connect-pdus.out so that a modified npp-test-client.py (actually other files in the framework were modified, but this is the main script) will use it.  It needs to be run in the examples directory as root and should be run with the ACR 122U.  

fuzz-information.py
This file fuzzes the I (Information) LLCP PDU.  It reads the PDU’s from a file called bitflip.out and places it in information-pdus.out so that a modified npp-test-client.py (actually other files in the framework were modified, but this is the main script) will use it.  It needs to be run in the examples directory as root and should be run with the ACR 122U.  

