4.1 KiB
Proxmark 3 on Android
Table of Contents
- Requirements
- Notes
- Tested setups
- OnePlus 5 (arm64, USB-C)
- Nexus 5X (arm64, USB-C)
- Xiaomi Mi Mix 2S (arm64, USB-C)
- OnePlus 5T (arm64, USB-C)
- Samsung Galaxy Tab S2 (arm64, MicroUSB)
- Setup
- Testing
- Troubleshooting
Requirements
^Top
- Android phone
- Kernel with one of:
- USB_ACM driver
- module loading enabled
- published sources
- Root
- Termux
Notes
^Top From official Proxmark3 wiki:
In any case, you would need a USB-C to A or USB-OTG cable to connect Proxmark3 to your Android device. Some Android devices may not supply enough power (USB-OTG = 100mA), and need a USB Y-cable and external battery, otherwise they will get strange failures. ref : https://github.com/Proxmark/proxmark3/wiki/android
Tested setups
^Top
-
OnePlus 5 (arm64, USB-C)
-
Nexus 5X (arm64, USB-C)
-
Xiaomi Mi Mix 2S (arm64, USB-C)
-
OnePlus 5T (arm64, USB-C)
-
Samsung Galaxy Tab S2 (arm64, MicroUSB)
Setup
^Top
Setting up Termux
^Top
Install Termux and start it
Install Proxmark3 package
^Top
Run the following commands:
pkg install proxmark3 tsu
Optional: Building Proxmark3 client from source
pkg install make clang clang++ readline libc++ git tsu
git clone https://github.com/RfidResearchGroup/proxmark3.git
cd proxmark
make clean && make client
USB_ACM
^Top
You need the USB_ACM
driver enabled and working to communicate with the Proxmark3. To see if it's working, run tsudo ls /dev/tty*
and it should list /dev/ttyACM0
(or similar). If you see this, congratulations, skip this step!
Enable the driver
^Top
If your kernel has module loading enabled, you should be able to build the module separately and load it on your system without any changes. Otherwise, grab your kernel sources and edit your build config to include CONFIG_USB_ACM=y
. On the tested kernel, this was under: android_kernel_oneplus_msm8998/arch/arm64/configs/omni_oneplus5_defconfig
Building the kernel
^Top
If using a custom kernel, refer to the build instructions provided by its maintainer. Otherwise, follow the standard Linux kernel build procedure
Flashing the kernel
^Top
You can flash the kernel however it suits you. On the tested device, this was achieved using TWRP, the most popular custom recovery
Testing
^Top
Open Termux and start the Proxmark3 client:
tsudo proxmark3/client/proxmark3 /dev/ttyACM0
Everything should work just like if it was your PC!
Troubleshooting
^Top
dmesg | grep usb
- useful debug info/proc/config.gz
- contains your kernel's build configuration. Look forCONFIG_USB_ACM
, which should be enabled