-
Notifications
You must be signed in to change notification settings - Fork 912
MacOS
In order to get the data plotting GUI working, you will need an X server installed on Mac OS. Download and install XQuartz from here: https://www.xquartz.org/, which should work out of the box after logging out & back in to your account.
The easiest way to build Proxmark3 project on macOS is to use official homebrew tap.
This method is recommended and tested on macOS Sierra 10.12.3
1. Install homebrew if you haven't yet already done so: http://brew.sh/
2. Tap proxmark repo:
brew tap proxmark/proxmark3
3. Install Proxmark3:
for stable release
brew install proxmark3
for latest non-stable from GitHub (use this if previous command fails)
brew install --HEAD proxmark3
For more information go to https://github.com/Proxmark/homebrew-proxmark3
- An apple computer running OSX with an available USB port.
- This guide will most likely work with : OSX 10.7 (Lion), 10.8 (Mountain Lion), 10.9 (Mavericks), 10.10 (Yosemite)
- MacPorts installed: http://www.macports.org or Homebrew installed: http://brew.sh
- Xcode installed: https://developer.apple.com/technologies/tools/
1. Open a terminal: (Command-SPACE Terminal)
2. Download and install components essential to build the Proxmark from source:
- Option 1) Using MacPorts
sudo port install p7zip readline libusb libusb-compat perl5 wget qt5 arm-none-eabi-gcc pkgconfig
- Option 2) Using HomeBrew
brew tap nitsky/stm32 brew install readline libusb p7zip libusb-compat wget qt5 pkgconfig arm-none-eabi-gcc
If you choose to use HomeBrew, you need add QT to PKG_CONFIG_PATH so that pkg-config can find QT5.
export PKG_CONFIG_PATH=/usr/local/Cellar/qt5/<< INSTALLED VERSION >>/lib/pkgconfig/
And you need add moc_location in Qt5Core.pc file.
export QT_PKG_CONFIG_QT5CORE=$(find /usr -name Qt5Core.pc 2>/dev/null) chmod 666 $QT_PKG_CONFIG_QT5CORE echo "moc_location=\${prefix}/bin/moc" >> $QT_PKG_CONFIG_QT5CORE chmod 444 $QT_PKG_CONFIG_QT5CORE
In order to avoid any compilation error related to readline you must force link creation:
brew link --force readline
3. Install Xcode from the AppStore, this will install the compiler and toolchain ; gcc, make, etc.
4. Check out the latest revision of the Proxmark project:
git clone https://github.com/Proxmark/proxmark3.git
5. You have just downloaded the github master directory to your Mac Home Directory. Enter the Proxmark3 Directory.
cd proxmark3
6. Insert the Proxmark and run
system_profiler SPUSBDataType
7. in the output, you will find Proxmark3's Vendor ID and Product ID
CDC Proxmark3 (pre-2017-04-24):
Product ID: 0x504d Vendor ID: 0x2d2d
HID Proxmark3, or CDC Proxmark3 (since USB descriptor fix on 2017-04-24):
Product ID: 0x4b8f Vendor ID: 0x9ac4
If your Proxmark3 is a HID device, you will need to upgrade it to CDC bootrom by continuing to Upgrading Proxmark3 from HID to CDC. If your Proxmark is a CDC device you can to jump to Compiling.
Example of a full USB device from system_profiler output (Proxmark3 with CDC bootrom):
Communication Device: Product ID: 0x4b8f Vendor ID: 0x9ac4 Version: 0.01 Speed: Up to 12 Mb/sec Manufacturer: proxmark.org Location ID: 0x14200000 / 21 Current Available (mA): 500 Current Required (mA): 500 Extra Operating Current (mA): 0
8. Disconnect the Proxmark3 from USB.
9. Compile the bootrom, OS and software
make clean; make
10. Compile HID compatible flasher program, in order to flash the newer bootloader image.
cd client/hid-flasher;make
("ld: warning: directory not found for option '-L/usr/local/lib'" is benign and can be ignored)
11. Install the dummy kernel driver to disconnect Apple's HID drivers from the Proxmark3 (requires super-user permissions):
sudo make install_kext sudo kextcache -system-caches
(reboot may be required if step 13 fails)
12. Press the button on Proxmark3 and KEEP IT PRESSED while you reconnect the Proxmark3 to USB. The Proxmark3 LED's RED & YELLOW lights up.[sidenote:] After five seconds you can release the button.
13. Use the HID flasher to upgrade the bootrom:
./flasher -b ../../bootrom/obj/bootrom.elf
14. Return to the root of the source code:
cd ../..
15. Disconnect the Proxmark3 from USB. Press the button on Proxmark3 and KEEP IT PRESSED while you reconnect the Proxmark3 to USB. KEEP THE BUTTON PRESSED! The Proxmark3 LED's RED & YELLOW lights up [sidenote:]
16. While keeping the button pressed, figure out the device name of the Proxmark3:
ls /dev/cu*
You should see a device named "/dev/cu.usbmodem####" where the #### is a number. If there are more than one usbmodem, you can disconnect the Proxmark3 and see which one disappears.
17. While still keeping the button pressed, use the CDC flasher to update the FPGA and OS:
./client/flasher /dev/cu.usbmodem#### armsrc/obj/fullimage.elf
18. Disconnect the Proxmark3 from the USB and release the button.
Skip to Testing, as your software is compiled and up to date.
19. Compile the bootrom, OS and software
make clean; make
20. Disconnect the Proxmark3 from USB. Press the button on Proxmark3 and KEEP IT PRESSED while you reconnect the Proxmark3 to USB. You can release the button when you see orange and red LED lit side by side. [sidenote:]
- For Elechouse v2 Proxmark3 or Elechouse v3 Proxmark3 Easy you do not need to press button
ls /dev/cu*
You should see a device named "/dev/cu.usbmodem####" where the #### is a number. If there are more than one usbmodem, you can disconnect the Proxmark3 and see which one disappears.
If you already have the new CDC Bootrom, but want to update it to the current Version:
Enter your Proxmark3 directory.
22. Update the bootrom, FPGA and OS:
./client/flasher /dev/cu.usbmodem#### -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
23. Disconnect the Proxmark3 from the USB
24. Connect the Proxmark3 to the USB. Wait a few Seconds for it to initialize.
25. Figure out the device name of the Proxmark3:
ls /dev/cu*
You should see a device named "/dev/cu.usbmodem####" where the #### is a number. If there are more than one usbmodem, you can disconnect the Proxmark3 and see which one disappears.
If this is no device, try reseting the kernal extensions by:
sudo rm -rf /System/Library/Extensions/Proxmark3.kext sudo make install_kext sudo kextcache -system-caches
26. Run the proxmark client and output the versions:
cd proxmark3/client ./proxmark3 /dev/cu.usbmodem#### hw version
Example output For Proxmark3 v2:
proxmark3> hw version Prox/RFID mark3 RFID instrument bootrom: master/v2.2.0-142-g7ede3c7-dirty-suspect 2016-02-03 06:16:11 os: master/v2.2.0-142-g7ede3c7-dirty-suspect 2016-02-03 06:16:12 LF FPGA image built for 2s30vq100 on 2015/03/06 at 07:38:04 HF FPGA image built for 2s30vq100 on 2015/11/ 2 at 9: 8: 8 uC: AT91SAM7S512 Rev B Embedded Processor: ARM7TDMI Nonvolatile Program Memory Size: 512K bytes. Used: 167362 bytes (32). Free: 356926 bytes (68). Second Nonvolatile Program Memory Size: None Internal SRAM Size: 64K bytes Architecture Identifier: AT91SAM7Sxx Series Nonvolatile Program Memory Type: Embedded Flash Memory
27. Test your Antennas.
Proxmark3> hw tune
Example Output:
Measuring antenna characteristics, please wait...#db# DownloadFPGA(len: 42096) .....#db# DownloadFPGA(len: 42096) # LF antenna: 35.61 V @ 125.00 kHz # LF antenna: 26.81 V @ 134.00 kHz # LF optimal: 39.05 V @ 127.66 kHz # HF antenna: 25.10 V @ 13.56 MHz Displaying LF tuning graph. Divisor 89 is 134khz, 95 is 125khz. No GUI in this build!
28. Quit Proxmark Program:
Quit
Struggling with this manual? Do you miss some explanation or found something wrong or ambigious? Then please post in the Manual Feedback section of the forum. Any feedback is appreciated.