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
will the newer nightly CMs work? if not. how do i revert the changes manually? thank you.
It works (almost) well for me on normal CM10 (Nexus S). Don't know about the nightly builds.
What do you mean by "revert changes"? Flashing back from a new Nightly to a stable CM version?
would this work on a google nexus s i9020T? if not which specific model do i have to get?
Last edit: jason 2013-03-07
yes, it works with the nexus s.
is it supported with paypass 5000?
I am trying this on paypass 5000 and i'm getting transaction complete on the phone but it's not going through. its prompting me to put the chip in or swipe. does this only work on paypass 4000? if yes how can i add the pcd request for paypass 5000?
someone help me please and thank you
Last edit: jason 2013-03-23
Got this working with two Nexus S (crespo, not crespo4g). Successfully proxied a real POS transaction between a Visa PayWave debit card and a drinks machine.
PROXY phone: cm-10.1-20130430-NIGHTLY-crespo.zip (Android 4.2.2)
RELAY phone: Android 4.1.2 stock, not rooted or CM
I flashed the proxy phone using cwm-crespo-6.0.1.9.img and also installed gapps-jb-20130301-signed.zip.
Last edit: nexususer 2013-04-30
Has anyone tried this on CM12? It doesn't seem to be working on my Nexus 5. It keeps saying "PCD support not available. Unpredictable behaviour ahead." It won't scan unless I choose the correct card type (Visa, AMEX, etc.) under the "Saved" tab before attempting to read. Any suggestions?
=DETAIL CONTACT=
YaH : diagomonty
ICQ : 650541858
Gmail : diagomonty@gmail.com
___ CC _____
____ WU TRANSFER ____
Transfer Western Union i work all country
hi i just downloaded nfcproxy on my google nexus s phone when i try read my card data all i get is this message pcd support not avaiable unpredictable behavioir ahead when i try replay the tag on reader nothing happens ? this is the nfcproxy 1.1.2
PCD SUPPORT NOT AVAILABLE
only the firsr string of the tag changes when the pos reader digests the tag data
fisrt data is from orginal
second data is from a replay
u can see the first tag changed rest are the same
also shows (unsuported cc format replay still should be ok)