To facilitate protocol analysis, NFCProxy should be installed on two NFC enabled Android devices. One end will relay requests directly to a credit card. The other end will proxy a reader's requests over WiFi to the relay end.
The proxy mode side MUST be running a special version of Cyanogen in order to detect the credit card reader. You will need to install a nightly build of Cyanogen 9 from Jan 20 - Mar 22, 2012.
For example, the Mar. 22, 2012 build for the Nexus S 4g can be found at: http://goo.im/cm/crespo4g/nightly/update-cm-9-20120322-NIGHTLY-crespo4g-signed.zip
Builds for other phones can be found at: http://goo.im/cm/
NOTE: if you want to compile Cyanogen from scratch, you'll need to revert changes: https://github.com/CyanogenMod/android_packages_apps_Nfc/commit/75ad85b06935cfe2cc556ea1fe5ccb9b54467695
After flashing to this special version of Cyanogen, you can verify that Card Emulation mode works by swiping your phone near a Point-of-Sale terminal. Your phone should make a noise.
Version 0.1.2 should work with the latest version of Cyanogen. You just need to make sure NFCProxy is running in the foreground.
How to use NFCProxy:
1) Make sure both phones are on WiFi (or figure out how to connect to each other directly over IP)
2) Decide which phones will act as the Relay and which will act as the Proxy.
3) On the Proxy side, go to settings and set the IP address of the Relay node. (The relay's IP address should be shown in the Relay's settings section)
4) Decide if you want to encrypt the transmission between the Proxy and Relay. (This makes transactions slower. You may not need this if using WPA. Encryption settings need to be set on BOTH Relay and Proxy sides)
5) Place the Relay phone on a credit card. (The Relay phone will indicate if the card has been detected. If you don't see anything, move the card and phone around until they detect)
6) Place the Proxy phone near a POS terminal (You may need to leave the phone near the reader for a couple of seconds)
Check the Status tab on the Proxy end of error messages. Occasionally, you'll get error messages on the Relay end too.
You can long press the transactions in the Data tab to:
Replay the Tag/Credit card (for a reader)
Replay the PCD/Reader (to read credit card)
Delete the transaction from the screen
Save the transaction to the local database (Unencrypted)
Export the transaction to a file (Unencrypted)
All transactions in the Data tab are transitory unless you explicitly save them (e.g. if you hit the back button, they're gone).
The Save tab contains saved transactions. Clicking on these entries puts the phone in replay mode (either PCD or Tag). NFCProxy comes with some pre-saved transactions. You can use these transactions to test your cards. Different types of credit cards will elicit different requests from a PCD, so the built-in transactions are not guaranteed to work with your card.
You can find a demonstration video of NFCProxy in use at: http://www.youtube.com/watch?v=w_vYuLyfw3E