mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-09-20 15:26:13 +08:00
Document compilation options
This commit is contained in:
parent
e51b4f0fdd
commit
cbfd195abf
|
@ -1,6 +1,7 @@
|
||||||
# Proxmark3 RDV4.0 Dedicated Github
|
# Proxmark3 RDV4.0 Dedicated Github
|
||||||
|
|
||||||
This repo is based on iceman fork for Proxmark3. It is dedicated to bringing the most out of the new features for Proxmark3 RDV4.0 new hardware and design.
|
This repo is based on iceman fork for Proxmark3. It is dedicated to bringing the most out of the new features for Proxmark3 RDV4.0 new hardware and design.
|
||||||
|
Note that it also supports other Proxmark3 platforms as well!
|
||||||
|
|
||||||
[![Build status](https://ci.appveyor.com/api/projects/status/ct5blik2wa96bv0x/branch/master?svg=true)](https://ci.appveyor.com/project/iceman1001/proxmark3-ji4wj/branch/master)
|
[![Build status](https://ci.appveyor.com/api/projects/status/ct5blik2wa96bv0x/branch/master?svg=true)](https://ci.appveyor.com/project/iceman1001/proxmark3-ji4wj/branch/master)
|
||||||
[![Latest release](https://img.shields.io/github/release/RfidResearchGroup/proxmark3.svg)](https://github.com/RfidResearchGroup/proxmark3/releases/latest)
|
[![Latest release](https://img.shields.io/github/release/RfidResearchGroup/proxmark3.svg)](https://github.com/RfidResearchGroup/proxmark3/releases/latest)
|
||||||
|
@ -15,7 +16,7 @@ This repo is based on iceman fork for Proxmark3. It is dedicated to bringing the
|
||||||
|[Development](#development) | [Important notes on ModemManager for Linux users](/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md) | [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) |
|
|[Development](#development) | [Important notes on ModemManager for Linux users](/doc/md/Installation_Instructions/ModemManager-Must-Be-Discarded.md) | [Validating proxmark client functionality](/doc/md/Use_of_Proxmark/1_Validation.md) |
|
||||||
|[Why didn't you base it on official PM3 Master?](#why-didnt-you-base-it-on-official-pm3-master)| [Homebrew (Mac OS X) & Upgrading HomeBrew Tap Formula](/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md) | [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md)|
|
|[Why didn't you base it on official PM3 Master?](#why-didnt-you-base-it-on-official-pm3-master)| [Homebrew (Mac OS X) & Upgrading HomeBrew Tap Formula](/doc/md/Installation_Instructions/Mac-OS-X-Homebrew-Installation-Instructions.md) | [First Use and Verification](/doc/md/Use_of_Proxmark/2_Configuration-and-Verification.md)|
|
||||||
|[PM3 GUI](#pm3-gui)|[Setup and build for Windows](/doc/md/Installation_Instructions/Windows-Installation-Instructions.md)|[Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)|
|
|[PM3 GUI](#pm3-gui)|[Setup and build for Windows](/doc/md/Installation_Instructions/Windows-Installation-Instructions.md)|[Commands & Features](/doc/md/Use_of_Proxmark/3_Commands-and-Features.md)|
|
||||||
|[Issues](#issues)|[Blue shark manual](/doc/bt_manual_v10.md) ||
|
|[Issues](#issues)|[Blue shark manual](/doc/bt_manual_v10.md) |[Advanced compilation parameters](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md)|
|
||||||
|[Notes on UART](/doc/uart_notes.md)|||
|
|[Notes on UART](/doc/uart_notes.md)|||
|
||||||
|[Notes on Frame format](/doc/new_frame_format.md)|||
|
|[Notes on Frame format](/doc/new_frame_format.md)|||
|
||||||
|[Notes on Termux / Android](/doc/termux_notes.md)|||
|
|[Notes on Termux / Android](/doc/termux_notes.md)|||
|
||||||
|
|
|
@ -1,5 +1,16 @@
|
||||||
# Compilation instructions
|
# Compilation instructions
|
||||||
|
|
||||||
|
## Tuning compilation parameters
|
||||||
|
|
||||||
|
The client and the Proxmark3 firmware should always be in sync.
|
||||||
|
Nevertheless, the firmware can be tuned depending on the Proxmark3 platform and options.
|
||||||
|
|
||||||
|
Indeed, the RRG/Iceman fork can be used on other Proxmark3 hardware platforms as well.
|
||||||
|
|
||||||
|
Via some definitions, you can adjust the firmware for a given platform, but also to add features like the support of the Blue Shark add-on or to select which standalone mode to embed.
|
||||||
|
|
||||||
|
To learn how to adjust the firmware, please read [Advanced compilation parameters](/doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md).
|
||||||
|
|
||||||
## Get the latest commits
|
## Get the latest commits
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -15,48 +26,23 @@ make clean && make all
|
||||||
|
|
||||||
## Flash the BOOTROM & FULLIMAGE
|
## Flash the BOOTROM & FULLIMAGE
|
||||||
|
|
||||||
|
In most cases, you can run the script `flash-all.sh` which try to auto-detect the port to use, on several OS.
|
||||||
|
|
||||||
|
For the other cases, specify the port by yourself. For example, for a Proxmark3 connected via USB under Linux:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
|
client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run the client
|
## Run the client
|
||||||
|
|
||||||
```sh
|
In most cases, you can run the script `proxmark3.sh` which try to auto-detect the port to use, on several OS.
|
||||||
cd client
|
|
||||||
./proxmark3 /dev/ttyACM0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Compiling for other boards
|
For the other cases, specify the port by yourself. For example, for a Proxmark3 connected via USB under Linux:
|
||||||
|
|
||||||
Available boards
|
Here, for example, for a Proxmark3 connected via USB under Linux:
|
||||||
|
|
||||||
| BOARD | PLATFORM |
|
|
||||||
|:---------------:|:---------------------------------------|
|
|
||||||
| `PM3RDV4` (def) | Proxmark3 rdv4 with AT91SAM7S512 |
|
|
||||||
| `PM3EVO` | Proxmark3 EVO with AT91SAM7S512 |
|
|
||||||
| `PM3EASY` | Proxmark3 rdv3 Easy with AT91SAM7S256 |
|
|
||||||
| `PM3RDV2` | Proxmark3 rdv2 with AT91SAM7S512 |
|
|
||||||
| `PM3OLD256` | Proxmark3 V1 with AT91SAM7S256 |
|
|
||||||
| `PM3OLD512` | Proxmark3 V1 with AT91SAM7S512 |
|
|
||||||
|
|
||||||
Create a file named `Makefile.platform` in the root directory of the repository:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
# PLATFORM=${BOARD}
|
|
||||||
# Following example is to compile sources for Proxmark3 rdv3 Easy
|
|
||||||
PLATFORM=PM3EASY
|
|
||||||
```
|
|
||||||
|
|
||||||
From this point:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# Clean and compile
|
|
||||||
make clean && make all
|
|
||||||
|
|
||||||
# Flash the BOOTROM & FULLIMAGE
|
|
||||||
client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf
|
|
||||||
|
|
||||||
# Run the client
|
|
||||||
cd client
|
cd client
|
||||||
./proxmark3 /dev/ttyACM0
|
./proxmark3 /dev/ttyACM0
|
||||||
```
|
```
|
||||||
|
|
82
doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md
Normal file
82
doc/md/Use_of_Proxmark/4_Advanced-compilation-parameters.md
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
# Advanced compilation parameters
|
||||||
|
|
||||||
|
The client and the Proxmark3 firmware should always be in sync.
|
||||||
|
Nevertheless, the firmware can be tuned depending on the Proxmark3 platform and options.
|
||||||
|
|
||||||
|
Indeed, the RRG/Iceman fork can be used on other Proxmark3 hardware platforms as well.
|
||||||
|
|
||||||
|
Via some definitions, you can adjust the firmware for a given platform, but also to add features like the support of the Blue Shark add-on or to select which standalone mode to embed.
|
||||||
|
|
||||||
|
## Client
|
||||||
|
|
||||||
|
The client doesn't depend on the capabilities of the Proxmark3 it's connected to.
|
||||||
|
So you can use the same client for different Proxmark3 platforms, given that everything is running the same version.
|
||||||
|
|
||||||
|
## Firmware
|
||||||
|
|
||||||
|
By default, the firmware is of course tuned for the Proxmark3 Rdv4.0 device, which has built-in support for 256kb onboard flash SPI memory, Sim module (smart card support), FPC connector.
|
||||||
|
These features make it very different from all other devices, there is non other like this one.
|
||||||
|
|
||||||
|
**Recommendation**: if you don't have a RDV4, we strongly recommend your device to have at least a 512kb arm chip, since this repo is on the very edge of 256kb limit.
|
||||||
|
|
||||||
|
A firmware built for the RDV4 can still run on the other platforms as it will auto-detect during boot that external SPI and Sim are not present, still it will boot faster if it's tuned to the platform.
|
||||||
|
|
||||||
|
If you need to tune things and save the configuration, create a file `Makefile.platform` in the root directory of the repository, see `Makefile.platform.sample`.
|
||||||
|
For an up-to-date exhaustive list of options, you can run `make PLATFORM=`.
|
||||||
|
|
||||||
|
## PLATFORM
|
||||||
|
|
||||||
|
Here are the supported values you can assign to `PLATFORM` in `Makefile.platform`:
|
||||||
|
|
||||||
|
| PLATFORM | DESCRIPTION |
|
||||||
|
|-----------------|----------------------------------------|
|
||||||
|
| PM3RDV4 (def) | Proxmark3 rdv4 with AT91SAM7S512 |
|
||||||
|
| PM3EVO | Proxmark3 EVO with AT91SAM7S512 |
|
||||||
|
| PM3EASY | Proxmark3 rdv3 Easy with AT91SAM7S256 |
|
||||||
|
| PM3RDV2 | Proxmark3 rdv2 with AT91SAM7S512 |
|
||||||
|
| PM3OLD256 | Proxmark3 V1 with AT91SAM7S256 |
|
||||||
|
| PM3OLD512 | Proxmark3 V1 with AT91SAM7S512 |
|
||||||
|
|
||||||
|
By default `PLATFORM=PM3RDV4`.
|
||||||
|
|
||||||
|
Known issues:
|
||||||
|
|
||||||
|
* 256kb Arm chip devices: The compiled firmware image from this repo may/will be too large for your device.
|
||||||
|
* PM3 Evo: it has a different led/button pin assignment. It tends to be messed up.
|
||||||
|
|
||||||
|
## PLATFORM_EXTRAS
|
||||||
|
|
||||||
|
Here are the supported values you can assign to `PLATFORM_EXTRAS` in `Makefile.platform`:
|
||||||
|
|
||||||
|
| PLATFORM_EXTRAS | DESCRIPTION |
|
||||||
|
|-----------------|----------------------------------------|
|
||||||
|
| BTADDON | Proxmark3 rdv4 BT add-on |
|
||||||
|
|
||||||
|
By default `PLATFORM_EXTRAS=`.
|
||||||
|
|
||||||
|
If you have installed a Blue Shark add-on on your RDV4, define `PLATFORM_EXTRAS=BTADDON` in your `Makefile.platform`.
|
||||||
|
|
||||||
|
|
||||||
|
## STANDALONE
|
||||||
|
|
||||||
|
The RRG/Iceman fork gives you to easily choose which standalone mode to embed in the firmware.
|
||||||
|
|
||||||
|
Here are the supported values you can assign to `STANDALONE` in `Makefile.platform`:
|
||||||
|
|
||||||
|
| STANDALONE | DESCRIPTION |
|
||||||
|
|-----------------|----------------------------------------|
|
||||||
|
| | No standalone mode
|
||||||
|
| LF_SAMYRUN (def)| HID26 read/clone/sim - Samy Kamkar
|
||||||
|
| LF_ICERUN | standalone mode skeleton - iceman
|
||||||
|
| LF_PROXBRUTE | HID ProxII bruteforce - Brad Antoniewicz
|
||||||
|
| LF_HIDBRUTE | HID corporate 1000 bruteforce - Federico dotta & Maurizio Agazzini
|
||||||
|
| HF_YOUNG | Mifare sniff/simulation - Craig Young
|
||||||
|
| HF_MATTYRUN | Mifare sniff/clone - Matías A. Ré Medina
|
||||||
|
| HF_COLIN | Mifare ultra fast sniff/sim/clone - Colin Brigato
|
||||||
|
| HF_BOG | 14a sniff with ULC/ULEV1/NTAG auth storing in flashmem - Bogito
|
||||||
|
|
||||||
|
By default `STANDALONE=LF_SAMYRUN`.
|
||||||
|
|
||||||
|
## Next step
|
||||||
|
|
||||||
|
See [Compilation instructions](/doc/md/Use_of_Proxmark/0_Compilation-Instructions.md)
|
Loading…
Reference in a new issue