884 Commits
Author SHA1 Message Date
GameTec-liveandGitHub f06efdf815 Merge pull request #413 from nieldk/t55write
T55write
2026-05-08 17:26:51 +02:00
GameTec-liveandGitHub 1a769a0c4a Merge pull request #417 from azuwis/fix-hf-mf-eview
fix: hf mf eview param error due to chunk exceeding 32-block limit
2026-05-07 21:20:58 +02:00
Niel NielsenandGitHub 394781a45f Add files via upload 2026-05-07 20:08:23 +02:00
Niel NielsenandGitHub 36daf7038c Add files via upload 2026-05-07 20:07:23 +02:00
Niel Nielsen f8b0ae6085 FEAT: hf 14a auth-trace 2026-05-07 17:46:53 +02:00
Niel NielsenandGitHub 5c4cf13124 Merge branch 'RfidResearchGroup:main' into t55write 2026-05-07 13:54:35 +02:00
GameTec-liveandGitHub cce9d5b48d Merge pull request #419 from azuwis/fix-hf14a-raw
fix: hf14a_raw should return data bytes, not Response object
2026-05-07 11:24:48 +02:00
Zhong Jianxin d2c1f43a0e fix: hf14a_raw should return data bytes, not Response object
Callers treat the return value as bytes (len(), slicing), but hf14a_raw
was returning the Response object itself, causing TypeError.
2026-05-06 21:05:44 +08:00
Zhong Jianxin 874bb49485 fix: hf mf eview param error due to chunk exceeding 32-block limit
The firmware limits mf1_read_emu_block_data to at most 32 blocks per
request, but eview's chunk_count only honored data_max_length (256).
Added the same 32-block cap already used by esave.
2026-05-06 18:21:47 +08:00
Niel NielsenandGitHub bba432c579 Add files via upload 2026-05-01 20:14:24 +02:00
Niel NielsenandGitHub f7feda5dc9 Add files via upload 2026-05-01 18:45:52 +02:00
Niel NielsenandGitHub 8555f86c22 Merge branch 'RfidResearchGroup:main' into t55write 2026-05-01 17:52:45 +02:00
Niel NielsenandGitHub c63cc16bb5 Add files via upload 2026-05-01 17:50:32 +02:00
GameTec-liveandGitHub e4a6e74b45 Merge pull request #387 from naaraxi/main
Support for changing the wake time in the client
2026-05-01 16:30:25 +02:00
naaraxi 0460d9b95e Support for changing the wake time in the client 2026-05-01 14:36:52 +03:00
GameTec-liveandGitHub d7b8e63966 Merge pull request #406 from nieldk/t55write
hf 14a sniff improvements for nonce collection and crack, fence to catch missing or blocked mfkey binaries
2026-04-30 17:56:42 +02:00
Niel Nielsen 285d81b31e fix: restore executable permission to chameleon_cli_main.py 2026-04-28 20:36:26 +00:00
Niel NielsenandGitHub fc35ce41ba Merge branch 'RfidResearchGroup:main' into t55write 2026-04-28 22:08:46 +02:00
GameTec-liveandGitHub dc4c6fdbb0 Merge pull request #403 from DGinefra/main
Add iOS client "MCT Mifare Chameleon Tool" to compatible applications
2026-04-25 10:38:17 +02:00
GameTec-liveandGitHub 763ea77cbd Merge pull request #379 from andrassmuk/fix/issue-378-mingw-pthread
fix: use native winpthreads for MinGW/MSYS2 Windows builds
2026-04-25 08:02:57 +02:00
Niel NielsenandGitHub de1d9f6c28 T55xx PAC clone
Add lf clone PAC command
2026-04-24 13:21:48 +02:00
Niel NielsenandGitHub ae345c6a59 Fix ADC buffer dimensions in ble_main.c 2026-04-24 11:41:59 +02:00
Niel Nielsen c3fd94ca8c hf 14a sniff, even more descriptive answers 2026-04-23 09:08:23 +02:00
Niel Nielsen 20d6136ee0 hf 14a sniff, more descriptive answers 2026-04-23 08:45:34 +02:00
Niel Nielsen 1e8c36f38c hf 14a sniff improvements for nonce collection and crack, fence to catch missing or blocked mfkey binaries 2026-04-23 07:58:57 +02:00
GameTec-liveandGitHub 75eb389fe9 Merge pull request #401 from nieldk/t55write
T55xx clone
2026-04-19 15:18:46 +02:00
Niel Nielsen 4406788aef BUG: reverted bug that was reintroduced 2026-04-15 14:45:41 +02:00
Niel Nielsen 378c2b302f Various bug fixes 2026-04-15 06:29:10 +02:00
Niel Nielsen 76c961ed59 Added Ultra/Lite guard 2026-04-14 09:45:02 +02:00
Niel Nielsen d70a0dd63f fix hf14a sniff 2026-04-14 09:32:35 +02:00
GameTec-liveandGitHub fb6480f355 doc: Update text in brackets to clarify debug / beta state and iOS only nature 2026-04-13 13:18:17 +02:00
Niel NielsenandGitHub 0ce680b5c7 Refactor LF clone command and update usage examples 2026-04-13 06:39:03 +02:00
Niel NielsenandGitHub 63a465ce9b Fix argument parsing for 'fc' in ioprox 2026-04-12 20:10:36 +02:00
DGinefraandGitHub af8b8f3c5c Add iOS app "Mifare Chameleon Tool" to compatible applications
Hi,

I would like to add my iOS application "Mifare Chameleon Tool" to the list of compatible applications.

App Store link:
https://apps.apple.com/it/app/mifare-chameleon-tool/id6761231484

The app supports BLE communication with Chameleon Ultra.

Thanks!
2026-04-12 17:32:34 +02:00
DGinefraandGitHub c45286d8d1 Add Mifare Chameleon Tool (iOS) to compatible apps 2026-04-12 17:31:32 +02:00
Niel NielsenandGitHub 1a09fbaf0e Merge branch 'RfidResearchGroup:main' into t55write 2026-04-08 13:11:02 +02:00
Niel Nielsen 12284d5f71 Fix: emv scan truncation 2026-04-08 12:36:12 +02:00
GameTec-liveandGitHub 6d30d33aef Merge pull request #357 from fmuk/pr/nfcimport-v2
feat: add Flipper Zero .nfc file importer for MFU/NTAG slots
2026-04-07 20:47:18 +02:00
Niel Nielsen e4dca3fcc4 align with RRG 2026-04-07 10:57:08 +02:00
Niel Nielsen 350a774d7c align with RRG 2026-04-07 10:47:41 +02:00
Niel NielsenandNiel Nielsen 67c1c36212 Clarify exit method behavior with comments
Added comments to clarify behavior of exit method.
2026-04-07 10:36:15 +02:00
Niel NielsenandNiel Nielsen bbfda3070d Fix: T55 write commands help 2026-04-07 10:36:15 +02:00
Niel NielsenandNiel Nielsen e16505e6a7 FEAT! Add T55 write commands 2026-04-07 10:36:06 +02:00
Niel NielsenandNiel Nielsen a3d3c1fc34 Remove conditional compilation for PROJECT_CHAMELEON_ULTRA 2026-04-07 10:29:12 +02:00
Niel NielsenandNiel Nielsen fcf0c31ca5 Fix syntax error in app_cmd.c 2026-04-07 10:29:12 +02:00
Niel NielsenandNiel Nielsen 9183ac40e4 Add PROJECT_CHAMELEON_ULTRA specific commands 2026-04-07 10:28:51 +02:00
Niel NielsenandNiel Nielsen c7e038cc61 Remove duplicate rc522.h include
Removed duplicate rc522.h include and adjusted spacing.
2026-04-07 10:25:13 +02:00
Niel NielsenandNiel Nielsen efa2ea2c7b protocol ISO 14443-4 and emv scan, loading json file from PM3rdv4 2026-04-07 10:23:58 +02:00
Fauzan Mirza dc950c4f60 fix: correct nfcimport class placement after merge 2026-04-07 00:52:07 +02:00
Fauzan Mirza 7931150412 Merge remote-tracking branch 'origin/main' into pr/nfcimport-v2 2026-04-07 00:49:42 +02:00
GameTec-liveandGitHub 93c1e150ab Merge pull request #361 from azuwis/esave
Fix `param error` of `hf mf esave`
2026-04-06 18:30:30 +02:00
GameTec-liveandGitHub 92505b0364 Merge pull request #362 from kevihiiin/pac-emulation
Add LF PAC/Stanley (125kHz) Support
2026-04-06 18:29:46 +02:00
Kevin YuanandGitHub eddbb31c05 Merge branch 'main' into pac-emulation 2026-04-06 16:43:41 +01:00
GameTec-liveandGitHub b77af1e779 Merge pull request #389 from Crazycurly/main
feat(cli): integrate HardNested attack into autopwn
2026-04-04 20:12:31 +02:00
GameTec-liveandGitHub a4b11e441a Merge pull request #388 from taichunmin/usb-serial-number
Fix firmware application USB serial number
2026-04-04 20:09:59 +02:00
Kevin YuanandGitHub 3924ad134b Merge branch 'main' into pac-emulation 2026-04-02 14:17:42 +01:00
GameTec-liveandGitHub 91f2e46bcb Merge pull request #397 from nieldk/feat/lf-data-analysis
feat(data): add LF capture analysis commands
2026-04-02 12:40:10 +02:00
GameTec-liveandGitHub 78e78eb883 Merge pull request #396 from nieldk/feat/hf14a-sniff
feat(hf): add ISO14443A reader frame capture (hf 14a sniff)
2026-04-02 12:32:26 +02:00
Niel NielsenandGitHub 890f316ca0 Merge branch 'main' into feat/lf-data-analysis 2026-04-02 12:09:01 +02:00
GameTec-liveandGitHub 652f341ff9 Merge pull request #399 from nieldk/feat/lf-raw-sniff-v2
feat(lf): add raw LF field ADC capture (lf sniff)
2026-04-02 11:47:06 +02:00
Niel Nielsen d0a8ade9e4 feat(lf): add raw LF field ADC capture (lf sniff) 2026-04-02 11:16:32 +02:00
GameTec-liveandGitHub 0ac25caedc Merge pull request #398 from RfidResearchGroup/revert-395-feat/lf-raw-sniff
Revert "feat(lf): add raw LF field ADC capture (lf sniff)"
2026-04-02 11:09:15 +02:00
GameTec-liveandGitHub 74e2dac27e Revert "feat(lf): add raw LF field ADC capture (lf sniff)" 2026-04-02 11:07:16 +02:00
Niel NielsenandGitHub 27697f9344 Merge branch 'main' into feat/lf-data-analysis 2026-04-02 10:58:20 +02:00
Benjamin MøllerandGitHub dd27081cdf Merge branch 'main' into feat/hf14a-sniff 2026-04-02 10:50:53 +02:00
GameTec-liveandGitHub 4f9cc9ec7c Merge pull request #395 from nieldk/feat/lf-raw-sniff
feat(lf): add raw LF field ADC capture (lf sniff)
2026-04-02 10:44:33 +02:00
Benjamin MøllerandGitHub 3f68690399 Merge branch 'main' into feat/lf-raw-sniff 2026-04-02 10:40:44 +02:00
GameTec-liveandGitHub 88f7fda526 Merge pull request #394 from nieldk/feat/lf-em4x05-reader
feat(lf): add EM4x05/EM4x69 reader (RTF gap protocol)
2026-04-02 09:00:33 +02:00
Niel Nielsen 29c407464b fix: make each PR self-contained with all required source files 2026-04-02 08:14:18 +02:00
Niel Nielsen f65acdd26d fix: make each PR self-contained with all required source files 2026-04-02 08:14:17 +02:00
Niel Nielsen 5daad00953 fix: make each PR self-contained with all required source files 2026-04-02 08:14:16 +02:00
Niel Nielsen 0b6bb28fc1 fix(data): guard Ultra-only includes and processors for Lite build 2026-04-02 08:07:15 +02:00
Niel Nielsen cff829e81c fix(hf): guard Ultra-only includes and processors for Lite build 2026-04-02 08:06:26 +02:00
Niel Nielsen dcad76bf38 fix(lf): guard Ultra-only includes and processors for Lite build 2026-04-02 08:05:33 +02:00
Niel Nielsen 4b88bf57b9 fix(lf): guard Ultra-only includes and processors for Lite build 2026-04-02 08:04:41 +02:00
Niel Nielsen ce932d2e8a feat(data): add LF capture analysis commands 2026-04-02 07:43:16 +02:00
Niel Nielsen 164d450f87 feat(hf): add ISO14443A reader frame capture (hf 14a sniff) 2026-04-02 07:42:26 +02:00
Niel Nielsen 264c2799a7 feat(lf): add raw LF field ADC capture (lf sniff) 2026-04-02 07:41:24 +02:00
Niel Nielsen e02918b867 feat(lf): add EM4x05/EM4x69 reader (RTF gap protocol) 2026-04-02 07:34:16 +02:00
Daniel Wagner a421e99648 request hfxo 2026-03-30 15:37:29 +01:00
Sam 6f4722a964 feat(cli): integrate hardnested attack into autopwn for HardNested vulnerable cards
When autopwn detects a HardNested vulnerable card (nt_level=2) with some known keys,
it now automatically attempts to recover remaining keys using the hardnested attack,
instead of only printing an advisory message. The implementation:

- Iterates over each missing key slot, picking a known key before each attempt
  (allows newly recovered keys to be reused for subsequent targets)
- Invokes hardnested.recover_key() with standard parameters (200 max runs, 3 max attempts)
- After each found key, checks if it is reusable for other sectors
- Falls back to senested attack if hardnested does not recover all keys

This matches the existing behavior for nested and static-encrypted-nested attacks.
2026-03-25 16:30:48 +08:00
Kevin Yuan 9e58461f9a Potential fix: Compare glitch in PWM module 2026-03-24 17:04:18 +00:00
Kevin Yuan ac859f7531 Add PAC/Stanley LF entry 2026-03-24 15:44:12 +00:00
Kevin Yuan f5d721bbfd PAC/Stanley CLI: replace --id with --cn/--raw (PM3 parity)
Split the single --id argument into --cn (8 ASCII chars) and --raw
(32 hex char T55XX bitstream, directly compatible with PM3 raw output).
Add Python-side PAC bitstream encoder/decoder for raw format support.
Output now shows CN and Raw labels matching PM3's format.

Add NRF_LOG module registration to pac.c for debug logging,
consistent with other protocol implementations.

Reassign PAC command IDs (3014/3015) to avoid collision with ioProx
(3010/3011) after rebase onto upstream/main.
2026-03-24 15:04:41 +00:00
Kevin Yuan 69327ded7d Clean up PAC/Stanley CLI: remove debug command, accept ASCII IDs, handle unknown tag types gracefully
- Remove lf pac debug command (development-only)
- Accept both 16-hex and 8-ASCII card ID formats with 7-bit validation
- Add T55xx write command under lf pac write
- Handle unknown TagSpecificType values in slot list without crashing
- Auto-initialize slot data when setting tag type
- Simplify pac_write_to_t55xx by removing unused key parameters
2026-03-24 14:41:22 +00:00
Kevin Yuan ccf4510c1c Improve PAC/Stanley NRZ reader reliability
Three fixes that together bring rapid-fire read reliability from ~20%
to 100%:

- Add MIN_SPIKE_CAP floor (8000) to prevent spike_cap from clipping
  NRZ high when prescan correctly captures NRZ low. Without this,
  spike_cap = raw_min*3 ≈ 2820 collapses the signal range.

- Reorder carrier-before-SAADC in pac_read(): start the 125kHz field
  and wait 10ms before enabling ADC sampling, so prescan calibration
  sees real NRZ signal levels rather than T55XX power-on-reset noise.

- Add auto-recalibration: if no valid frame is found after 20480
  Phase 3 samples (~164ms, ~5 frame periods), reset the decoder to
  Phase 1 and re-calibrate from fresh samples. This gives ~3
  calibration attempts per 500ms scan window instead of just one.

Tested with Proxmark3 sim (15 consecutive rapid-fire reads, 100%) and
T55XX tag (write-read roundtrip + 15x rapid-fire, 100%).
2026-03-24 14:38:46 +00:00
Kevin Yuan 8442bea4c1 Add PAC/Stanley T55XX write support
Add pac_t55xx_writer() for encoding PAC card data into T55XX blocks,
along with the T5577_PAC_CONFIG (NRZ/Direct, RF/32, password-protected,
4 data blocks). Wire DATA_CMD_PAC_WRITE_TO_T55XX (3011) through the
command processor, dispatch table, and Python client.
2026-03-24 14:38:46 +00:00
Kevin Yuan 17ff2abf60 Replace moving average with PM3-style per-sample thresholding and fix integer overflows
Replace the 32-sample moving average + hysteresis demodulation with
Proxmark3-inspired per-sample thresholding and dead zone. This
eliminates ~16 samples of group delay per edge, reducing timing
jitter from ~11 samples to ~2-3 samples.

The new approach:
- Prescan: track raw_min, compute spike_cap (unchanged)
- Warmup: track min/max of clipped samples directly (not averaged)
- Detection: per-sample dead zone classification — sample >= high
  threshold → 1, sample <= low threshold → 0, between → keep
  previous state. Thresholds set at 75% fuzz of signal range.

Removes the avg_buf[32] circular buffer, avg_sum, avg_idx, and
sum-unit threshold/hysteresis state. Struct is 72 bytes smaller.

Widen integer types to prevent overflow UB:
- sample_count: uint16_t -> uint32_t (overflows at 524ms)
- interval, nbits: uint16_t -> uint32_t (matching sample_count width)
2026-03-24 14:38:46 +00:00
Kevin Yuan 2fd1a260cf Add PAC/Stanley LF tag emulation support
Implements NRZ/Direct modulation at RF/32 for PAC/Stanley tag emulation.
The modulator encodes 8-byte ASCII card IDs into 128-bit NRZ frames
(0xFF sync + 12 UART frames) and generates PWM waveforms using constant
output levels (compare=counter_top for HIGH, compare=0 for LOW).

Firmware: modulator in pac.c, load/save/factory callbacks in lf_tag_em,
tag_emulation registration, SET/GET_EMU_ID commands (5006/5007).
CLI: pac_set/get_emu_id methods, 'lf pac econfig' command, hw slot list
display for PAC tags.
2026-03-24 14:38:46 +00:00
Kevin Yuan c494a2cc81 Add PAC/Stanley LF tag reading support
Implements NRZ/Direct modulation decoder for PAC/Stanley 125kHz cards
using SAADC ADC sampling with spike-aware threshold calibration.
The LC antenna produces brief high-amplitude transients at NRZ transitions
which are clipped before the moving-average filter to isolate the actual
data levels.
2026-03-24 14:37:25 +00:00
taichunmin c51051b30e Fix firmware application USB serial number 2026-03-24 00:44:36 +08:00
Fauzan MirzaandClaude Opus 4.6 acb8959117 docs: add nfcimport entry to CHANGELOG
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 23:52:35 +01:00
Fauzan MirzaandClaude Opus 4.6 193f66acdd feat: add --amiibo flag to hf mfu nfcimport for PWD/PACK derivation
Real NTAG 215 chips never reveal the stored password over NFC, so
Flipper .nfc dumps always have zeros for pages 133-134 (PWD/PACK).
This causes readers to reject the emulated tag when they attempt
PWD_AUTH as part of their amiibo validation flow.

The --amiibo flag derives the correct PWD from the UID using the
well-known XOR algorithm and sets PACK to the standard 0x8080,
enabling proper authentication with Nintendo devices.

Usage: hf mfu nfcimport -f Kirby.nfc -s 6 --amiibo

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 23:52:13 +01:00
Fauzan MirzaandClaude Opus 4.6 a5847c75ef feat: add Flipper Zero .nfc file importer for MFU/NTAG slots
Add `hf mfu nfcimport` command to import Flipper Zero .nfc files
directly into ChameleonUltra emulator slots. Supports NTAG 210/212/
213/215/216, Mifare Ultralight, Ultralight C, and Ultralight EV1.

The importer parses the Flipper .nfc format and configures the slot
with the correct tag type, anti-collision data (UID/ATQA/SAK),
GET_VERSION response, READ_SIG signature, counter values, and full
page data.

Handles NTAG counter index mapping (Flipper's NFC counter index 2
maps to firmware internal index 0) and gracefully skips unsupported
counters with a warning.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 23:52:13 +01:00
GameTec-liveandGitHub e5d615d512 Merge pull request #367 from bernadic/feat/ioprox
feat(lf): add ioProx support (read, emulate, clone)
2026-03-20 18:46:07 +01:00
andrassmuk 8e28d1a40e fix: use native winpthreads for MinGW/MSYS2 builds on Windows
The pthreads4w dependency uses MSVC-specific architecture detection
(_M_X64, _M_IX86 macros) which fails under MinGW/MSYS2/ProxSpace
with "unknown not supported in version.rc".

MinGW-w64 ships with winpthreads, so only MSVC builds need pthreads4w.

Fixes #378
2026-03-19 15:06:33 +01:00
Jozef Bernadic e4d70d1417 fix(cmd): resolve ioProx command ID conflict with #362 2026-03-19 08:25:59 +01:00
Jozef Bernadic 76bb091247 docs(changelog): add ioProx entry 2026-03-03 16:58:34 +01:00
Jozef Bernadic 1b6701661d feat(cli): add ioProx commands 2026-03-03 16:24:26 +01:00
Jozef Bernadic 202c6a677e feat(lf): integrate ioProx into LF reader, emulation and T55xx writer pipeline 2026-03-03 16:24:26 +01:00
Jozef Bernadic 36645932de feat(lf): add ioProx support (reader, emulation and T55xx writer) 2026-03-03 16:24:08 +01:00
Jozef Bernadic e1a2f698f4 chore: ignore local IDE files and build artifacts 2026-03-03 15:16:27 +01:00
GameTec-liveandGitHub 7846bca44b Merge pull request #364 from luu176/main
Add `hf mf autopwn` command with key saving and card dump
2026-02-24 18:35:19 +01:00
GameTec-liveandGitHub 7f71201e16 Merge pull request #363 from WillyJL/feat/rgb-marquee-improvements-upstream
New Symmetrical LED Animation Mode and Improved Minimal Mode
2026-02-19 11:57:05 +01:00
Luu dbc8ce0526 autopwn command added 2026-02-18 22:40:38 +01:00
WillyJL 24259f78b9 Update CHANGELOG.md 2026-02-18 20:58:33 +01:00
WillyJL 4bafe186b3 Symmetric animation mode for boot, shutdown, usb 2026-02-18 20:47:56 +01:00
WillyJL 402665cd75 Minimal shutdown and post-flash boot animations 2026-02-18 20:47:55 +01:00
WillyJL 9f25debe4d Fix rgb_marquee_sweep_from_to() to the left 2026-02-18 20:47:55 +01:00
WillyJL f2225767a2 Give useful names to ledblink*() functions 2026-02-18 20:47:54 +01:00
Zhong Jianxin 9d483cdc5e Fix param error of hf mf esave
Step to reproduce:

```
[USB] chameleon --> hf mf esave -f test.bin
API request fail, param error
```

Commit d95112f821 change
NETDATA_MAX_DATA_LENGTH from 512 to 4096, this increase max block count
to 256, while [cmd_processor_mf1_read_emu_block_data][1] hardcode max
block count to 32

[1]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/b108c84af9b473c840ddcae6f769502adb6c5aa5/firmware/application/src/app_cmd.c#L1088
2026-02-17 09:52:59 +08:00
GameTec-liveandGitHub b108c84af9 Merge pull request #355 from LupusE/main
Fix broken CLI after multiple merges
2026-02-07 23:19:22 +01:00
Benjamin Moeller c7aebdf168 Fix Part2, because of multiple PR used the same ID. 2026-02-07 23:16:08 +01:00
Benjamin MøllerandGitHub 643dd03ff6 Update chameleon_enum.py
ReFix, because of link to firmware/application/src/data_cmd.h
2026-02-07 23:12:22 +01:00
Benjamin Moeller fa35c8ae3f fix double value in unique enumeration 2026-02-07 22:59:43 +01:00
Benjamin Moeller 5ee9254012 Delete invalid escape charater in message 2026-02-07 22:58:44 +01:00
GameTec-liveandGitHub dfa2680d51 Merge pull request #201 from rickNmorty2/enh-clone
Add CLI commands to dump and clone tag
2026-02-07 20:47:38 +01:00
GameTec-liveandGitHub d7ae363099 Merge pull request #343 from LupusE/main
Fix compiler error  `a label can only be part of a statement and a de…
2026-02-07 20:44:36 +01:00
GameTec-liveandGitHub 4d3479943f Merge branch 'main' into enh-clone 2026-02-07 20:43:59 +01:00
GameTec-liveandGitHub 38e3567add Merge pull request #306 from merlokk/lf_read_adc
Adds generic ADC read functionality
2026-02-07 20:42:25 +01:00
GameTec-liveandGitHub 2c7c3eeb4d Merge pull request #352 from suut/fix_bad_missing_tools_warning
Fix bad missing tools warning
2026-02-06 23:58:07 +01:00
Benjamin MøllerandGitHub 7a69e68b3f Update nfc_mf0_ntag.c (braces instead of simicolon)
Changed formatting of the fix for a more union layout, as suggested in the comments.
2026-02-06 22:36:02 +01:00
suut 688bb452aa Fix bad missing tools warning 2026-02-06 21:39:19 +01:00
GameTec-liveandGitHub 9ae0755d80 Merge pull request #332 from RickConsole/fix-hidprox-cli-args
fix hidprox UnboundLocalError cli arg error + hidprox slot set warning
2026-02-06 11:19:48 +01:00
GameTec-liveandGitHub 3755bc24ce Merge pull request #307 from azuwis/hf-14a-config
Add `hf 14a config` to deal with badly configured cards
2026-02-06 11:19:23 +01:00
Benjamin MøllerandGitHub 5d2946ffaa Merge branch 'RfidResearchGroup:main' into main 2026-02-04 13:10:05 +01:00
GameTec-liveandGitHub 41937c52a3 Merge pull request #338 from naaraxi/main
Add Electra intercom tag support with slot auto switch
2026-02-03 22:45:19 +01:00
DXLandGitHub db3e53dd08 Merge pull request #346 from YuyangisCoding/main
fix cli arg parser for FIELD_OFF_DO_RESET
2026-02-03 19:16:59 +08:00
Alexandru MazâluandGitHub 35192d9fc1 Merge branch 'RfidResearchGroup:main' into main 2026-02-03 12:49:45 +02:00
GameTec-liveandGitHub c3a35ffd9b Merge pull request #345 from suut/fix_windows_build
Fix Windows build
2026-02-03 05:54:03 +01:00
yuyangzhang eaa366b453 fix cli arg parser for FIELD_OFF_DO_RESET 2026-02-03 12:16:51 +10:00
suut 23181d84f1 Run GitHub actions 2026-02-03 00:34:05 +01:00
Rick ConsoleandGitHub 997f6bcaab Merge branch 'main' into fix-hidprox-cli-args 2026-02-02 15:58:42 -05:00
suut 6e4a564417 Fix typo in CMakeLists.txt 2026-02-02 21:25:14 +01:00
suut f6ac86cc19 Fix missing bswap64 on Windows 2026-02-02 21:22:01 +01:00
suut f1ae0e0bb0 Disable the "deprecated declaration" warning for MSVC build 2026-02-02 20:35:59 +01:00
Benjamin Moeller 54b302356a Fix compiler error a label can only be part of a statement and a declaration is not a statement 2026-02-02 17:00:21 +01:00
DXLandGitHub eeaca1604f Merge pull request #342 from tommiv/cli-field-off-reset
Added FIELD_OFF_DO_RESET support to cli hf mf econfig
2026-02-02 21:29:05 +08:00
Zhong Jianxin b967bdcd98 Add hf 14a config to deal with badly configured cards 2026-02-02 20:48:03 +08:00
Konstantin Ilchenko 613987b4f4 Shortened set_field_off_do_reset to field_off_do_reset CLI flags 2026-02-02 12:21:39 +02:00
Konstantin Ilchenko c1b9df0e5d Added FIELD_OFF_DO_RESET support to cli hf mf econfig 2026-02-02 12:18:26 +02:00
GameTec-liveandGitHub 6686acf714 Merge pull request #314 from dogty/main
Fixed FAST_READ command and handling of dynamic and static locks for …
2026-02-01 15:06:40 +01:00
GameTec-liveandGitHub d303ddb9c7 Merge pull request #316 from brewt/hidprox-hw-slot-list-formatting
Fix HIDProx formatting with `hw slot list`
2026-02-01 15:05:53 +01:00
GameTec-liveandGitHub ef76f794d0 Merge pull request #341 from MusicLeecher/main
Fix typo in hid prox econfig and add ACTProx HID card type
2026-02-01 15:04:37 +01:00
Alexandru MazâluandGitHub d1ad03a567 Merge branch 'RfidResearchGroup:main' into main 2026-01-30 23:57:30 +02:00
GameTec-liveandGitHub 13d0060ed7 Merge pull request #337 from suut/cli_android_support
TCP transport in the CLI to support Android (Termux)
2026-01-30 21:52:20 +01:00
GameTec-liveandGitHub 055ae2322e Merge branch 'main' into cli_android_support 2026-01-30 21:51:46 +01:00
Gabriel Cardoso 2f86756948 fix tipo in previous commint 2026-01-26 19:10:39 +00:00
Gabriel Cardoso 8ed2677ba2 - added ACT Prox HID format 2026-01-26 19:06:34 +00:00
Gabriel Cardoso 71e45a3194 - fix typo in hidprox econfig set/get function 2026-01-26 18:34:06 +00:00
Alexandru Mazalu c1c2b66882 Add Electra intercom tag support with slot auto switch 2026-01-24 14:45:15 +02:00
DXLandGitHub f2bea7d4ea Merge pull request #299 from xianglin1998/main
Fix some bugs & Performance improvement
2026-01-24 19:44:04 +08:00
dxl ca743273af Added cmd for set mf1 config 'field_off_do_reset' 2026-01-24 19:39:49 +08:00
dxl c0e7cb18f7 Export some functions related to mf1 emulation configuration. 2026-01-24 19:38:36 +08:00
dxl a25b4a8b64 Added MF1 configuration to enable/disable resetting NFC peripherals after leaving RF field. 2026-01-24 19:19:35 +08:00
DXLandGitHub 1543bac108 Merge branch 'RfidResearchGroup:main' into main 2026-01-24 17:54:15 +08:00
suut 8f0a9240ba Fix linter errors 2026-01-24 02:09:48 +01:00
suut b10f4ccb25 Fix build on Darwin 2026-01-24 01:59:03 +01:00
suut 0bc8287f14 Better Android detection 2026-01-24 01:48:03 +01:00
suut ec1bd33b5f Add TCP and Android (Termux) support 2026-01-24 01:30:19 +01:00
GameTec-liveandGitHub 53fe83d81a Merge pull request #331 from suut/issue-322__led_bug_after_battery_check
Fix LEDs being stuck on after battery check
2026-01-23 20:36:10 +01:00
GameTec-liveandGitHub 00de9663f3 Merge pull request #315 from brewt/color-string-em-read-fix
Fix error in `lf em 410x read` from color_string()
2026-01-21 22:56:47 +01:00
noprotoandPhilippe Teuwen 1ee7da63b1 Add initial ULCG/USCUID-UL support 2026-01-19 23:29:05 +01:00
Rick Console b272682546 fix hidprox UnboundLocalError cli arg error 2026-01-19 00:09:33 -05:00
suut 6a43ce6e05 Add information to changelog about the battery check 2026-01-18 17:53:29 +01:00
suut 9e7aa3635f Fix LEDs being stuck on after battery check
Signed-off-by: suut <suut@users.noreply.github.com>
2026-01-18 17:51:23 +01:00
dogty 11bafac176 fix(ntag): Check if the dynamic lock page can be written or not (for NTAG215, NTAG213 and NTAG216) 2025-11-03 14:46:37 +01:00
dogty 64f22dfc53 docs: updated changelog 2025-11-01 18:17:10 +01:00
dogty f6cde1629a fix(ntag): CFGLCK bit is checked before to see if CFG0 and CFG1 are writable even if a password is set (only for NTAG215, NTAG216 and NTAG213) 2025-11-01 18:17:09 +01:00
dogty 335ffee69d fix(ntag): The page lock check doesn't take into account the blocking lock bits (only for NTAG213, NTAG215 and NTA216) 2025-11-01 18:17:09 +01:00
dogty 494d397e7b fix(nfc 14a): The fast read command now handles the last block 2025-11-01 18:14:59 +01:00
dogty afacb2a565 fix: handle REQA and WUP commands for NFC tag 14a 2025-11-01 18:14:35 +01:00
Adrian YeeandGitHub efbf79e497 Fix HIDProx formatting with hw slot list
Fix HIDProx formatting to match the formatting of all other card types.
2025-10-30 16:53:33 -07:00
Adrian YeeandGitHub 7efde79235 Fix error in lf em 410x read from color_string()
Fix bug in color_string() usage introduced by 35d2f40 (bug #295).
2025-10-30 16:41:12 -07:00
GameTec-liveandGitHub 97dfe5b9a4 Merge pull request #295 from mischif/color-string
Use a function for colored strings
2025-10-13 21:44:00 +02:00
Oleg Moiseenko f5bed3c5b1 Adjusts LF ADC raw data processing
Adjusts the bit shift for ADC raw data conversion to refine the value range.
2025-10-09 09:42:43 +03:00
Oleg Moiseenko e2c6bfc9e1 Adds generic ADC read functionality
This introduces a new command to sample the ADC values from the LF antenna and returns them to the user.
2025-10-09 00:32:07 +03:00
Jeremy Brown e1b4218bb3 Fixed unnecessary formatting 2025-10-05 15:42:11 -04:00
dxl dabf1a415f Use a more thorough NFC peripheral reset strategy. 2025-09-23 11:08:27 +08:00
dxl 67357feba0 Parameter error should return STATUS_PAR_ERR 2025-09-23 00:56:55 +08:00
dxl 0858e325e5 Fix the bug where HEX printing of large data packets caused it to freeze. 2025-09-23 00:43:17 +08:00
dxl 1e8758bc1f Fixed bug that caused NFC peripheral devices to always respond with incorrect data due to special condition. 2025-09-23 00:38:01 +08:00
dxl 0448a369a3 Fixed a bug where the parameters were abnormal but the subsequent logic was still executed. 2025-09-23 00:33:05 +08:00
dxl d065a2f18e Improve the efficiency of USB packet reception. 2025-09-23 00:32:17 +08:00
Jeremy Brown d440d98d12 Cleaned up follow-up issues 2025-09-19 01:11:46 -04:00
dxl 50f72653db Fix the bug that cannot be compiled on the MSYS2 platform. 2025-09-19 12:45:32 +08:00
GameTec-liveandGitHub 8998621a47 Merge pull request #294 from RocketGod-git/feature/local-changes
Add option for NFC Field Generator
2025-09-12 19:12:27 +02:00
Jeremy Brown 35d2f40ff5 Switched to function for color stings 2025-09-11 11:52:05 -04:00
RocketGod b3b1fa9c71 Update app_main.c 2025-09-06 21:49:46 -07:00
RocketGod 0aacfcde24 Add option for NFC Field Generator
I've integrated the option for the NFC Field Generator into Python CLI and application files. TODO: GUI integration.
2025-09-06 21:46:22 -07:00
GameTec-liveandGitHub 964904fbfa Merge pull request #285 from jekkos/fix-senested-key-recovery
Fix for mf static nested key recovery
2025-09-02 19:44:25 +02:00
GameTec-liveandGitHub ea2a9410b3 Merge branch 'main' into fix-senested-key-recovery 2025-09-02 19:40:39 +02:00
GameTec_live 212a9ceccd docs: new release 2025-09-02 16:28:53 +02:00
GameTec-liveandGitHub 8e91d02ec2 Merge pull request #287 from jamisonderek/jamisonderek/lf-viking
Add LF Viking support
2025-09-02 16:13:52 +02:00
Derek Jamison 8c670f8554 Add LF Viking support 2025-08-29 11:00:02 -04:00
jekkos 62e904f114 Fix for static nested key recovery
When runnin static nested recovery, we run into a sector auth faild
error that stops the recovery process. Add a try/execpt handler so we
can continue to try all possibitlities
2025-08-28 21:55:06 +02:00
GameTec-liveandGitHub 09870c3fc5 Merge pull request #276 from Foxushka/ultralight-key-log
Mifare Ultralight key logger from reader
2025-08-19 19:59:39 +02:00
GameTec-liveandGitHub 13432c9080 Merge pull request #266 from azuwis/hardnested-execute-tool
Use execute_tool to simplify running hardnested tool
2025-08-19 11:42:35 +02:00
GameTec-liveandGitHub 7907efc852 Merge pull request #281 from taichunmin/cmd2015
fix error response of cmd MF1_CHECK_KEYS_ON_BLOCK
2025-08-14 11:16:44 +02:00
GameTec-liveandGitHub 4c1096d1b6 Merge pull request #239 from taichunmin/mfkey32
`hf mf elog --decrypt` skip records with found keys
2025-08-14 11:07:50 +02:00
GameTec-liveandGitHub 039c54a62f Merge pull request #279 from TeCHiScy/hidcopy
feat: offline HIDProx tag copy
2025-08-14 07:25:30 +02:00
GameTec-liveandGitHub 27e7d504c6 Merge pull request #275 from unkernet/python_39
Restore Python 3.9 compatibility for Chameleon CLI
2025-08-13 21:59:32 +02:00
taichunmin 06a873fca4 fix linter 2025-08-13 00:51:16 +08:00
taichunmin c396d06baa hf mf elog --decrypt skip records with found keys 2025-08-12 04:17:42 +08:00
taichunmin 234eeaafad fix error response of cmd MF1_CHECK_KEYS_ON_BLOCK 2025-08-12 04:15:19 +08:00
GameTec-liveandGitHub e12a116dea Merge pull request #280 from RfidResearchGroup/uv-pyrefly-contribution-guidelines
Add formatter and linter
2025-08-11 22:00:56 +02:00
GameTec_live b153212350 fix: links 2025-08-11 21:49:43 +02:00
GameTec_live 251804077d feat: pyrefly, uv, guidelines 2025-08-11 21:43:23 +02:00
GameTec-liveandGitHub 76f451fd8e Merge pull request #273 from Foxushka/bump-max-data-length
Bump NETDATA_MAX_DATA_LENGTH from 512 to 4096
2025-08-11 21:01:48 +02:00
TeCHiScy b4c1c63698 feat: offline HIDProx tag copy
- refines comments
- use unified code for `lf tag not found` error
- merge lf_em410x_data.h & lf_hidprox_data.h, remove unused macros
- split btn_fn_copy_ic_uid as btn_fn_copy_lf & btn_fn_copy_hf
- fixes offline em410x tag copy not working
- fixes conflict SAADC usage between battery level service & lf fsk demodulator
2025-08-11 21:01:04 +08:00
TeCHiScy 584284c5d5 chore: remove unused wait_end param in request_timeslot 2025-08-11 20:51:28 +08:00
TeCHiScy a1f6a615b9 chore: update wiegand format reference 2025-08-11 20:41:27 +08:00
TeCHiScy f2a398d43c chore: rename functions to keep naming style consistency 2025-08-11 20:37:08 +08:00
Foxushka dc28a82b19 Mifare Ultralight key logger from reader 2025-08-10 21:39:08 +03:00
unkernet 89e098c773 Make CLI compatible with Python 3.9
- Replace Python 3.10+ type hint syntax (`int | None`) with  `Union[int, None]`.
- Add explicit `byteorder='big'` argument to all `int.from_bytes()` calls.
2025-08-10 14:44:40 +07:00
Foxushka d95112f821 Bump NETDATA_MAX_DATA_LENGTH from 512 to 4096
USB + BLE are tested
Closes #272
2025-08-09 17:51:57 +03:00
TeCHiScyandGitHub 098e0a914b feat: add lf HIDProx read, t55xx write, emulate function (#267)
* feat: add lf HIDProx read, t55xx write, emulate function

code quaility:
- consistance: simulation -> emulation, label -> tag
- machine translated unreadable comments are made native

logic:
- newly added cli command includes: `lf hid prox read`, `lf hid prox write`, `lf hid prox econfig`
- machester demodulator is simplified
- various wiegand formats of HIDProx are supported
- goertzel algorithm is used in  HIDProx FSK demod
- lf read is refactored using stream/feed pattern to boost scan speed
- t55xx write is refactored to share same logic between em410x & HIDProx
- lf emulating is refactored to use PWM peripheral, allowing more card type to be added

closes: #212, #210

* chore: remove not implemented wiegand format comments

* fix: build ci

* fix: build ci

* fix: build ci

* fix: build ci
2025-08-04 07:01:53 +02:00
Zhong Jianxin 39270fd09e Use execute_tool to simplify running hardnested tool
Also fix when the dir conatains hardnested is read only, see #261
2025-08-02 10:15:14 +08:00
FoxushkaandGitHub cf00761902 Key recovery via backdoor for static encrypted nonce cards (#263)
* Implement MF1_ENC_NESTED_ACQUIRE in firmware

* Implement MF1_ENC_NESTED_ACQUIRE in software + fix code formatter

* Remove xz and pthreads from sources, use CMake FetchContent

* Update changelog

* lzma.h

* Update CMakeLists.txt

* Update CMakeLists.txt

* Probably fix workflow taking wrong commit for building

* Fix CMake building tools into bin/Debug on Windows

* Added cmd for fetching all slots nicks (without 16 commands)

* Fix type and use temp directory instead cwd (https://github.com/RfidResearchGroup/ChameleonUltra/pull/261)

* Fix endian for mfu_read_emu_counter_data and mfu_write_emu_counter_data

* Fix  --key interpreted as list
2025-08-01 22:12:07 +02:00
unkernetandGitHub 7065011f22 Fix incorrect slot LED indication when switching via CLI (#262) 2025-06-28 14:38:26 +02:00
303d2d31e1 Mifare Ultralight - Shadowmode (#251)
* Adding shadow mode to UltraLight

* Syncing with main repos

---------

Co-authored-by: AbyssAndromalius <abyss@barbed.fr>
2025-04-21 18:04:24 +02:00
zeusricoteandGitHub 2b0d02f12e complete hardnested attack implementation (#254)
* hardnested test fixed, increased timeout on mf1_hard_nested_acquire to fix cmd exec timeout on clone

* hardnested recovery(cli command not yet ready), based in noproto/HardnestedRecovery

* removed compiled binary

* Hardnested cli ready

* removed some unnecesary files

* removed unnecesary cached files

* cmake now builds hardnested too

* removed license.md

* added liblzma source(should fix checks not passing)

* i missed a line

* trimmed xz sources

* cmake now links local liblzma.a

* third try(warning solved)

* cmake now builds and links correcctly liblzma.a

* xz-5.8.1 vfolder renamed to xz

* fixed paths

* runner test

* removed wrong placed check

* disable landlock under windows

* missing files

* missing files

* windows strtok fix

* corrected lzma path under windows

* fix

* set release config for liblzma

* corrected path

* trailing_zeros

* msclock

* msclock integer issue

* msclock missing header

* fallback if not using msvc

* deleted include by accident

* revert clock change

* change custom target for custom command

* windows fmemopen implementation

* wrong path

* wrong name

* use fmemopen only when not using msvc

* use fmemopen.h when building on windows, non msvc

* re-add static link

* wrong filename

* pthread handling for mingw(proxspace)

* cleanup
2025-04-18 23:53:25 +02:00
GameTec-liveandGitHub d4e27b6eee Merge pull request #250 from ChameleonUltra/pr-merge
Fireman fork pr merge
2025-04-06 13:56:35 +02:00
GameTec_live be7a8539f6 chore: lets not break niels code 2025-04-06 13:48:30 +02:00
GameTec_live 5b670e133f doc: docs repo 2025-04-06 13:40:47 +02:00
GameTec_live a8f7c9d0ff fix: missed them lol 2025-04-06 13:36:30 +02:00
GameTec_live 961e386df6 feat: make ready for pr to upstream 2025-04-06 13:36:22 +02:00
GameTec_live e99f8dbd0e Merge remote-tracking branch 'upstream/main' into pr-merge 2025-04-06 13:28:06 +02:00
Philippe TeuwenandGitHub ed53e17d08 Merge pull request #248 from nieldk/main
Update chameleon_cli_unit.py
2025-04-03 17:26:50 +02:00
Niel NielsenandGitHub 63bd0cb22e Update chameleon_cli_unit.py
Defined a working function load_key_file(import_key, keys) for command hf mf fchk  --key

function  load_dic_file(import_dic, keys) is empty for now, to prevent an error when executing hf mf fchk  --dic
2025-04-03 13:55:38 +02:00
dxl e4648b593d fix workflow <on_push> download-artifact using 'name' instead of 'pattern' resulted in non working. 2025-04-02 13:43:21 +08:00
dxl 5784966c3a cmake_minimum_required from 3.1 updated to 3.5 2025-04-02 13:23:53 +08:00
dxl dd688e7b3f Fix workflow artifact conflict 409-Error
By: https://github.com/ChameleonUltra/ChameleonUltra/commit/18d725b9c3156f623d1abaeef5e4b34d5becbdbd
2025-04-02 13:19:35 +08:00
dxl 8bb60d15f5 Fix workflow no working. <upload-artifact> updated to v4
See: https://github.com/actions/upload-artifact/issues/635
2025-04-02 12:38:42 +08:00
dxl 3f6f5ac9c1 Hardnested nonces acquire implemented. 2025-04-02 12:32:27 +08:00
Benjamin MøllerandGitHub 153029a0f1 Fix --dict and hw slot list (#5)
* Fix for --dict and hw slot list

* Fix for --dict and hw slot list (for hf and lf)
2025-02-13 15:42:31 +01:00
GameTec-liveandGitHub 84f7d8201b Merge pull request #7 from taichunmin/docker-compose
Added docker-compose.yml to build firmware in local docker
2025-02-13 14:28:41 +01:00
taichunmin 7f8242cf98 Added docker-compose.yml to build firmware in local docker 2025-02-13 15:48:11 +08:00
GameTec-liveandGitHub 5de83ab1db Deploy wiki to pages
Wiki to GitHub pages
2025-02-12 19:59:28 +01:00
GameTec_live 877e7dae25 fix: hopefully fix reminder workflow 2025-02-09 15:02:19 +01:00
GameTec_live 9cd3dcabfd feat: add workflow 2025-02-09 13:31:32 +01:00
GameTec-liveandGitHub 959de63747 feat: move docs to wiki and add proper gitignore
Move docs to wiki
2025-02-09 09:29:06 +01:00
GameTec_live 0b1f5a6919 fix: update readme 2025-02-09 09:11:05 +01:00
GameTec_live e91be07510 feat: moved docs to wiki and added useful gitignore 2025-02-09 08:54:40 +01:00
GameTec-liveandGitHub 93c51eb9da fix: use pattern instead of name (as stated in docs *facepalm*) 2025-02-08 18:38:10 +01:00
GameTec_live 6831b77570 fix: should probably pass the token 2025-02-08 18:32:51 +01:00
GameTec_live 03710c715d fix: use pattern instead of name (as stated in docs *facepalm*) 2025-02-08 18:26:07 +01:00
GameTec-liveandGitHub e23633ca86 fix: Cicd fixes and migrate everything to v4 2025-02-08 18:18:07 +01:00
GameTec_live 3926f13bba fix: use github script for a reminder and only do it for first time contributors 2025-02-08 18:06:51 +01:00
GameTec_live 18d725b9c3 fix: migrate over to v4 using wildcard download 2025-02-08 17:54:55 +01:00
GameTec_live f1ff9a331f fix: try naming it differently? 2025-02-08 17:46:47 +01:00
GameTec_live 4ee23b9e3b fix: log into docker before pulling 2025-02-08 17:41:41 +01:00
GameTec-liveandGitHub 91ec63c8b7 fix: bump upload artifact version 2025-02-08 17:23:29 +01:00
GameTec_live cb0320666d fix: bump upload artifact version 2025-02-08 17:14:36 +01:00
GameTec-liveandGitHub f87cab7730 Update README.md 2025-02-08 17:06:18 +01:00
dxl c68ea99f87 Merge branch 'main' of https://github.com/RfidResearchGroup/ChameleonUltra 2025-01-17 12:46:13 +08:00
dxl 6439b25500 Fix the issue where compiling on Linux does not link to the pthread library. 2025-01-17 12:44:04 +08:00
Philippe TeuwenandGitHub d6c106f455 Merge pull request #221 from Dmytro02/fix-LF-emulation
fix-LF-emulation
2025-01-14 19:54:01 +01:00
Dmytro Klishchevskyi c7d6224b78 cleanup 2025-01-14 19:39:21 +01:00
Sibachir Ahmed-YanisandGitHub 8a797b8a16 Adding Authorized Distributors TechSecurityTools (#207)
* Adding Authorized Distributors TechSecurityTools

- Merged By DXL
- The authenticity of the authorization has been confirmed with RRG.
2024-08-28 09:37:49 +08:00
DXLandGitHub 4760d91b5d Merge pull request #230 from whywilson/main
Update MTools BLE documentation
2024-08-27 09:40:25 +08:00
mtoolstec 787e86a01a Update MTools BLE documentation 2024-08-25 16:34:02 +08:00
Dmytro Klishchevskyi 6145f5c99b fix typo 2024-08-06 14:02:25 +02:00
Dmytro Klishchevskyi b655c7351a fix LF emulation; make continuous sending ID; increase field sensing period 2024-08-05 21:30:55 +02:00
dxl c771ae937b docs updated. 2024-07-16 12:48:20 +08:00
dxl a4b3adad48 Reuse the 'STATUS_PAR_ERR' & Add an interface
1. Added 'cmd_processor_mf0_ntag_get_emu_page_count' interface to get available page count of mf0.
2. We can reuse the 'STATUS_PAR_ERR', and we can delete repeated cmd 'STATUS_INVALID_PARAMS'.
2024-07-16 12:47:47 +08:00
dxl e98bb76926 Add 'MF0_NTAG_GET_PAGE_COUNT' for get available page count of mf0. 2024-07-16 12:43:16 +08:00
dxl e6526bc258 The default initialization card slot 2 is an MF0 instead of MF1. 2024-07-16 10:19:51 +08:00
DXLandGitHub ac1c0119fc Merge pull request #215 from turbocool3r/main
Add support for Ultralight emulation.
2024-07-16 09:52:05 +08:00
turbocool3r 25a1230865 Fix hf mfu econfig not working for NTAG 210/212. 2024-07-15 03:18:14 +03:00
turbocool3r 384490e231 Fix an old bug in hf mfu econfig that prevented anticollision resolution data from being updated sometimes. 2024-07-15 03:17:25 +03:00
turbocool3r d1c9b4b21b Fix hf mfu e(r|w)cnt commands switching device into reader mode. 2024-07-15 02:35:37 +03:00
turbocool3r f1e2250178 Add support for NTAG 210/212. 2024-07-15 02:34:45 +03:00
turbocool3r 82c46b3c47 Fix a bug breaking NTAG counter access by NFC commands. 2024-07-15 02:14:02 +03:00
turbocool3r a428377878 Make hf mfu dump command properly detect card size. 2024-07-15 01:19:59 +03:00
turbocool3r 1e3533a65a Fix unsuccessful auth attempts counting. 2024-07-09 22:35:03 +03:00
turbocool3r a8c2fc1441 Make answers to commands on errors similar to real cards.
NAKs returned by both Ultralight and NTAG cards were 0 in my tests and Ultralights didn't respond to invalid commands at all.
2024-07-09 21:56:09 +03:00
turbocool3r 3fe0a5f79d Fix hf mfu rcnt command. 2024-07-09 21:30:52 +03:00
turbocool3r 607df41bca Add a command to reset MF0 / NTAG unsuccessful auth counter. 2024-07-09 21:30:27 +03:00
turbocool3r 202f5d3884 Fix internal MF0 / NTAG counter indexing. 2024-07-09 21:28:56 +03:00
turbocool3r cf109f94b2 Detect NAKs in hf mfu wrpg command. 2024-07-09 21:09:16 +03:00
turbocool3r dd42e7e7dd NTAG tags refer to their only counter by index 2. 2024-07-09 21:05:11 +03:00
turbocool3r a52bb989e9 Fix hf mfu dump command not running without file. 2024-07-09 21:03:57 +03:00
turbocool3r 09310dcacb Account for the second locking bit when checking OTP lock status. 2024-07-09 18:35:45 +03:00
turbocool3r 0ce920cfcc Add hf mfu ercnt/ewcnt commands for reading and writing emulator's counters. 2024-07-09 17:11:42 +03:00
turbocool3r ff58d97dd9 Add hf mfu esave command. 2024-07-09 00:58:07 +03:00
turbocool3r b5259c313a Add --type argument to eload and dump commands. 2024-07-09 00:57:43 +03:00
turbocool3r b7a6a3fc07 Remove amiibo-specific code. 2024-07-08 01:58:50 +03:00
turbocool3r 103d51ce64 Properly detect auth failures in hf mfu subcommands. 2024-07-08 01:04:23 +03:00
turbocool3r 4aa6b3c0fc Fix file output in hf mfu dump command. 2024-07-08 00:52:39 +03:00
turbocool3r bdcf5d5851 Fix hf mfu rdpg not exiting when data is not properly aligned. 2024-07-08 00:34:08 +03:00
turbocool3r 37f2b0783c Add hf mfu eload command. 2024-07-08 00:33:33 +03:00
turbocool3r 163b41b95b Fix commands for r/w into UL / NTAG emulator memory. 2024-07-08 00:31:20 +03:00
turbocool3r 1bf23cdf08 Make MFUAuthArgsUnit parse key and swap arguments automatically. 2024-07-07 20:09:25 +03:00
turbocool3r 3ff1c785a5 Fix integer conversion bugs related to nfc_tag_mf0_ntag_get_nr_pages_by_tag_type. 2024-07-07 02:09:48 +03:00
turbocool3r cb41662ea4 Add support for CHECK_TEARING_EVENT command. 2024-07-07 02:03:58 +03:00
turbocool3r b5d6ad8858 Prevent sending NACKs when retrieving counter data for unsupported tags. 2024-07-07 01:39:53 +03:00
turbocool3r ddcffba26f Fix a bug in hf mfu signature command. 2024-07-07 01:14:43 +03:00
turbocool3r 94474ee8ae Remove the MF0ICU1 test entry in factory data initialization. 2024-07-05 16:32:40 +03:00
turbocool3r 780e594fe2 Handle VCSL command in a separate function. 2024-07-05 16:31:18 +03:00
turbocool3r 297cb061cb Add support for custom version and signature data for MF0 / NTAG emulator. 2024-07-05 16:30:38 +03:00
turbocool3r 18d5da09dd Add hf mfu signature command. 2024-07-05 16:04:16 +03:00
turbocool3r efeaf1d95c Add support for VCSL command. 2024-07-05 03:43:08 +03:00
turbocool3r eafa14e4e5 Add hf mfu eview command. 2024-07-05 03:32:23 +03:00
turbocool3r 9488127531 Add commands for reading and writing to/from MF0/NTAG emulator memory. 2024-07-05 02:58:15 +03:00
turbocool3r 76b36dd1be Document MF0/NTAG UID magic mode commands. 2024-07-05 01:52:40 +03:00
turbocool3r 2da6d35784 Improvements to MFU / NTAG cli commands.
Added `wrbl` and `rcnt` commands for writing blocks and reading counters. Added `-P` parameter to all commands that may need it to allow prior auth with a 4-byte password. `dump` command now dumps all pages until it fails rather than just the first 16 pages when no `-q` parameter is provided. Added `version` command to allow requesting version bytes.
2024-07-03 03:04:25 +03:00
turbocool3r a283795f07 Fix NTAG INCR_CNT command byte order. 2024-07-03 02:45:45 +03:00
turbocool3r 1c14fc00b2 NTAG counter and access fixes. 2024-07-03 02:22:56 +03:00
turbocool3r 9e25b0913f Fix mirroring bug. 2024-07-03 01:07:09 +03:00
turbocool3r 3af3488b60 Add mirroring support for NTAG. 2024-06-30 20:58:19 +03:00
turbocool3r 1f1b4fd880 Fix logging for GET_VERSION command. 2024-06-29 21:33:15 +03:00
turbocool3r 41e6a70d7c Changelog entry. 2024-06-19 23:08:55 +03:00
turbocool3r 2447c79963 Fix handling of R/O pages and CFGLCK. 2024-06-19 22:55:44 +03:00
turbocool3r 2acd42acd2 Fix maximum block size. 2024-06-19 22:55:44 +03:00
turbocool3r 8ddf2eaaee Respect access rules when reading/writing MF0/NTAG. 2024-06-19 22:55:44 +03:00
turbocool3r 59f2611fea Insert some assertions and locking. 2024-06-19 22:55:44 +03:00
turbocool3r 80a14a1392 Fix factory initialization for MF0/NTAG. 2024-06-19 22:55:44 +03:00
turbocool3r 8bfad8b9ab Small improvements to the tx buffer handling. 2024-06-19 22:55:44 +03:00
turbocool3r 95d69b142b Proper password authentication. 2024-06-19 22:55:44 +03:00
turbocool3r 1e18bd6c60 Properly implement fast reads. 2024-06-19 22:55:44 +03:00
turbocool3r 56c4647afb Make MF0/NTAG tx buffer size appropriate for large NTAG fast reads. 2024-06-19 22:55:44 +03:00
turbocool3r af5670fa44 Respect PROT bit in the ACCESS byte. 2024-06-19 22:55:44 +03:00
turbocool3r eee3666790 Fix a bug that made Ultralight EV1 and NTAG unreadable. 2024-06-19 22:55:44 +03:00
turbocool3r 89dc073a8b Support reading and incrementing counters. 2024-06-19 22:55:44 +03:00
turbocool3r 4728573595 Fix CMD_INCR_CNT value. 2024-06-19 22:55:43 +03:00
turbocool3r f7460cef42 Add the remaining tags to the tag map. 2024-06-19 22:55:43 +03:00
turbocool3r 34eabd7db3 Fix stack overflow on slot init. 2024-06-19 22:55:43 +03:00
turbocool3r 248f3b2839 Add support for Ultralight emulation.
This version only emulates MF0ICU1 properly.
2024-06-19 22:55:43 +03:00
DXLandGitHub 3cadd47eeb Specify the Python version used by workflow as 3.12 (#217) 2024-06-13 16:24:19 +08:00
0bc01f565a Add CLI view commands to display memory content (#208)
* Add utility to print memory dump (xxd like)

* Add CLI eview. Dump emulation memory data

* Add CLI view. Display content from tag memory or dump file

---------

Co-authored-by: marfo <marfo@localhost.localdomain>
2024-04-24 10:51:11 +08:00
you fcbf474e19 Update CHANGELOG.md 2024-04-24 00:50:17 +02:00
you 0686d0816d Fix default ACL (suggested by @taichunmin) 2024-04-24 00:42:33 +02:00
you 4568e8fd57 Fix dump and clone commands accordingly to PR#199 2024-04-24 00:41:13 +02:00
you 6ddda661d8 tosqash 2024-04-23 23:45:13 +02:00
you 7912bde311 Merge branch 'main' of https://github.com/RfidResearchGroup/ChameleonUltra into enh-clone 2024-04-23 23:34:17 +02:00
Oleg MoiseenkoandGitHub 767f6e2f7e Update logging in the vs code in development.md 2024-04-01 18:46:20 +03:00
Peter-Simon DieterichandGitHub 22b7898f20 cli: Fix cmd_parameter generation for nested for python 3.9 (#205)
Signed-off-by: Peter-Simon Dieterich <peter-simon.dieterich@vaillant-group.com>
2024-03-13 18:22:17 +08:00
戴均民andGitHub c1eb213d4a Added command to check keys of multiple sectors at once (#199)
thx @taichunmin
2024-03-07 15:07:12 +08:00
Peter-Simon DieterichandGitHub 1608892140 cli: fix unused target key type parameter for nested (#204)
* cli: fix unused target key type parameter for nested
* Added entry to CHANGELOG.md
2024-03-07 14:57:11 +08:00
you 8a02d6f4f8 Add CLI command to clone a MF tag from file (bin/hex) 2024-01-28 17:55:01 +01:00
you a1a49ed953 Add CLI command to dump a MF tag to file (bin/hex) 2024-01-28 17:54:20 +01:00
you 3e6a2b505b Add fchk argument to export found keys to file 2024-01-28 17:48:18 +01:00
taichunmin e470958373 Added command to check keys of multiple sectors at once 2024-01-20 17:25:05 +08:00
3d8451a133 Docs for cli on MacOS (#190)
Co-authored-by: “bring42” <“Benno657@student.liu.se”>
2024-01-17 18:40:29 +08:00
Philippe TeuwenandGitHub fefcde542b Merge pull request #189 from p-l-/enh-hf-mf-elog-skip-used-items
CLI: skip already used items in `hf mf elog --decrypt`
2023-12-20 23:20:37 +01:00
Pierre Lalet e3cbd598ec CLI: skip already used items in hf mf elog --decrypt
This (often largely) improves the speed of the decrypt process. On my
laptop, with the same logs (37 records for one block and 37 records
for another block), here are the performances, as measuerd using a
simple command:

```bash
time echo -e "hw connect\nhf mf elog --decrypt\nhw disconnect" | ./chameleon_cli_main.py
```

- Before parallelisation (#187): 14m59,277s
- With parallelisation (current main): 6m13,513s
- With item skipping (this PR): 2m42,491s
2023-12-20 22:37:47 +01:00
Philippe TeuwenandGitHub 0124709067 Merge pull request #187 from p-l-/enh-hf-mf-elog-parallel
CLI: parallelize mfkey32v2 processes
2023-12-20 16:29:08 +01:00
Pierre Lalet cc674f1669 CLI: fix mfkey32v2 call for Windows 2023-12-20 16:20:12 +01:00
Pierre Lalet 42317a7bc4 CLI: parallelize mfkey32v2 processes 2023-12-20 16:20:12 +01:00
GameTec-liveandGitHub 05ea03d31c doc: Add box net and vectortraced boxart and troubleshooting entry (#186)
* doc: Add box net and vectortraced boxart
* doc: add troubleshooting entry and python notice
* fix: compress images
2023-12-05 16:06:56 +08:00
dxl 7fdb358e8b Merge branch 'main' of https://github.com/RfidResearchGroup/ChameleonUltra 2023-11-15 18:53:42 +08:00
dxl 3b14270976 Staticnested results quite poor compared to pm3 implem #183 2023-11-15 18:53:02 +08:00
Philippe Teuwen af91ddcda9 CLI: Do not execute a command if help is printed
Previously, for example `hf 14a raw -b 7 -d 26 -h` was printing help but it was also executing the command.
2023-11-15 09:44:37 +01:00
Philippe TeuwenandGitHub 5b67a895eb Merge pull request #180 from taichunmin/taichunmin
Added support for mifare classic value block operations
2023-11-15 09:38:45 +01:00
Philippe TeuwenandGitHub 494735a07d Merge pull request #184 from GameTec-live/main
doc: Add CUGUI troubleshooting entry
2023-11-15 08:35:55 +01:00
GameTec_live 12fd5f23f7 doc: Add CUGUI troubleshooting entry 2023-11-14 19:43:55 +01:00
taichunmin e79568298f Added support for mifare classic value block operations 2023-11-13 23:38:56 +08:00
Philippe Teuwen 4d670f051a Be robust to some argparse string variants 2023-11-06 22:45:48 +01:00
Philippe Teuwen ecf3c06886 add regression tests 2023-10-25 00:32:31 +02:00
Philippe Teuwen 7d851d2a22 reorganize a bit cli to allow autotests 2023-10-24 23:46:34 +02:00
Philippe Teuwen d973ee6671 add hw disconnect (for autotests) 2023-10-24 23:45:42 +02:00
Philippe Teuwen ece5e79060 typechecking fixes 2023-10-24 23:44:56 +02:00
Philippe Teuwen d77e166249 pep287 2023-10-24 00:57:44 +02:00
Philippe Teuwen ff3df15278 misc lint 2023-10-23 23:57:23 +02:00
Philippe Teuwen 55cd19f0db Move bins to simplify pyinstaller paths 2023-10-23 22:54:37 +02:00
Philippe Teuwen bb47bd5159 make style 2023-10-23 19:16:42 +02:00
Philippe Teuwen 7ea8cc1f98 check_file_encoding 2023-10-23 19:12:42 +02:00
Philippe Teuwen 55228d1489 fix encoding 2023-10-23 17:40:25 +02:00
Philippe Teuwen 299562bbdd changelog 2023-10-21 10:55:39 +02:00
Philippe TeuwenandGitHub c2f0f0d408 Merge pull request #178 from taichunmin/taichunmin
Change git version to version tag instead of dev tag.
2023-10-21 10:55:05 +02:00
taichunmin c91514efa1 Change git version to version tag instead of dev tag. 2023-10-21 16:40:15 +08:00
dxl 74f4eb8822 Changelog updated. 2023-10-19 22:54:47 +08:00
dxl f04943f59b Merge remote-tracking branch 'origin/main' 2023-10-19 22:51:55 +08:00
dxl 771e6ded54 Fixed a bug that will not reset the state machine after DEC. 2023-10-19 22:51:02 +08:00
dxl ab07dff904 Function has been renamed 2023-10-19 22:50:08 +08:00
dxl 980960c43d Fixed a bug that affected 14A simulation. 2023-10-19 22:48:53 +08:00
Philippe Teuwen 6e19d078f4 oops, missed sth when solving the merge conflicts 2023-10-17 23:56:28 +02:00
Philippe TeuwenandGitHub eac246fc0c Merge pull request #174 from augustozanellato/ats_error_fixes
Fix ATS handling in tags that NAK RATS
2023-10-17 23:52:50 +02:00
Philippe TeuwenandGitHub 83583075c4 Merge branch 'main' into ats_error_fixes 2023-10-17 23:52:35 +02:00
Philippe Teuwen fa0754aed2 cli: make status an enum. rename some status for consistency 2023-10-17 23:43:25 +02:00
Augusto Zanellato aa3fe711af Fix hf 14a raw always raising AttributeError 2023-10-17 23:33:19 +02:00
Augusto Zanellato cb1878440d Fix ATS handling in tags that NAK RATS
pcd_14a_reader_ats_request didn't check for NAK so in case the tag NAKd
the RATS it would return a zero length ATS which would cause an
underflow in pcd_14a_reader_scan_once, that in turn resulted in
HF_ERR_ATS being returned due to an invalid ATS length.
2023-10-17 23:32:51 +02:00
Philippe Teuwen 2beb8f74a3 cli: check if helper tools are available 2023-10-17 22:08:34 +02:00
Philippe Teuwen 82fcc76286 Changed battery level curves based on experimental measures, thanks @spp2000 ! 2023-10-17 21:25:16 +02:00
Philippe Teuwen 652ee4768d doc 2023-10-17 21:19:23 +02:00
dxl 1e134f1bcd ChangeLog update 2023-10-17 16:34:47 +08:00
dxl 15698fb338 Nested(And StaticNested) multithreaded decryption. 2023-10-17 16:34:22 +08:00
dxl 1ec025a24b Merge remote-tracking branch 'origin/main' 2023-10-17 16:30:47 +08:00
dxl 0e3144c994 Fixed bug where the 'i' variable was incorrectly used on printf 2023-10-17 16:25:48 +08:00
Philippe TeuwenandGitHub 363ff4f345 Merge pull request #172 from GameTec-live/main
doc: finally add linux
2023-10-16 21:16:17 +02:00
GameTec_live 070db3d773 fix: escape sequence 2023-10-16 21:09:26 +02:00
GameTec_live 3456d4c15d doc: remove unnescesary cp 2023-10-16 21:09:14 +02:00
GameTec_live d5187d3017 doc: finally add linux 2023-10-16 20:01:42 +02:00
Philippe TeuwenandGitHub 372bcf2460 technical_whitepaper : prevent github hallucinating email addresses 2023-10-15 23:34:51 +02:00
Philippe Teuwen 324dc578e5 cli: prepare comm debug 2023-10-15 01:39:00 +02:00
Philippe Teuwen 830ba98721 cli: move enums to new file 2023-10-15 01:17:34 +02:00
Philippe Teuwen 8ef42c705c cli: hw slot list: avoid unnecessary slot changes 2023-10-15 01:17:34 +02:00
Philippe Teuwen 43a6e822e6 cli: move color shortcuts to chameleon_util 2023-10-15 01:17:29 +02:00
Philippe TeuwenandGitHub f9be867029 Merge pull request #170 from augustozanellato/fix_factory_reset
Fix factory reset hang/wdt reset
2023-10-13 09:13:15 +02:00
Augusto Zanellato b35c1fadd9 Add changelog entry 2023-10-13 00:28:44 +02:00
Augusto Zanellato c1c10e9ba3 Fix factory reset hang/wdt reset
fds_util event handler was ignoring all the events related to
peer_manager files and that was causing a deadlock while waiting for
record deletion that in turn caused a wdt reset, usually this resulted in
a partially done factory reset.
The fix adds a `ignore_pm` flag to op_info struct that gets cleared by
fds_wipe allowing for a true reset to happen.
2023-10-13 00:26:32 +02:00
Philippe Teuwen 15bcae78be cli: atqa disambiguation 2023-10-12 20:39:18 +02:00
Philippe Teuwen 446b57e89f Changed fds_write_sync to take length in bytes instead of next multiple of 4 2023-10-11 23:08:25 +02:00
Philippe Teuwen 6236fdd4cf just in case, turn tag field off on exiting reader mode 2023-10-11 19:32:37 +02:00
Philippe Teuwen bac3552d85 fix field LED in LF reading and in HF cloning 2023-10-11 19:22:29 +02:00
Philippe Teuwen ea6576c567 renaming of slot into cloned when having cloned an ID/UID with a button, cf issue #166. Removed the goto 2023-10-11 18:49:59 +02:00
Philippe Teuwen 4fe9e1ea5b docs 2023-10-11 10:28:45 +02:00
Philippe Teuwen ffb6e00f1e fix spurious LED in battery level, assign battery level to long press B 2023-10-10 20:25:17 +02:00
Philippe Teuwen c4aef7e373 Changed hw slot list to display LF ID & HF anticol data, and names in the --short version too 2023-10-10 20:10:18 +02:00
Philippe Teuwen f512cbdbee cli: fix hw slot init 2023-10-10 10:57:53 +02:00
Philippe Teuwen f93418b7d8 cli: skip empty lines when several cmd lines are copy/pasted 2023-10-10 10:57:26 +02:00
Philippe Teuwen 89aa8c48f1 remove NRF_LOG_UART_ON_SWO_ENABLED committed by mistake 2023-10-10 10:56:49 +02:00
Philippe TeuwenandGitHub ab7592e7be Merge pull request #168 from RfidResearchGroup/rework_cli
Rework cli
2023-10-10 02:03:37 +02:00
Philippe Teuwen 61cc4f5891 cli: color help and add epilog example 2023-10-10 01:58:26 +02:00
Philippe Teuwen b6d2badab4 cli: simplify exit conditions 2023-10-10 00:21:31 +02:00
Philippe Teuwen 4927e0166c cli: one root CLITree, enhance dump_help 2023-10-10 00:17:17 +02:00
Philippe Teuwen 9106dea953 clean args classes 2023-10-09 21:37:54 +02:00
Philippe Teuwen 75e368da62 cli: hf mf econfig, hf mfu econfig (wip), fix dumphelp 2023-10-09 21:23:17 +02:00
dxl c9e4507d8f Use fastselect to improve the success rate of decryption. 2023-10-09 15:18:59 +08:00
dxl a9f775ff19 14443-a fast select implemented. 2023-10-09 15:17:54 +08:00
Philippe Teuwen a2121de79e cli: hf mf elog 2023-10-09 00:49:11 +02:00
Philippe Teuwen 336ec82e49 cli: hf mf eload/esave 2023-10-09 00:31:11 +02:00
Philippe Teuwen 2d3538f4c2 cli: add support for after_exec 2023-10-09 00:15:25 +02:00
Philippe Teuwen 8080c9b259 lf em 410x econfig 2023-10-08 23:57:02 +02:00
Philippe Teuwen 2f4d84ed2c cli: clean enums 2023-10-08 21:17:57 +02:00
Philippe Teuwen deb6684c0d cli: enum for key type A/B, prepare hf mf auth args 2023-10-08 21:12:52 +02:00
Philippe Teuwen dd5ff244d3 hf mf nested 2023-10-08 20:56:57 +02:00
Philippe Teuwen 8fc45a67a4 cli: hf 14a raw 2023-10-08 17:38:14 +02:00
Philippe Teuwen 831c401b5d cli: hw raw 2023-10-08 17:20:50 +02:00
Philippe Teuwen dcebc89654 cli: Command enum 2023-10-08 16:48:29 +02:00
Philippe Teuwen 1da470b8fe cli: hw settings btnpress 2023-10-08 14:20:09 +02:00
Philippe Teuwen 45deb30d4a cli: hw settings btnpress WIP 2023-10-08 13:55:18 +02:00
Philippe Teuwen efd7405bd8 cli: hw settings btnpress WIP 2023-10-08 13:44:06 +02:00
Philippe Teuwen a47e9b8b03 cli: remove unused TagSenseType list 2023-10-08 12:46:24 +02:00
Philippe Teuwen cd51061bb0 cli: hw slot enable: bugfix default slot 2023-10-08 12:46:01 +02:00
Philippe Teuwen d127f0a641 cli: blepair fix bug 2023-10-08 12:37:28 +02:00
Philippe Teuwen 47742d5984 cli: hw settings blepair, hw settings reset + --force, hw settings animation/btnpress/blekey/blepair: reminder to store settings 2023-10-08 12:23:29 +02:00
Philippe Teuwen 18a1770c80 cli: hw settings animation/bleclearbonds, hw factory_reset and hw settings bleclearbonds with --force 2023-10-08 12:02:28 +02:00
Philippe Teuwen 0f730affa7 Activate automatically reader mode 2023-10-08 00:15:37 +02:00
Philippe Teuwen 6cad966e7a cli: hw slot enable/disable/store 2023-10-08 00:02:43 +02:00
Philippe Teuwen 3aa73a2def cli: metavar, simplify enums, replace tag types int by keywords 2023-10-07 23:54:13 +02:00
Philippe Teuwen 0c6abbea9d cli: -s mandatory for slot change, sense_type now --hf/--lf, slot optional for hw slot init/type/delete 2023-10-07 11:21:39 +02:00
Philippe Teuwen 3022e0550c help_str 2023-10-07 01:11:03 +02:00
Philippe Teuwen 1ce506a5ad cli: change hw slot list 2023-10-07 01:05:46 +02:00
Philippe Teuwen 7ae3820913 cli: change hw slot kick 2023-10-07 00:56:57 +02:00
Philippe Teuwen 465ada3544 cli: change hw chipid, hw address and hw mode 2023-10-07 00:21:28 +02:00
Philippe Teuwen bb0ad66a78 cli: reorder args 2023-10-07 00:05:46 +02:00
Philippe Teuwen be7fad4906 cli: colors shortcuts 2023-10-05 01:09:15 +02:00
Philippe Teuwen 707b0c6d4a Changed CLI help:
- visually closer to pm3 (differenciate groups and commands)
- "dumphelp" allows to quickly dump all cmds and their options
- now all commands support '-h', so e.g. `hw settings store -h` will print help instead of storing
- no more command description in decorator, it is now taken from argparse description
2023-10-05 00:48:50 +02:00
Philippe Teuwen 702dba0d93 Added button action to show battery level 2023-10-04 19:36:33 +02:00
Philippe Teuwen 0d2c3fae89 hw settings btnpress set: tolerate A/B/a/b for button 2023-10-04 18:53:55 +02:00
Philippe Teuwen eac1b31b3c fix links 2023-10-02 10:23:35 +02:00
Philippe Teuwen 5ea6519577 cugui typos 2023-10-02 09:56:37 +02:00
GameTec-liveandGitHub 8f552773f1 doc: expand CU GUI docs (#158)
* doc: add entry to troubleshooting

* whoops a typo

* Add images part 1

* doc: explain first two pages

* doc: finished page docs except read page

* doc: Changelog
2023-10-02 09:55:55 +02:00
Philippe Teuwen 42b715575c Changed CLI threads polling into blocking reads, to reduce CPU usage 2023-10-01 22:13:46 +02:00
Philippe Teuwen 606ec02e30 Added support for timestamped comments in CLI via rem, ;, % or # 2023-10-01 00:34:18 +02:00
Philippe Teuwen 226efbc3d5 Fixed watchdog trigger during hw factory_reset 2023-10-01 00:30:05 +02:00
DXLandGitHub 7efe23edb2 Update README.md 2023-09-28 17:28:09 +08:00
DXLandGitHub 48bf852465 Update README.md 2023-09-28 17:27:43 +08:00
DXLandGitHub 5519715c10 Update README.md 2023-09-28 16:43:50 +08:00
Philippe Teuwen 4a94db10bf fix bug in default slot config 2023-09-27 23:23:39 +02:00
Philippe Teuwen 6915ee19a4 New DELETE_SLOT_TAG_NICK 2023-09-27 23:09:59 +02:00
Philippe TeuwenandGitHub 43cadeb84d Merge pull request #159 from augustozanellato/pyinstaller
Add client PyInstaller support
2023-09-27 18:19:37 +02:00
Augusto Zanellato 55b4053acb Changelog entry 2023-09-27 13:53:20 +02:00
Augusto Zanellato 4347cd9048 Add PyInstaller support for client 2023-09-27 13:52:26 +02:00
Philippe Teuwen e757c58a20 Notes from issue #1 to technical whitepaper 2023-09-27 09:52:14 +02:00
DXLandGitHub 4e1dec06ad Update README.md 2023-09-27 15:50:50 +08:00
DXLandGitHub ef1ccb40d8 Update README.md 2023-09-27 15:45:28 +08:00
DXLandGitHub db3f8ce1d7 Update README.md 2023-09-27 15:37:11 +08:00
Philippe Teuwen ac1f518f0a battery info 2023-09-26 23:43:01 +02:00
Philippe Teuwen 3fc985973c protocol.md 2023-09-26 22:41:57 +02:00
Philippe Teuwen e52b0302bf tip for GUI font scaling issues 2023-09-26 19:20:09 +02:00
Philippe Teuwen 4747d3884d Merge branch 'wip_protocol_refresh'
* wip_protocol_refresh: (38 commits)
  CI for releases
  changelog
  build_firmware.yml: fetch depth=0 to be able to build proper version strings
  Deduce APP_FW_VER from git tag
  bump app version
  style
  colors
  Increase initial button wakeup from 4 to 8 seconds
  Adding MIFARE Ultralight reading, wip
  hf14a_raw: use @expect_response and fix tests
  Fix shadow mode not being preserved. Breaking change: nfc_tag_mf1_write_mode_t has one new mode SHADOW_REQ. Client can set SHADOW or SHADOW_REQ, internally it will be transformed to SHADOW_REQ. When it's time to save data, if SHADOW_REQ, the fw will change it to SHADOW and still allow to save the data before acting as shadow. Breaking: when client reads back MF1 write mode just after settings SHADOW and before saving config, it will receive SHADOW_REQ and must be ready to handle this new enum value.
  MF1_DETECT_SUPPORT: remove redundant data
  Breaking change: DATA_CMD_GET_DEVICE_MODEL to match chameleon_device_type_t
  hw 14a raw: closer to pm3 syntax, removed bit_frame,...
  use field LED also in reader mode
  fix changelog
  new tag_specific_type_t enum, new slotConfig struct. FW will take care of existing slots. Disruptive changes: see below
  Implemented hf 14a raw
  Fixed initialization bugs and added raw command implementation functions.
  Update the table of MFC attack support levels.
  ...
2023-09-26 09:51:25 +02:00
Philippe Teuwen 099fb6b912 CI for releases 2023-09-26 09:51:15 +02:00
Philippe Teuwen b9e5c95480 changelog 2023-09-26 08:42:31 +02:00
Philippe Teuwen b03ef3ec21 build_firmware.yml: fetch depth=0 to be able to build proper version strings 2023-09-26 00:47:58 +02:00
Philippe Teuwen 963d4d62f1 Deduce APP_FW_VER from git tag 2023-09-25 23:32:01 +02:00
Philippe Teuwen 2b4e8b2940 bump app version 2023-09-25 17:30:54 +02:00
Philippe Teuwen 372cfead0c style 2023-09-25 00:51:43 +02:00
Philippe Teuwen e23ad695e6 colors 2023-09-24 23:49:49 +02:00
Thomas BurnhamandPhilippe Teuwen f5b50aa312 Increase initial button wakeup from 4 to 8 seconds
Initial button press wakeup of 4 seconds is sometimes inadequate to establish BT connection. 

This change will expand the Initial button wakeup from 4 seconds to 8 seconds. 

Device sleep behavior after will be as follows:
(Changed)
Initial Button Wakeup to Sleep : 8s 
(No Change)
Subsequent Button Action to Sleep : 4s
Leaving RF Field wake to sleep : 3s
BLE Disconnect to sleep : 4s
USB Power Disconnect to sleep : 3s

Example behavior :
User wakes device with Button B (8 Sec to sleep)
User pushes button B again (Now 4 Sec to sleep) 
User Places device in RF field (Maintain wake)
User removes device from RF field (3 sec to sleep)

If user discontinues the user journey at any point, the identified condition will invoke sleep at defined times.
2023-09-24 22:42:42 +02:00
Philippe Teuwen 7903993504 Adding MIFARE Ultralight reading, wip 2023-09-24 22:30:57 +02:00
Philippe Teuwen 313d772a99 hf14a_raw: use @expect_response and fix tests 2023-09-24 22:30:50 +02:00
Philippe Teuwen 1dc8891e1b Fix shadow mode not being preserved. Breaking change:
nfc_tag_mf1_write_mode_t has one new mode SHADOW_REQ.
Client can set SHADOW or SHADOW_REQ, internally it will be transformed to SHADOW_REQ.
When it's time to save data, if SHADOW_REQ, the fw will change it to SHADOW and still allow to save the data before acting as shadow.
Breaking: when client reads back MF1 write mode just after settings SHADOW and before saving config, it will receive SHADOW_REQ and must be ready to handle this new enum value.
2023-09-24 19:01:20 +02:00
Philippe Teuwen 941d42561a MF1_DETECT_SUPPORT: remove redundant data
cf https://github.com/RfidResearchGroup/ChameleonUltra/pull/147#issuecomment-1732338315
2023-09-24 01:49:26 +02:00
Philippe Teuwen 867ee7bf9b Breaking change: DATA_CMD_GET_DEVICE_MODEL to match chameleon_device_type_t
cf https://github.com/RfidResearchGroup/ChameleonUltra/pull/147#pullrequestreview-1637478473
2023-09-24 01:27:48 +02:00
Philippe Teuwen f7db6d0fb3 hw 14a raw: closer to pm3 syntax, removed bit_frame,...
Now data length is always in bits
Option -o => -a and only needed to turn field on without select or data
Reorganize pcd_14a_reader_raw_cmd
Some more checks
2023-09-24 01:02:30 +02:00
Philippe Teuwen 234b22c48a use field LED also in reader mode 2023-09-24 00:32:48 +02:00
Philippe Teuwen 25f7a91941 fix changelog 2023-09-23 21:38:17 +02:00
Philippe Teuwen 7da58bbce8 new tag_specific_type_t enum, new slotConfig struct. FW will take care of existing slots. Disruptive changes: see below
Disruptive changes:
- tag types are 2-byte long with new values
- GET_SLOT_INFO returns 32 bytes as tag types are now 2-byte long
- "enable" is not common to one slot anymore but bound to the HF or LF part
- GET_ENABLED_SLOTS returns 16 bytes as we get "enabled_hf" and "enabled_lf" for each slot
- SET_SLOT_ENABLE needs 3 bytes slot_number|sense_type|enable as we need to specify to enable HF or LF
- slotConfig changed a lot but this is internal to the fw and its flash and a function does the format conversion on first boot after flash
  so slot data is preserved on fw upgrade, but if one downgrades to a previous version, data will be erased.
2023-09-23 21:34:15 +02:00
dxl 879b8e3459 Implemented hf 14a raw 2023-09-21 18:30:05 +08:00
dxl 499fa35c25 Fixed initialization bugs and added raw command implementation functions. 2023-09-21 18:28:21 +08:00
dxl 86c1a71f7c Update the table of MFC attack support levels. 2023-09-20 11:14:06 +08:00
dxl d31d1af0b8 Merge remote-tracking branch 'origin/wip_protocol_refresh' into wip_protocol_refresh 2023-09-20 11:01:09 +08:00
dxl ad3241aeb9 doc 2023-09-20 11:00:43 +08:00
Philippe Teuwen 14bffafb2a style 2023-09-20 01:26:47 +02:00
Philippe Teuwen cd73ac89ee staticnested.c: translate comments, fix typo 2023-09-19 22:09:15 +02:00
Philippe Teuwen ebb77dc938 recode GB18030..UTF-8 staticnested.c 2023-09-19 22:02:49 +02:00
Philippe Teuwen 3889033815 sigh 2023-09-19 21:47:37 +02:00
Philippe Teuwen 52953de927 changelog & typos in protocol 2023-09-19 21:37:56 +02:00
Philippe Teuwen 5a9d49ddb4 Remove unused MF1_DETECT_DARKSIDE, reallocate 2003 to MF1_STATIC_NESTED_ACQUIRE
MF1_DETECT_DARKSIDE was actually runnign the full attack, as there is no quick way to detect Darkside
So if you want to check for Darkside, just run directly MF1_DARKSIDE_ACQUIRE.
2023-09-19 16:03:20 +02:00
Philippe Teuwen 624e96aee9 fix compilation 2023-09-19 13:18:02 +02:00
dxl f0ddd07108 A bug has been marked and is waiting to be fixed. 2023-09-19 18:25:01 +08:00
dxl 32b3e19279 Added support for StaticNested(FastDecrypt). 2023-09-19 18:24:30 +08:00
Philippe Teuwen 42d9f160d9 typo 2023-09-19 10:15:42 +02:00
Philippe Teuwen ff20eb9c68 simplify anticol+ATS, my fault 2023-09-19 01:35:51 +02:00
Philippe Teuwen 6ce61c1720 changelog 2023-09-19 00:38:09 +02:00
Augusto Zanellato 09eb0d19f4 Automatically send RATS to 14443-4a tags 2023-09-19 00:32:52 +02:00
Philippe Teuwen 9497ff7eab Add timeout parameter to hw raw 2023-09-18 23:20:18 +02:00
Philippe Teuwen c9261cc6eb Darkside: use LEDs for feedback 2023-09-18 22:44:15 +02:00
Philippe Teuwen 782905f202 fix Darkside 2023-09-18 22:44:15 +02:00
Philippe Teuwen 8499535aad Clarify protocol. Disruptive changes: see below
This huge commit tries to enhance several things related to the fw/cli protocol.
Generally, the idea is to be verbose, explicit and reuse conventions, in order to enhance code maintainability and understandability for the other contributors.

docs/protocol.md got heavily updated

Many commands have been renamed for consistency. you are invited to adapt your client for easier maintenance

Guidelines, also written in docs/protocol.md "New data payloads: guidelines for developers":
- Now protocol data exchanged over USB or BLE are defined in netdata.h as packed structs and values are stored in Network byte order (=Big Endian)
- Command-specific payloads are defined in their respective cmd_processor handler in app_cmd.c and chameleon_cmd.py
- Define C `struct` for cmd/resp data greater than a single byte, use and abuse of `struct.pack`/`struct.unpack` in Python. So one can understand the payload format at a simple glimpse.
- If single byte of data to return, still use a 1-byte `data`, not `status`.
- Use unambiguous types such as `uint16_t`, not `int` or `enum`. Cast explicitly `int` and `enum` to `uint_t` of proper size
- Use Network byte order for 16b and 32b integers
  - Macros `U16NTOHS`, `U32NTOHL` must be used on reception of a command payload.
  - Macros `U16HTONS`, `U32HTONL` must be used on creation of a response payload.
  - In Python, use the modifier `!` with all `struct.pack`/`struct.unpack`
- Concentrate payload parsing in the handlers, avoid further parsing in their callers. This is true for the firmware and the client.
- In cmd_processor handlers: don't reuse input `length`/`data` parameters for creating the response content
- Avoid hardcoding offsets, use `sizeof()`, `offsetof(struct, field)` in C and `struct.calcsize()` in Python
- Use the exact same command and fields names in firmware and in client, use function names matching the command names for their handlers unless there is a very good reason not to do so. This helps grepping around. Names must start with a letter, not a number, because some languages require it (e.g. `14a_scan` not possible in Python)
- Respect commands order in `m_data_cmd_map`, `data_cmd.h` and `chameleon_cmd.py` definitions
- Even if a command is not yet implemented in firmware or in client but a command number is allocated, add it to `data_cmd.h` and `chameleon_cmd.py` with some `FIXME: to be implemented` comment
- Validate data before using it, both when receiving command data in the firmware and when receiving response data in the client.
- Validate response status in client.

Disruptive changes:
- GET_DEVICE_CAPABILITIES: list of cmds in data are now really Big Endian
  Note: the initial attempt to use macros PP_HTONS were actually considering wrongly that the platform was Big Endian (BYTE_ORDER was actually undefined) while it is actually Little Endian.
- GET_APP_VERSION: response is now a tuple of bytes: major|minor (previously it was in reversed order as a single uint16_t in Little Endian)
- SET_SLOT_TAG_TYPE: tag_type now on 2 bytes, to prepare remapping of its enum
- SET_SLOT_DATA_DEFAULT: tag_type now on 2 bytes, to prepare remapping of its enum
- GET_SLOT_INFO: tag_type now on 2 bytes, to prepare remapping of its enum
- GET_DEVICE_CHIP_ID: now returns its 64b ID following Network byte order (previously, bytes were in the reverse order)
- GET_DEVICE_ADDRESS: now returns its 56b address following Network byte order (previously, bytes were in the reverse order). CLI does not reverse the response anymore so it displays the same value as before.
- MF1_GET_DETECTION_COUNT: now returns its 32b value following Network byte order (previously Little Endian)
- GET_GIT_VERSION response status is now STATUS_DEVICE_SUCCESS
- GET_DEVICE_MODEL response status is now STATUS_DEVICE_SUCCESS
- MF1_READ_EMU_BLOCK_DATA response status is now STATUS_DEVICE_SUCCESS
- GET_DEVICE_CAPABILITIES response status is now STATUS_DEVICE_SUCCESS
- HF14A_SCAN: entirely new response format, room for ATS and multiple tags
- MF1_DETECT_SUPPORT response status is now HF_TAG_OK and support is indicated as bool in 1 byte of data
- MF1_DETECT_PRNG response status is now HF_TAG_OK and prng_type is returned in 1 byte of data with a new enum mf1_prng_type_t == MifareClassicPrngType
- MF1_DETECT_DARKSIDE response status is now HF_TAG_OK and darkside_status is returned in 1 byte of data with a new enum mf1_darkside_status_t == MifareClassicDarksideStatus
- MF1_DARKSIDE_ACQUIRE response status is now HF_TAG_OK and darkside_status is returned in 1 byte of data. If OK, followed by 24 bytes as previously
- MF1_GET_ANTI_COLL_DATA: in case slot does not contain anticoll data, instead of STATUS_PAR_ERR, now it returns STATUS_DEVICE_SUCCESS with empty data
- MF1_SET_ANTI_COLL_DATA and MF1_GET_ANTI_COLL_DATA now use the same data format as HF14A_SCAN

For clients to detect Ultra/Lite with older firmwares, one can issue the GET_APP_VERSION and urge the user to flash his device if needed.
On older firmwares, it will return a status=b'\x00' and data=b'\x00\x01' while up-to-date firmwares will return status=STATUS_DEVICE_SUCCESS and data greater or equal to b'\x01\x00' (v1.0).

Other changes: cf CHANGELOG, and probably a few small changes I forgot about..

TODO:
- remap `tag_specific_type_t` enum to allow future tags (e.g. LF tags) without reshuffling enum and affecting users stored cards
- TEST!
2023-09-18 00:53:39 +02:00
dxl 98605be5b8 Fixed some bugs caused by closing pairing. 2023-09-14 10:52:05 +08:00
Philippe TeuwenandGitHub 4c43bca906 Merge pull request #150 from taichunmin/taichunmin
Docs: Add sdk.md
2023-09-13 01:51:02 +02:00
jimmytai 0db0d852cb sdk docs 2023-09-13 07:45:43 +08:00
Philippe TeuwenandGitHub 92599df531 Merge pull request #149 from aramova/patch-1
Update nomenclature technical_whitepaper.md
2023-09-13 01:18:36 +02:00
Thomas BurnhamandGitHub 5f36600cda Update nomenclature technical_whitepaper.md
Simulation and emulation used within same document while having no distinctive technical differentiating usage, propose changing all instances to Emulate/Emulation
2023-09-12 17:47:50 -04:00
Philippe Teuwen a43f4b96fc Fix get_slot_tag_nick_name in fw: data was deallocated before being sent 2023-09-11 10:02:23 +02:00
Philippe Teuwen 00a0019ef3 protocol note on LRC computations 2023-09-10 12:47:26 +02:00
Philippe TeuwenandGitHub 930d9f588b Merge pull request #140 from aenigma-es/main
Solved bug that makes hf mf eread command crashes
2023-09-09 23:59:23 +02:00
Eremita Solitario 6d2eb1761f Solved bug that makes hf mf eread command crashes 2023-09-09 23:32:53 +02:00
Philippe Teuwen 0dc83b4f5b troubleshooting 2023-09-08 09:57:22 +02:00
DXLandPhilippe Teuwen 9431a2c26c Reset FDT without requiring a response. 2023-09-08 09:11:30 +02:00
dxlandPhilippe Teuwen 84c31000ae No reset nfc core after field lost. 2023-09-08 09:11:30 +02:00
Philippe Teuwen edadfab729 test to rollback to 1st DXL patch... 2023-09-08 09:11:30 +02:00
Philippe TeuwenandGitHub a793810f59 Merge pull request #132 from Foxushka/simplify-code
block_count can't be more than 0xFF, simplify code
2023-09-08 09:05:55 +02:00
Foxushka e5c03f2d8b Explain limit 2023-09-07 22:26:38 +03:00
Foxushka d4925f586f Add 32 block limit 2023-09-07 22:22:50 +03:00
Philippe TeuwenandGitHub 6a5afb752d Merge pull request #131 from Foxushka/bump-settings
Update cmd_processor_get_settings
2023-09-07 20:04:44 +02:00
Philippe Teuwen e888115d3f build.sh: assoiative arrays are available only since Bash 4 and MacOS is still on some Bash 3... 2023-09-07 19:58:34 +02:00
Foxushka 1ac071e449 block_count can't be move than 0xFF, simplify code 2023-09-07 20:07:38 +03:00
Foxushka 6e4d861625 Update version in docstring 2023-09-07 19:41:57 +03:00
Foxushka dbf4599221 Update cmd_processor_get_settings 2023-09-07 19:40:50 +03:00
dxl b3e0afc555 Enable BLE pairing by setting and disable by default. 2023-09-07 20:04:24 +08:00
Philippe Teuwen 922c025bf3 Fix issue #114 2023-09-07 10:47:13 +02:00
Philippe Teuwen 9b1fc863c3 style 2023-09-07 08:46:38 +02:00
Philippe Teuwen bc874f68ef doc 2023-09-07 08:44:03 +02:00
Philippe TeuwenandGitHub 1bb6840fba Merge pull request #104 from Foxushka/software-capabilities
Get device capabilities
2023-09-07 08:42:19 +02:00
DXLandGitHub 12fa994a03 Merge pull request #130 from whywilson/main
Add MTools Lite link and quickstart documents.
2023-09-07 11:32:07 +08:00
Wilson 2e38664792 Add MTools Lite link and quickstart documents. 2023-09-07 11:20:33 +08:00
Philippe TeuwenandGitHub e3d51a4d64 Merge pull request #129 from mitmarcus/patch-7
Update README.md
2023-09-07 00:27:21 +02:00
mitmarcusandGitHub db0170903c Update README.md
add new video about gui
2023-09-06 23:52:08 +03:00
Foxushka 902deed362 Eh 2023-09-06 23:47:10 +03:00
Foxushka 0398d7e9a8 Lite doesn't have this exported 2023-09-06 23:45:32 +03:00
FoxushkaandGitHub 2867c7d56c Update CHANGELOG 2023-09-06 20:42:13 +00:00
FoxushkaandGitHub cc9a10bcc8 Update CHANGELOG 2023-09-06 20:42:03 +00:00
Foxushka 2e912285f5 Implement DATA_CMD_GET_MF1_ANTI_COLL_DATA and DATA_CMD_GET_SETTINGS 2023-09-06 23:36:43 +03:00
Foxushka 55a70fc2e5 Move to PP_HTONS 2023-09-06 22:55:26 +03:00
FoxushkaandGitHub 58d43a36c4 Merge branch 'main' into software-capabilities 2023-09-06 22:34:57 +03:00
Philippe TeuwenandGitHub 47aed37751 Merge pull request #126 from mitmarcus/patch-6
Update README.md
2023-09-05 13:27:06 +02:00
mitmarcusandGitHub ea67c5cec5 Update README.md 2023-09-05 14:21:48 +03:00
mitmarcusandGitHub 7fe61d995b Update README.md
groupped documentation to be more readable
2023-09-05 14:09:33 +03:00
Philippe TeuwenandGitHub 62946387a8 Merge pull request #125 from mitmarcus/patch-5
Update README.md
2023-09-05 10:56:03 +02:00
mitmarcusandGitHub ec8da03206 Update README.md
fix typo
2023-09-05 11:52:40 +03:00
Philippe TeuwenandGitHub e0556857f2 Merge pull request #124 from mitmarcus/patch-4
Update modding.md
2023-09-05 10:35:59 +02:00
Philippe TeuwenandGitHub cef9efc5f5 Merge pull request #123 from mitmarcus/patch-3
Update troubleshooting.md
2023-09-05 10:34:22 +02:00
mitmarcusandGitHub a3cf711cac Update modding.md
found 1 more project
2023-09-05 11:26:09 +03:00
mitmarcusandGitHub 476775a701 Update troubleshooting.md
reminding people to turn on location setting in android
2023-09-05 10:51:02 +03:00
Philippe Teuwen 5a9ca62d2a doc 2023-09-04 23:16:19 +02:00
dxl 05b2270049 Merge remote-tracking branch 'origin/main' 2023-09-04 18:32:21 +08:00
dxl 9af1c4330c Delete unused function 2023-09-04 18:29:59 +08:00
Philippe Teuwen d928ab2285 docs 2023-09-03 15:41:26 +02:00
DXLandGitHub f934f54e0d Chameleon Lite emulation bug fixed 2023-09-03 19:26:26 +08:00
paul.73andGitHub 4bdec10538 Update CHANGELOG.md 2023-09-03 13:16:01 +02:00
paul.73andGitHub c9c3ad1d7a Chameleon Lite emulation bug fixed 2023-09-03 13:15:24 +02:00
Philippe Teuwen 76168621b4 style 2023-09-02 22:24:15 +02:00
Philippe Teuwen d50e1437b7 changelog 2023-09-02 22:22:52 +02:00
DXLandGitHub cda241361c Merge pull request #121 from xianglin1998/main
Mfc 1k Full emulation (not UID only) with OEM readers bugs fixed.
2023-09-03 04:09:52 +08:00
dxl f134b4f16a Mfc 1k Full emulation (not UID only) with OEM readers bugs fixed. 2023-09-03 03:38:23 +08:00
Philippe Teuwen 7506e64bc8 Mods 2023-09-01 20:17:36 +02:00
Philippe TeuwenandGitHub f54879b364 Merge pull request #120 from mitmarcus/patch-2
Update chameleonultragui.md
2023-09-01 12:27:55 +02:00
Philippe TeuwenandGitHub 150666899b Merge pull request #119 from mitmarcus/patch-1
Update firmware.md
2023-09-01 12:24:25 +02:00
Philippe TeuwenandGitHub 65845fd7f5 Update docs/firmware.md 2023-09-01 12:24:19 +02:00
mitmarcusandGitHub 5e1a502005 Update chameleonultragui.md
based on cyber.vi.king's and gametec_live's comment on this
2023-09-01 13:01:03 +03:00
mitmarcusandGitHub 4fcc2f565e Update firmware.md 2023-09-01 12:45:42 +03:00
mitmarcusandGitHub 93141e3e6c Update firmware.md
explanation on write modes provided by GameTec_live
2023-09-01 12:28:38 +03:00
Philippe TeuwenandGitHub 578255a0bf Merge pull request #118 from Foxushka/patch-2
Fix Chameleon crashes in BLE pairing
2023-08-31 01:07:28 +02:00
FoxushkaandGitHub 51b15ea90d Fix Chameleon crashes in BLE pairing 2023-08-30 18:49:05 +00:00
Philippe TeuwenandGitHub 5f530ad551 Merge pull request #117 from taichunmin/taichunmin
Docs: protocol.md
2023-08-30 20:20:35 +02:00
jimmytai 80a7054c7c Docs: protocol 2023-08-30 23:08:16 +08:00
Philippe TeuwenandGitHub 98813ca67e Merge pull request #116 from Foxushka/patch-1
Fix links and correct OS namings
2023-08-30 16:08:03 +02:00
FoxushkaandGitHub 327e6c06e5 Fix links and correct OS namings 2023-08-30 13:40:14 +00:00
Philippe TeuwenandGitHub 209867a76c Merge pull request #115 from drego85/patch-1
Added software for macOS
2023-08-30 15:35:46 +02:00
Andrea DraghettiandGitHub d57a24073b Update quickstart.md 2023-08-30 11:48:29 +02:00
Philippe TeuwenandGitHub a41322efae Merge pull request #109 from digitalcardboard/patch-1
Update cli.md
2023-08-30 10:18:50 +02:00
Philippe Teuwen c70165fafa bugreport templates 2023-08-30 00:05:50 +02:00
Philippe Teuwen f80e7fe14e doc ble 2023-08-29 13:09:24 +02:00
Jason NavarreteandGitHub 81f6dd2473 Update cli.md
Installing ninja fails without updating keys.
2023-08-28 21:33:36 -07:00
Philippe Teuwen 58e310c0c7 autopep8: increase line size to 120, else satest style will be reverted again 2023-08-28 09:49:00 +02:00
Philippe Teuwen 4272d7661a Fix GET_DEVICE crash 2023-08-28 09:48:05 +02:00
Foxushka d22ff44342 DATA_CMD_GET_DEVICE_CAPABILITIES implementation 2023-08-28 09:12:48 +03:00
Philippe Teuwen 845cae95ab Limit max battery info to 100% 2023-08-28 01:07:29 +02:00
Philippe Teuwen 7acc7e93dd #error 2023-08-28 01:07:29 +02:00
Philippe Teuwen bd3961077c CLI now takes into account Lite refusing to enter reader mode 2023-08-28 01:07:27 +02:00
dxl ae6df052f5 Changelog Updated 2023-08-28 01:51:18 +08:00
dxl 79809e3119 Merge remote-tracking branch 'origin/main' 2023-08-28 01:48:12 +08:00
dxl 2a98245700 Security BLE implemented 2023-08-28 01:40:04 +08:00
dxl df0263edc7 Added some precautions to the comments. 2023-08-28 01:39:36 +08:00
dxl c5c5de5d3c Added setting option for BLE connection key. 2023-08-28 01:38:17 +08:00
dxl 24c3cc86d6 Added cmd for ble bonds . 2023-08-28 01:37:26 +08:00
dxl d76fbd440c Added commands related to BLE pairing binding. 2023-08-28 01:35:57 +08:00
dxl ecec3c4e59 Fix compiler 2023-08-28 01:35:07 +08:00
Philippe Teuwen c0876aa11b noconfirm 2023-08-27 13:56:23 +02:00
Philippe Teuwen c56a7cc8bf troubleshooting 2023-08-27 13:53:03 +02:00
Philippe TeuwenandGitHub 54178eaa89 Merge pull request #101 from szymex73/fix-multicommand
Fix a bug in multiline command implementation
2023-08-26 20:50:23 +02:00
Philippe TeuwenandGitHub 52d7e7b0e0 Merge pull request #100 from szymex73/fix-argcomplete
Fix argument autocompleter bug (#97)
2023-08-26 20:47:38 +02:00
Szymon Borecki 9ee5d3a73e Fix a bug where a KeyboardInterrupt would trigger an error and crash the app 2023-08-26 19:31:35 +02:00
Szymon BoreckiandGitHub ea25fd14c1 Merge branch 'main' into fix-argcomplete 2023-08-26 19:26:20 +02:00
Szymon Borecki 5122246072 Fix argument autocompleter bug (#97) 2023-08-26 19:24:41 +02:00
Philippe TeuwenandGitHub daa32d0840 Merge pull request #99 from taichunmin/device-address
Fix device address is not the same with APP
2023-08-26 16:19:45 +02:00
jimmytai 5c3089ac3d Fix device address is not the same with APP 2023-08-26 22:15:23 +08:00
Philippe TeuwenandGitHub f2792c86d9 Merge pull request #98 from uhei/doc-mtools
docs: add links for MTools
2023-08-26 15:54:05 +02:00
Uli Heilmeier c2f29de9b0 docs: add links for MTools 2023-08-26 15:13:31 +02:00
Philippe Teuwen 94164093b0 cli doc fix by @GameTec-live 2023-08-26 12:29:05 +02:00
Philippe Teuwen 04741bdc2a autopep8 2023-08-26 12:06:15 +02:00
Philippe Teuwen f008e8bebc Add autopep8 to make_style script 2023-08-26 12:05:18 +02:00
Philippe Teuwen 86fcaa3d56 typos & style 2023-08-26 04:42:40 +02:00
Philippe Teuwen d5d955d2e9 pylance 2023-08-26 02:55:46 +02:00
Philippe Teuwen a596e98bf7 python style 2023-08-26 02:24:08 +02:00
Philippe Teuwen 65368dffff deadbeef 2023-08-26 01:52:40 +02:00
Philippe Teuwen d08c8c4605 Close properly after factory reset, fix typo 2023-08-26 01:48:30 +02:00
Philippe TeuwenandGitHub 1a1cb5b10e Merge pull request #95 from gentilkiwi/patch-1
Fix multiple Chameleon connected on WSL1
2023-08-26 00:34:58 +02:00
Benjamin DELPYandGitHub 3bf25f1766 Fix multiple Chameleon connected on WSL1
Avoid

```
Chameleon Connect fail: [Errno 2] could not open port /dev/ttyS15
/dev/ttyS39: [Errno 2] No such file or directory: '/dev/ttyS15\r\n/dev/ttyS39'
```

By only returning the first COM port with `VID_6868&PID_8686`
2023-08-26 00:31:44 +02:00
Philippe Teuwen 5c36004e9c doc 2023-08-26 00:16:43 +02:00
Philippe Teuwen 590a45eddc style 2023-08-25 23:55:12 +02:00
Philippe TeuwenandGitHub c8a2b52982 Merge pull request #94 from gentilkiwi/patch-1
Fix compilation problem error: a label can only be part of a stateme…
2023-08-25 23:53:51 +02:00
Philippe Teuwen 86067576d8 doc 2023-08-25 23:51:51 +02:00
Philippe Teuwen 249cadc736 reorg doc 2023-08-25 23:41:25 +02:00
Benjamin DELPYandGitHub 0ebbc56f7c Fix compilation problem error: a label can only be part of a statement and a declaration is not a statement
Please avoid creating variable in middle of functions, and in this particular case double `uint8_t status;`.

Can be valid for some compiler, but does not help to read the code.
2023-08-25 23:33:40 +02:00
Philippe Teuwen 6d096df88b readme 2023-08-25 22:55:05 +02:00
Philippe TeuwenandGitHub 033369e7c0 Merge pull request #89 from GameTec-live/users-guide
Adding a (not so) basic users guide
2023-08-25 22:41:23 +02:00
Philippe Teuwen 591b03e1b3 emojis 2023-08-25 22:37:44 +02:00
Philippe Teuwen c6030c8fdf Remove command ID, there is no 1-1 mapping between cli commands and fw commands and it's more a concern for devs than uers 2023-08-25 22:25:57 +02:00
Philippe TeuwenandGitHub b4b48fe793 Merge branch 'main' into users-guide 2023-08-25 22:22:13 +02:00
Philippe Teuwen 1a4fcdda01 doc 2023-08-25 22:16:07 +02:00
GameTec_live 6d4dee4247 Merge branch 'users-guide' of https://github.com/GameTec-live/ChameleonUltra into users-guide 2023-08-25 21:17:38 +02:00
GameTec_live 0d9ad25765 cli 2023-08-25 21:17:21 +02:00
1adbc915ce Update docs/firmware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 20:07:59 +02:00
Philippe Teuwen 05f25e830c More Chinese (auto) translation 2023-08-25 19:51:27 +02:00
Philippe Teuwen 2ba2ca92fd More Chinese (auto) translation 2023-08-25 19:40:46 +02:00
GameTec_live 62392a671c moved dev, added ideas for fw section 2023-08-25 19:21:31 +02:00
GameTec_live bf3b93622d fix z height 2023-08-25 18:55:35 +02:00
GameTec_live 7c5eb55fdf remove floating ´ 2023-08-25 18:51:50 +02:00
ef300fbbfe Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:51:04 +02:00
4731d04c3f Update docs/home.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:50:40 +02:00
e063c99b71 Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:50:17 +02:00
f783f3a35b Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:49:38 +02:00
1e6a153c7e Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:48:09 +02:00
34d6d79306 Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:47:34 +02:00
03665b778d Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:46:07 +02:00
34974bafcd Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:45:55 +02:00
f35e288cad Update docs/hardware.md
Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-25 18:45:37 +02:00
GameTec_live b58bf57d28 fix links 2023-08-25 18:06:48 +02:00
Philippe Teuwen 7ff6a0b3a2 Allow pasting multiple commands at once, as it was with readline 2023-08-25 17:57:12 +02:00
GameTec_live 6ba03eee2e hw done 2023-08-25 17:52:18 +02:00
Philippe Teuwen c24e69b44c Allow to interrupt sleep sequence during final animation with a simple button press.
Because otherwise one must wait for sleep animation to finish, then press button then wait for boot animation to finish...

Also, fix saved config CRC after config has been saved
2023-08-25 13:41:23 +02:00
Philippe Teuwen ef46b22d69 Fixed logs corruption and app reset on FDS write, added logs flush on sleep
Bug when NRF_LOG_DEFERRED=0
due to a userland NRF_LOG_INFO after FDS record update was initiated, interrupted by FDS record IRQ handler and its own NRF_LOG_INFO
resulting in
<error> app: Fatal error
<warning> app: System reset

Added a few more NRF_LOG in FDS module as well.
Added NRF_LOG_FLUSH in system_off_enter to not miss last messages.
2023-08-25 13:18:06 +02:00
GameTec_live f5b32c76dd commiting changes is useful... 2023-08-24 20:08:52 +02:00
GameTec_live 3efdc3d251 lite 2023-08-24 18:46:04 +02:00
Philippe Teuwen 727cd5e6fa CRLF and typo 2023-08-24 18:42:27 +02:00
GameTec_live 598bc300d9 change to seperate files 2023-08-24 18:11:37 +02:00
Philippe Teuwen 938f2b312c offline copy IC/ID: don't skip HF if LK ok 2023-08-24 17:41:18 +02:00
Philippe Teuwen 7f569113a0 CLI check python version 2023-08-24 17:00:05 +02:00
Philippe Teuwen 8d75ae45c4 clearer(?) comments on settings migration 2023-08-24 16:49:40 +02:00
dxl 585748e302 Fix the space allocation bug and initialization bug in the settings. 2023-08-24 21:20:01 +08:00
GameTec_live cd94f07604 ultra HW 2023-08-24 11:48:55 +02:00
Philippe TeuwenandGitHub 8570afc440 Merge pull request #88 from nemanjan00/long-press
Add long press
2023-08-24 11:05:04 +02:00
Philippe Teuwen 3baa0e6633 button press logs 2023-08-24 10:54:22 +02:00
Philippe Teuwen 1ebeb9b461 fix btnpress info dump 2023-08-24 10:44:19 +02:00
GameTec_live 2ca0135e62 add gude md file 2023-08-24 10:27:49 +02:00
Philippe Teuwen 728472e672 comment accepted too fast before I fixed it :) 2023-08-24 09:55:01 +02:00
a856936203 Update firmware/application/src/app_main.c
Thanks @doegox

Co-authored-by: Philippe Teuwen <phil-github@teuwen.org>
2023-08-24 09:51:35 +02:00
Nemanja Nedeljkovic a01158f323 Remove parameter from --long 2023-08-24 08:50:55 +02:00
Nemanja Nedeljkovic f45cf5b406 Move log and add github username 2023-08-24 08:46:42 +02:00
Nemanja Nedeljkovic b2851251d1 Forgot about this 2023-08-23 19:39:20 +02:00
Nemanja Nedeljkovic 9db1dd37c0 Changelog 2023-08-23 19:34:31 +02:00
Nemanja Nedeljkovic 6e9582f4f2 Fix bug 2023-08-23 19:32:49 +02:00
Nemanja Nedeljkovic 60cc62d3c9 Add long press command 2023-08-23 19:29:25 +02:00
Nemanja Nedeljkovic 1ff0be6ed8 Add long press command 2023-08-23 19:29:03 +02:00
Nemanja Nedeljkovic 06023d4121 Add long press command 2023-08-23 19:18:47 +02:00
Nemanja Nedeljkovic 6f21856e5d Add long press 2023-08-23 19:08:55 +02:00
Philippe TeuwenandGitHub 5c6273905a Merge pull request #85 from augustozanellato/fix_successive_builds
Fix stuff I broke yesterday
2023-08-23 18:10:01 +02:00
Augusto Zanellato 9d5cf21182 Fix non-clean builds failure
Fix flash-dfu-* scripts being now broken
2023-08-23 13:58:27 +02:00
Philippe Teuwen e7e4be04d0 translate fw app comments 2023-08-23 03:56:42 +02:00
Philippe TeuwenandGitHub dbda8b92fb Merge pull request #73 from m-kozlowski/wsl-autodetect
Add port auto detection on WSL1
2023-08-23 01:03:03 +02:00
Philippe Teuwen ece04d7384 style helpers 2023-08-23 00:51:42 +02:00
Philippe Teuwen e3ff2d0d95 C files: same style as for pm3 repo 2023-08-23 00:22:22 +02:00
Philippe Teuwen 37c99cece0 tabs to 4 spaces 2023-08-23 00:20:01 +02:00
Philippe Teuwen e43e668594 Remove tabs & spaces at end of lines 2023-08-23 00:18:31 +02:00
Philippe TeuwenandGitHub 18c6307673 Merge pull request #83 from nemanjan00/editorconfig
Editorconfig for py, c, h
2023-08-22 23:52:58 +02:00
Philippe TeuwenandGitHub 40b90aca74 Merge pull request #84 from augustozanellato/rework_st_delete
Remove restrictions from slot delete
2023-08-22 23:50:27 +02:00
Philippe TeuwenandGitHub fdc269a46a Merge branch 'main' into rework_st_delete 2023-08-22 23:50:21 +02:00
Philippe TeuwenandGitHub 989c7239f8 Merge pull request #80 from augustozanellato/refactor_ci
CI refactor
2023-08-22 23:46:02 +02:00
Philippe TeuwenandGitHub 27f2a4033c Merge pull request #82 from nemanjan00/offline-confirmation
Offline read status notification with LEDs
2023-08-22 23:42:45 +02:00
Philippe Teuwen 074168365f Rewrote offline uid copy to avoid 2 mode swaps
We also skip HF if we managed to clone a LF tag.
2023-08-22 23:40:22 +02:00
Philippe Teuwen ab9e9bad14 Fix offline_status_blink_color which was breaking following HF reader
this one took me so long to debug...
2023-08-22 23:38:09 +02:00
Augusto Zanellato 5f27cef975 Remove restrictions from slot delete 2023-08-22 23:30:33 +02:00
Philippe Teuwen 7ed8005a26 Fix tag_mode_enter short LF field trigger when leaving reader mode 2023-08-22 22:47:44 +02:00
Nemanja Nedeljkovic bbd0a730c7 Fix indentation 2023-08-22 21:03:37 +02:00
Augusto Zanellato 4bdbb8d450 Rework CI pipeline
Changes made:
 - CI properly supports being ran on PRs and shouldn't fail anymore on
   the RRG repo;
 - The nonsense of unzipping archives during release creation isn't
   needed anymore because now there's an artifact that holds all the
   files (both zip and others) that should be included in a release;
 - Softdevice and Application verification were re-enabled (as per
   @doegox suggestion);
 - Softdevice is now bundled in `-firmware` artifact;
 - `dev` release tag is now updated ad every push to main;
 - On PRs a comment linking to artifact is now added by CI after
   success, artifact links are done with nightly.link so that they also
   fork for unauthenticated users;

There are some quirks:
 - on_pr runs on pull_request_target because it needs write access to
   packages, but pull_request_target implies that GITHUB_SHA is set to
   the base repo HEAD commit, so the whole `checkout-sha` thing is
   needed. This also implies that if one of the workflow files are
   changed in a PR the changed versions won't be ran against that same
   PR.
 - Client building per OS isn't yet implemented but all the necessary
   scaffolding is there. At the moment the per-OS clients are just a zip
   file containing all the client source.

Examples:
  - PR comment: https://github.com/augustozanellato/ChameleonUltra/pull/14#issuecomment-1688737709
  - `dev` release: https://github.com/augustozanellato/ChameleonUltra/releases/tag/dev
2023-08-22 20:58:01 +02:00
Nemanja Nedeljkovic 012cc8c2a9 Add status for LF 2023-08-22 20:46:03 +02:00
Nemanja Nedeljkovic 2cd1f66ae3 Merge branch 'main' into offline-confirmation 2023-08-22 20:44:51 +02:00
Nemanja Nedeljkovic 3a462981c0 Editorconfig for py, c, h 2023-08-22 20:42:00 +02:00
Philippe Teuwen 95aded8267 changelog 2023-08-22 20:38:13 +02:00
Philippe TeuwenandGitHub 10a07419bf Merge pull request #79 from nemanjan00/offline-lf
Offline clone of LF UID
2023-08-22 20:36:31 +02:00
Nemanja Nedeljkovic 41a368a99d Fix structure 2023-08-22 20:31:41 +02:00
Philippe Teuwen 2ce2e25827 fix USB LED animation color on slot change 2023-08-22 19:44:20 +02:00
Nemanja Nedeljkovic 20d56517b1 Success color green 2023-08-22 18:52:05 +02:00
Nemanja Nedeljkovic b72294a4b7 Offline Confirmation by LED 2023-08-22 18:51:02 +02:00
Nemanja Nedeljkovic 30f3ddde88 Offline HF and LF 2023-08-22 17:32:50 +02:00
Nemanja Nedeljkovic 32934802fd Leave reader mode before exiting 2023-08-22 17:14:59 +02:00
Nemanja Nedeljkovic 6d77fc87a7 First become reader 2023-08-22 17:11:31 +02:00
Nemanja Nedeljkovic d5485f33a4 Draft code 2023-08-22 15:16:56 +02:00
dxl 120971c466 Fixed chameleon lite compile failed. 2023-08-22 20:15:05 +08:00
dxl ed4a84ccc6 Merge branch 'main' of https://github.com/RfidResearchGroup/ChameleonUltra 2023-08-22 20:01:32 +08:00
dxl 7355d512dd Offline ic tag uid copied implemented. 2023-08-22 20:01:03 +08:00
dxl 76643183ea Impl change the button function when click. 2023-08-22 19:58:33 +08:00
Philippe TeuwenandGitHub 352704d5fa Merge pull request #77 from sgnusov/main
Fix setting slot nick
2023-08-22 11:44:05 +02:00
mkozlowski 961b8a58f3 Faster COM port detection 2023-08-22 11:37:12 +02:00
Sgnusov d17c63f298 Fix setting slot nick 2023-08-22 09:34:24 +00:00
mkozlowski aa3d3e40b4 Fallback to default path when powershell.exe is not found in PATH 2023-08-22 11:23:50 +02:00
mkozlowski 9922dc5b50 Fallback to default path when powershell.exe is not found in PATH 2023-08-22 11:22:59 +02:00
dxl 68a3e463f1 Add command to get battery information #38 2023-08-22 12:05:48 +08:00
mkozlowski 6e411dc50c WSL2 doesn't need special handling 2023-08-21 21:33:17 +02:00
mkozlowski 2f0d4edb04 Add com port auto detection on WSL1 2023-08-21 19:57:03 +02:00
Philippe Teuwen 448188af7a changelog 2023-08-21 18:01:38 +02:00
Philippe TeuwenandGitHub 6073b5cbf3 Merge pull request #72 from augustozanellato/delete_slot_st
Add ability to delete sense type per slot
2023-08-21 17:59:05 +02:00
Augusto Zanellato d33ae755c1 Add ability to delete sense type per slot 2023-08-21 16:38:11 +02:00
Philippe Teuwen 4aea618650 changelog 2023-08-21 02:48:13 +02:00
Philippe TeuwenandGitHub da43f37838 Merge pull request #69 from szymex73/cli-history
Store CLI history in ~/.chameleon_history
2023-08-21 02:46:58 +02:00
Philippe Teuwen ce5c8a3b9d oops authors confusion in changelog 2023-08-21 02:45:08 +02:00
Philippe Teuwen d5f15b5f54 fix yml 2023-08-21 02:35:46 +02:00
Philippe Teuwen 8470c51d4a run CI on PR as well, skip if commit does not touch firmware code 2023-08-21 02:31:02 +02:00
Philippe Teuwen 423d212cf7 add authors and changelog files and reminder in CI 2023-08-21 02:17:00 +02:00
Philippe Teuwen 8d5643d1e9 Add option to enable sdk_validation.h 2023-08-21 01:02:52 +02:00
Szymon Borecki 4e0494b286 Store CLI history in ~/.chameleon_history 2023-08-21 00:54:36 +02:00
Philippe Teuwen 505ddc8c51 Remove old compilation artefacts 2023-08-21 00:37:10 +02:00
Philippe TeuwenandGitHub 136a7531f4 Merge pull request #66 from szymex73/cli-overhaul
CLI Overhaul
2023-08-21 00:09:02 +02:00
Philippe Teuwen e474e519df Revert workaround for WDT during emulation and fix SDK NFC IRQ handler 2023-08-20 11:43:23 +02:00
Philippe Teuwen 5e52180aec Mifare Classic emulator: fix asked by @Foxushka 2023-08-20 10:21:08 +02:00
Szymon Borecki 895b0ced12 Merge remote-tracking branch 'origin/main' into cli-overhaul 2023-08-20 01:25:24 +02:00
Philippe TeuwenandGitHub 494f92dfa6 Merge pull request #65 from Foxushka/hw-slot-info
Implement new Mifare Classic emulator configuration commands
2023-08-20 00:14:33 +02:00
Philippe TeuwenandGitHub 8879460e10 Merge branch 'main' into hw-slot-info 2023-08-20 00:11:42 +02:00
Philippe TeuwenandGitHub 12de4c0e0e Merge pull request #56 from domints/implement-get-slot-data
Implement get slot data
2023-08-20 00:07:46 +02:00
Philippe Teuwen 94a0206635 Workaround to prevent watchdog trigger during emulation. But there seems to be a deeper issue:
Once an external HF field is detected, when a first byte is received, then NFC IRQ is called non-stop.
But none of the conditions in nrfx_nfct_irq_handler() is met so the handler does nothing and there is no chance to get called from a registered callback.
Side effect is that main loop cannot run, button IRQs are called but button processing in main loop is not called, etc.
So one of the side effects is that bsp_wdt_feed() is not called.
Current workaround is to call bsp_wdt_feed() at the end of nRF SDK nrfx_nfct.c nrfx_nfct_irq_handler()
I suspect the hack of the NFC state machine done in nfc_14a.c nfc_tag_14a_event_callback() case NRFX_NFCT_EVT_FIELD_DETECTED
to get access to the anticollision phase is breaking sth in the SDK state machine, NFC IRQ should be called only on real change (field drop, cmd received,...)
2023-08-20 00:00:25 +02:00
Foxushka 151f412490 Implement new Mifare Classic emulator configuration commands, improve CLI
Slot

Won't work like this

More randomness on nested auth (for hardnested recovery) and change default GCC location

Nobody will have GCC in this default location, /usr/bin/ will target way more users

Get enabled slots command

hw slot list show disabled slots

Improve python code quality

Show Mifare Classic emulator settings in hw slot list

Implement hf mf settings to change Mifare Classic emulator settings

Update
2023-08-19 20:59:39 +03:00
Szymon Borecki dddc6f1a10 Merge remote-tracking branch 'origin/main' into cli-overhaul 2023-08-19 14:19:40 +02:00
Szymon Borecki a64be123db Remove the unnecessary readline import and add a shebang 2023-08-19 13:46:32 +02:00
Szymon Borecki f6e22328bb Add working argument completion 2023-08-19 13:44:15 +02:00
Philippe TeuwenandGitHub a34928888d Merge pull request #64 from augustozanellato/fix_releases
Use single release for dev builds
2023-08-19 02:12:34 +02:00
Augusto Zanellato ae48829a15 Use single release for dev builds
Fix workflow using deprecated stuff
2023-08-19 02:09:43 +02:00
Philippe TeuwenandGitHub de5aa050fd Merge pull request #52 from F9Alejandro/bugfix/cli-offset
[Bugfix] Attempted fix of Offset issues and utilizing enums
2023-08-19 01:24:03 +02:00
Philippe TeuwenandGitHub 22747138e7 Merge branch 'main' into bugfix/cli-offset 2023-08-19 01:18:42 +02:00
Philippe TeuwenandGitHub 9db1671be5 Merge pull request #63 from augustozanellato/factory_reset
Add factory reset command
2023-08-19 00:46:39 +02:00
Philippe Teuwen 28572958a7 thinner logo to fit 80col terms 2023-08-19 00:24:29 +02:00
Philippe Teuwen 3bfc52432a change slot nicknames encoding: gbk -> utf8 2023-08-19 00:14:19 +02:00
Philippe Teuwen 8e093d00b6 Enable watchdog 2023-08-18 23:11:03 +02:00
Augusto Zanellato 7b76aefd5e ACK command and use delayed reset 2023-08-18 22:35:39 +02:00
Philippe Teuwen bbf5f3027b NRF_LOG: add option to activate UART backend on SWO pin, see How_to_use_Firmware.md 2023-08-18 22:31:07 +02:00
Augusto Zanellato 4ab131d10a Implement wipe fds command used to factory reset 2023-08-18 22:13:06 +02:00
Dominik Szymański 813b12bd37 Implement Mifare Classic emulator slot read 2023-08-18 19:39:05 +02:00
Philippe Teuwen 828d88c273 Several changes on TagSenseType, TagSpecificType and SlotNumber:
* SlotNumber values range from 1 to 8 rather than from 0 to 7
  this allows more straightforward usage as ppl can use equivalently SLOT_1 or 1.
* SlotNumber.fix -> .to_fw, and add .from_fw
* removed unnecessary SLOT_NO
* More straightforward use of enums, no need for .value, .__members__, name.replace() etc
* Unify usage between TagSenseType and TagSpecificType
* Add str representations for TagSenseType
* Fixed TagSpecificType related help (e.g. in hw slot type -h)
* Removed some redundant error raise
* Note: iterations can be done with `for slot in chameleon_cmd.SlotNumber:`
2023-08-18 18:03:02 +02:00
Dominik Szymański 278deda0c6 Merge branch 'main' into implement-get-slot-data 2023-08-18 16:50:38 +02:00
Philippe TeuwenandGitHub 698c9b8ea5 Merge branch 'main' into bugfix/cli-offset 2023-08-18 16:02:55 +02:00
Philippe TeuwenandGitHub 8de6a31196 Merge pull request #61 from Foxushka/hw-slot-info
Implement "hw slot info" to show which tag type loaded into all slots
2023-08-18 15:57:40 +02:00
Foxushka 913c1540e3 Implement "hw slot info" to show which tag type loaded into all slots
As suggested by @augustozanellato

Fix input text disapperance in some cases

Show selected slot

Space
2023-08-17 22:40:04 +03:00
Dominik Szymański 85e63d90d9 Merge branch 'main' into implement-get-slot-data 2023-08-17 18:20:58 +02:00
Philippe TeuwenandGitHub fc0e016c04 Merge pull request #54 from nemanjan00/git-commit
Add git version command
2023-08-17 15:03:29 +02:00
Philippe TeuwenandGitHub 15a6c663b2 Merge pull request #59 from sgnusov/main
Fix data sanity check
2023-08-17 14:58:37 +02:00
Sgnusov 7e7abc50ea Fix data sanity check 2023-08-17 11:13:28 +00:00
Nemanja Nedeljkovic 0b5290706b Merge 2023-08-17 12:24:52 +02:00
Philippe Teuwen 997f58d0d0 Fix FDS records conflicts (dumps/nicks/settings overwriting each other) 2023-08-17 04:00:47 +02:00
Philippe Teuwen c6d95f34f7 Revert "Force tag_specific_type_t enum to be 32b and allocate banks so size and mapping won't change when we add new types"
This reverts commit e3e6b63117.
2023-08-17 00:14:11 +02:00
Philippe TeuwenandGitHub 32e0cdf16b Merge pull request #50 from domints/add-animation-modes-support
Add animation modes support
2023-08-16 23:48:07 +02:00
Philippe Teuwen 92a3f0966f suppress GCC warnings in nRF SDK and restore -Warray-bounds and -Wsizeof-array-div 2023-08-16 23:26:30 +02:00
Philippe Teuwen 5afd3332bd Suppress GCC 12 linker warnings about missing stubs 2023-08-16 23:26:30 +02:00
Philippe Teuwen e3e6b63117 Force tag_specific_type_t enum to be 32b and allocate banks so size and mapping won't change when we add new types 2023-08-16 23:26:30 +02:00
Philippe Teuwen b0233538b0 little fix for mode 2 to light up the slot LED on button press 2023-08-16 20:14:57 +02:00
Augusto ZanellatoandPhilippe Teuwen 707136a241 Add settings init, reset and migration logic
Align settings size to uint32_t
Add 78 reserved bits to settings
Use an enum for animation mode
2023-08-16 19:46:41 +02:00
Dominik Szymański 2ed37d9c2a Fix log messages 2023-08-16 01:17:45 +02:00
Dominik Szymański 75e319fdd6 Add EM410x slot reading ability 2023-08-16 00:25:02 +02:00
Dominik Szymański 564f7eaf4c Cleanup command ids, add slot get command ids 2023-08-15 23:56:56 +02:00
Dominik Szymański b23b13d4ea Merge remote-tracking branch 'src/main' into add-animation-modes-support 2023-08-15 22:57:57 +02:00
Dominik Szymański 6e81b5917e Add version field, make it bitfield struct 2023-08-15 22:56:53 +02:00
Augusto ZanellatoandNemanja Nedeljkovic ee8990aacd fw git version fixes, client support
Fix git version string length handling

Add git to docker fw-builder image

Add git version command to client

Add  client support
2023-08-11 19:46:17 +02:00
Nemanja Nedeljkovic 83811861cc Add git version command 2023-08-11 18:01:02 +02:00
DXLandGitHub e916e10c66 Update README.md 2023-08-11 22:24:57 +08:00
Alexander Featherston d77ca3cd7d Attempted fix of Offset issues and utilizing enums in place of hardcoded numbers.
Changes to be committed:
	modified:   software/script/chameleon_cli_unit.py
	modified:   software/script/chameleon_cmd.py
2023-08-11 01:16:25 -04:00
Dominik Szymański 166faaeee7 Fix wrong storage space 2023-08-10 23:04:39 +02:00
Dominik Szymański 85b2fb3d8a Upgrade command parser 2023-08-10 22:59:00 +02:00
Dominik Szymański f30ff7054c Add animation modes support 2023-08-10 22:26:22 +02:00
dxl c197a0ff05 Fixed issue with multiple spaces in readme file names 2023-08-10 12:53:20 +08:00
dxl 93c4965e2c Reformatting readme files 2023-08-10 12:28:18 +08:00
Szymon Borecki 0cfdff809f Add command autocompletion 2023-08-10 01:20:22 +02:00
Szymon Borecki cdf4669d34 Fix KeyboardInterrupt 2023-08-10 01:18:27 +02:00
Szymon Borecki 3789269c37 Add prompt-toolkit to requirements 2023-08-10 00:54:26 +02:00
Szymon Borecki e2b5b9b960 Use prompt-toolkit and switch to a different command registration system 2023-08-10 00:45:37 +02:00
Szymon Borecki e9fec48ede Fix docstring for expect_response and rename the associated exception 2023-08-09 23:51:12 +02:00
Szymon Borecki 3259de2f25 Replace the PositiveChameleonCMD class with an exception decorator 2023-08-09 23:37:52 +02:00
Szymon Borecki b8d2853f39 Use consistent naming for command units 2023-08-09 20:00:54 +02:00
dxl 8e51e081a9 Merge remote-tracking branch 'origin/main' 2023-08-09 11:42:02 +08:00
dxl 0e601366f2 Can't emulate 7B UID Mifare Classic cards bug fixed. 2023-08-09 11:41:39 +08:00
DXLandGitHub 8f2d999363 Update README.md 2023-08-08 19:57:10 +08:00
DXLandGitHub 1380c74515 Update README.md 2023-08-08 19:55:24 +08:00
dxl 611d01ac37 High performance of mf1 simulation implemented 2023-07-31 14:44:38 +08:00
iceman1001 f614276c00 udev rules file. Once installed you see your device as /dev/ultra-0 2023-07-30 10:55:52 +02:00
iceman1001 6292ef58e3 fix compiler warning 2023-07-29 13:27:59 +02:00
iceman1001 338fb13027 fix compiler warning. moved input param checking to earlier. 2023-07-29 12:29:16 +02:00
iceman1001 93c17d5727 remove warning for string formatter 2023-07-29 10:42:18 +02:00
iceman1001 2c0e0454de remove warning when compiling 2023-07-29 10:41:52 +02:00
iceman1001 6ee34622e8 allow exit/quit with shortcut too 2023-07-29 10:41:17 +02:00
IcemanandGitHub 69463ce4d5 Merge pull request #45 from shallax/main
Add readline import for Posix operating systems to handle arrow keys.
2023-07-29 10:33:50 +02:00
Thomas Pedley cb3376cc24 Add readline import for Posix operating systems to handle arrow keys. 2023-07-28 22:56:08 +01:00
Philippe Teuwen fb05a4422e add link & cosmetic stuff 2023-07-27 11:00:33 +02:00
Philippe Teuwen 5d244af38b forgot flash script mentioned in How_to_use_Firmware.md 2023-07-27 09:05:47 +02:00
Philippe Teuwen f5111ee068 Update How_to_use_Firmware.md 2023-07-27 01:13:02 +02:00
Philippe TeuwenandGitHub bbb35576a4 Merge pull request #43 from gentilkiwi/patch-1
Fix $hw_version in build.sh
2023-07-24 16:43:03 +02:00
Benjamin DELPYandGitHub 9fb71143d4 Fix $hw_version in build.sh 2023-07-24 16:31:59 +02:00
Philippe TeuwenandGitHub 6ffb43e226 Merge pull request #42 from Foxushka/dfu
Upload DFU zip files to releases
2023-07-24 02:54:19 +02:00
FoxushkaandGitHub 8a786b36a4 Not required 2023-07-23 20:02:34 +00:00
FoxushkaandGitHub edbafc6c53 Upload DFU zip files to releases 2023-07-23 20:02:03 +00:00
Philippe TeuwenandGitHub f0d180bb31 Merge pull request #40 from gentilkiwi/main
Clean nrf* part of build.sh + get device address & chip id
2023-07-23 10:19:43 +02:00
Benjamin DELPY 8a58d0011b Clean nrf* part of build.sh + get device address & chip id 2023-07-23 00:58:03 +02:00
Philippe Teuwen 0c15ccd7af enter_dfu_over_ble.py: support ChameleonLite as well 2023-07-22 22:45:49 +02:00
DXLandGitHub a48f6fc105 Merge pull request #36 from doegox/phil_fix_serialble
Catch exception when using virtual serial over BLE
2023-07-22 14:00:46 +08:00
DXLandGitHub fc392ab645 Merge pull request #35 from doegox/phil_tools_dfu
Add helper scripts to enter DFU from USB or from BLE
2023-07-22 14:00:36 +08:00
DXLandGitHub 0f1de197b7 Merge pull request #34 from doegox/phil_fix_dfu_exit
client: don't let recv thread crashing after hw dfu
2023-07-22 14:00:21 +08:00
DXLandGitHub 930d9edeb5 Merge pull request #33 from doegox/phil_fix_utf8
Fix Chinese encodings of some files GB18030=> UTF-8
2023-07-22 14:00:00 +08:00
DXLandGitHub ef8a44c08d Merge pull request #32 from doegox/phil_fix_sleepble
fix sleep timer when BLE gets disconnected
2023-07-22 13:59:49 +08:00
Philippe Teuwen 0a47c98d39 Catch exception when using virtual serial over BLE 2023-07-22 02:30:21 +02:00
Philippe Teuwen 868b6aadcd Add helper scripts to enter DFU from USB or from BLE 2023-07-22 01:58:40 +02:00
Philippe Teuwen f094a65061 client: don't let recv thread crashing after hw dfu 2023-07-22 00:45:01 +02:00
Philippe Teuwen b97c4a0b53 Fix GB18030 => UTF-8 encodings 2023-07-21 23:21:23 +02:00
Philippe Teuwen a5670bbcba add some comments to avoid future similar bugs when shuffling around code 2023-07-21 21:53:12 +02:00
Philippe Teuwen cfd512c5b1 fix sleep timer when BLE gets disconnected 2023-07-21 21:24:37 +02:00
dxl d858f9abb4 Added a photo of the final mass-produced DEV tool. 2023-07-21 18:52:38 +08:00
dxl 37ba8e6514 Delete unnecessary Chinese annotations uniformly. 2023-07-21 18:46:58 +08:00
dxl 5b302613b7 Fixed an issue with incorrect model of electronic components(Found before batch manufacture). 2023-07-21 18:46:16 +08:00
dxl adb878241d ChameleonUltra antenna board opensource 2023-07-21 18:42:49 +08:00
dxl 53a7f97904 ChameleonLite hardware opensource now. 2023-07-21 18:39:16 +08:00
dxl 73fffe224a Delete dummy file(ChameleonLite Open Source) 2023-07-21 18:37:02 +08:00
DXLandGitHub fc5538b7ec Merge pull request #31 from doegox/phil_fix_compil
fix compilation
2023-07-21 10:12:03 +08:00
Philippe Teuwen 6b4af603a6 fix compilation 2023-07-19 18:49:09 +02:00
DXLandGitHub e7264bddaa Merge pull request #17 from ca1e/ntag
Add Ntag21x Support
2023-07-19 10:37:22 +08:00
DXLandGitHub bcc1ae6fbb Merge pull request #28 from doegox/phil_lfem_fix
LF EM: sample field only when mod is off
2023-07-19 10:34:41 +08:00
Philippe Teuwen aac1315087 LF EM: make sure to sample the field only during the last no-mod half bit of a series of ID broadcasts 2023-07-18 17:52:56 +02:00
DXLandGitHub 6ea244745b Merge pull request #27 from doegox/phil_lfemul_fix
fix LF EM emulation
2023-07-18 17:19:06 +08:00
Philippe Teuwen d2cc8ba01e fix LF EM emulation? 2023-07-18 09:28:07 +02:00
DXLandGitHub f01a1dc898 Merge pull request #24 from augustozanellato/dfu_pkgs
Generate DFU packages in CI
2023-07-18 11:40:37 +08:00
DXLandGitHub 339a104d77 Merge pull request #26 from GameTec-live/main
fix autoconnect
2023-07-18 11:38:37 +08:00
GameTec_live ef2d438562 Make eload -t optional 2023-07-17 16:59:36 +02:00
GameTec_live 02ef90a901 fix autoconnect
switch autoconnect over to vid due to MS description and name implement
2023-07-17 16:43:48 +02:00
Augusto Zanellato 92b3553c53 Generate DFU packages in CI 2023-07-16 12:35:53 +02:00
DXLandGitHub bcdfc121bc Merge pull request #22 from doegox/phil_cflags
Fix cflags for gcc < 12
2023-07-15 14:04:21 +08:00
DXLandGitHub fcf94e2799 Merge pull request #23 from doegox/phil_exit
Graceful exit, also on ctrl-d
2023-07-15 14:04:05 +08:00
Philippe Teuwen db0bf483ce Fix cflags for gcc < 12 2023-07-14 10:31:32 +02:00
Philippe Teuwen 51bb2a9252 Graceful exit, also on ctrl-d 2023-07-14 10:30:27 +02:00
DXLandGitHub f629f73515 Update README.md 2023-07-13 18:56:46 +08:00
DXLandGitHub 74b5357472 Update README.md 2023-07-13 18:53:53 +08:00
DXLandGitHub 30e0dea5f7 Update README.md 2023-07-13 18:52:08 +08:00
DXLandGitHub c8ed0b9cd0 Update README.md 2023-07-13 18:51:15 +08:00
DXLandGitHub 6e68287e09 Update README.md 2023-07-13 18:50:37 +08:00
DXLandGitHub ffbf24574d Update README.md 2023-07-13 18:49:31 +08:00
DXLandGitHub 4522e73041 Update README.md 2023-07-13 18:48:34 +08:00
DXLandGitHub afda55e1f6 Update README.md 2023-07-13 18:47:25 +08:00
IcemanandGitHub 13da9416dc Merge pull request #21 from USBNinjaRRG/patch-1
Update README.md
2023-07-12 07:49:47 +02:00
USBNinjaandGitHub 7d85163a61 Update README.md 2023-07-12 13:20:33 +08:00
Augusto ZanellatoandGitHub 40f9778120 Add docker toolchain, add CI pipeline (#19) 2023-07-12 10:36:36 +08:00
dxl 939df3f0aa Correcting the description of certain devices in readme may reduce unnecessary controversies in the community. 2023-07-10 19:21:21 +08:00
GameTec_liveanddxl c738839d0b 1. Automatically try to search for ports when ignoring the - p parameter.
2. fixed .gitignore ignoring valid scripts
2023-07-10 14:36:46 +08:00
dxl 029c1c84b2 After passing the test compilation, merge the commit to the main branch. 2023-07-03 15:07:35 +08:00
Foxushkaanddxl 84c9380f83 Expose nfc_tag_mf1_is_detection_enable and fix typo 2023-07-03 15:00:15 +08:00
Foxushkaanddxl 4a7cf188a1 Fix compilation on latest compilator version (12)
CFLAGS -Wno-error
2023-07-03 15:00:15 +08:00
dxl ad3e0ac7cd Jlink work. 2023-07-03 13:22:23 +08:00
ca1e 05b4158aba fix ntag21x implement 2023-06-14 09:16:27 +08:00
derGraph ab4f366e49 Added debugging instruction
Please someone test JLink
2023-06-10 22:54:28 +02:00
derGraph bcc61b8b33 Instructions tested/fixed; Uploading added 2023-06-10 20:38:00 +02:00
derGraph c2f78e2a36 Adding STLink Support
Adding STLink Support: make flash_stlink uploads program over openocd.
2023-06-10 20:37:13 +02:00
derGraphandGitHub ccb08bb4eb Merge branch 'RfidResearchGroup:main' into main 2023-06-09 20:54:34 +02:00
ca1e 2a7604d8cc ntag21x implement 2023-06-09 18:55:15 +08:00
derGraph 0633da153a Update to gcc version 10.3.1 2023-05-22 09:14:08 +02:00
derGraphandGitHub 7772f4bfa3 Merge branch 'RfidResearchGroup:main' into main 2023-05-22 08:35:39 +02:00
derGraph 1cae95654a Updated Makefile defs to 10.3.1 2023-05-22 08:34:19 +02:00
282 changed files with 124294 additions and 17907 deletions
+3
View File
@@ -0,0 +1,3 @@
[*.{c,h,py}]
indent_style = space
indent_size = 4
+50
View File
@@ -0,0 +1,50 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
***Things to try before submitting a bug report***
* read the [troubleshooting guide](https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/docs/troubleshooting.md)
* check existing [issues](https://github.com/RfidResearchGroup/ChameleonUltra/issues)
* use the latest firmware and CLI
* for issues specific to another client than the Python CLI, use the corresponding issue tracker. E.g. [here](https://github.com/GameTec-live/ChameleonUltraGUI/issues) for the ChameleonUltraGUI
***Compilation problems***
Try compiling with verbose. Use `make VERBOSE=1` for the firmware and the software/src tools.
Include the verbose compilation logs.
***flashing problems***
Have you followed the instructions properly?
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior.
Explain it as you would do to someone not familiar with the problematic feature.
What is the abnormal behavior you observed?
E.g.
1. Connect '....'
2. Execute '....'
3. Press button '....'
4. See error '....'
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem. For console text and logs, better to dump them as text than image. Attach files if too long.
**Host (please complete the following information):**
- OS and version
- for compilation issues, the toolchain version
- inside CLI run `hw version` and paste the output here
**Additional context**
Add any other context about the problem here.
+5
View File
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Official channels Chameleon Ultra Community
url: https://github.com/RfidResearchGroup/ChameleonUltra#official-channels
about: Got questions? Ask in *official channels*, not in an issue
+25
View File
@@ -0,0 +1,25 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[idea]"
labels: Request, enhancement
assignees: ''
---
Please keep in mind we are still at the infancy of the project and a lot has still to be done.
Have first a look at the [Whitepaper](https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/docs/technical_whitepaper.md), the Wiki [Roadmap](https://github.com/RfidResearchGroup/ChameleonUltra/wiki/Public-Roadmap) and [Wishlist](https://github.com/RfidResearchGroup/ChameleonUltra/wiki/Wishlist).
No need for creating issues for well known missing supports, we are already aware :)
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+74
View File
@@ -0,0 +1,74 @@
# This is just a placeholder while the whole PyInstaller thing gets figured out
name: Client build
on:
workflow_call:
inputs:
checkout-sha:
required: false
type: string
jobs:
build_client:
name: Build client
strategy:
matrix:
include:
- name: windows
os: windows-latest
pre_command: |
? .
bundle_command: |
Compress-Archive -Path software\dist\* -DestinationPath client-windows.zip
- name: linux
os: ubuntu-latest
pre_command: |
true
bundle_command: |
(cd software/dist && zip -r "$OLDPWD/client-linux.zip" .)
- name: macos
os: macos-latest
pre_command: |
true
bundle_command: |
(cd software/dist && zip -r "$OLDPWD/client-macos.zip" .)
runs-on: ${{ matrix.os }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
ref: ${{ inputs.checkout-sha == null && github.sha || inputs.checkout-sha }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install PyInstaller and client dependencies
run: |
python -m pip install --upgrade pip
pip install pyinstaller
pip install -r software/script/requirements.txt
- name: Run OS specific setup
run: ${{ matrix.pre_command }}
- name: Compile native code
run: |
cd software/src
mkdir out
cd out
cmake ..
cmake --build . --config Release
- name: Run PyInstaller
run: |
cd software
pyinstaller pyinstaller.spec
- name: Upload built client
uses: actions/upload-artifact@v4
with:
name: client-${{ matrix.name }}
path: software/dist/*
- name: Zip up client for release
run: ${{ matrix.bundle_command }}
- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts-${{ matrix.name }}
path: client-${{ matrix.name }}.zip
+92
View File
@@ -0,0 +1,92 @@
name: Firmware build
on:
workflow_call:
inputs:
checkout-sha:
required: false
type: string
jobs:
build_fw_builder:
name: Build and push fw-builder Docker image
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
outputs:
image_hash: ${{ steps.push.outputs.digest }}
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Check out the repo
uses: actions/checkout@v4
with:
ref: ${{ inputs.checkout-sha == null && github.sha || inputs.checkout-sha }}
fetch-depth: 0
- name: ghcr.io login
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository }}-fw-builder
- name: Build and push Docker images
id: push
uses: docker/build-push-action@v4
with:
context: firmware
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build_fw:
name: Build firmware
runs-on: ubuntu-latest
needs: build_fw_builder
strategy:
matrix:
device_type: [ultra, lite]
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
ref: ${{ inputs.checkout-sha == null && github.sha || inputs.checkout-sha }}
fetch-depth: 0
- name: Build firmware
env:
repo: ${{ github.repository }}
run: |
docker run --rm -v ${PWD}:/workdir -e CURRENT_DEVICE_TYPE=${{ matrix.device_type }} ghcr.io/${repo,,}-fw-builder@${{ needs.build_fw_builder.outputs.image_hash }} firmware/build.sh
- name: Upload built binaries
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.device_type }}-firmware
path: firmware/objects/*.hex
- name: Unzip dfu images
run: |
sudo chown -R $USER:$USER firmware/objects
mkdir firmware/objects/${{ matrix.device_type }}-dfu-app
mkdir firmware/objects/${{ matrix.device_type }}-dfu-full
unzip firmware/objects/${{ matrix.device_type }}-dfu-app.zip -d firmware/objects/${{ matrix.device_type }}-dfu-app
unzip firmware/objects/${{ matrix.device_type }}-dfu-full.zip -d firmware/objects/${{ matrix.device_type }}-dfu-full
- name: Upload dfu app image
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.device_type }}-dfu-app
path: firmware/objects/${{ matrix.device_type }}-dfu-app/*
- name: Upload dfu full image
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.device_type }}-dfu-full
path: firmware/objects/${{ matrix.device_type }}-dfu-full/*
- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts-${{ matrix.device_type }}
path: firmware/objects/*.zip
+15
View File
@@ -0,0 +1,15 @@
on: pull_request_target
name: Changelog Reminder
jobs:
remind:
name: Changelog Reminder
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Changelog Reminder
uses: peterjgrainger/action-changelog-reminder@v1.2.0
with:
changelog_regex: 'CHANGELOG.md'
customPrMessage: 'You are welcome to add an entry to the CHANGELOG.md as well'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,49 @@
name: Deploy wiki to GitHub Pages with Jekyll
on:
push:
branches: ["main"]
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}.wiki
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
+44
View File
@@ -0,0 +1,44 @@
name: PR handler
on:
pull_request_target:
jobs:
firmware_pipeline:
name: Build Firmware
permissions:
packages: write
contents: read
uses: ./.github/workflows/build_firmware.yml
with:
checkout-sha: "${{ github.event.pull_request.head.sha }}"
client_pipeline:
name: Build Firmware
uses: ./.github/workflows/build_client.yml
with:
checkout-sha: "${{ github.event.pull_request.head.sha }}"
comment:
runs-on: ubuntu-latest
name: Comment on PR
needs:
- firmware_pipeline
- client_pipeline
permissions:
pull-requests: write
steps:
- uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
# Built artifacts for commit ${{ github.event.pull_request.head.sha }}
## Firmware
- [Ultra APP DFU Package](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/ultra-dfu-app.zip)
- [Ultra binaries](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/ultra-firmware.zip)
- [Lite APP DFU Package](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/lite-dfu-app.zip)
- [Lite binaries](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/lite-firmware.zip)
## Client
- [Linux](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/client-linux.zip)
- [macOS](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/client-macos.zip)
- [Windows](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/client-windows.zip)
+82
View File
@@ -0,0 +1,82 @@
name: Push handler
on:
push:
jobs:
firmware_pipeline:
name: Build Firmware
permissions:
packages: write
contents: read
uses: ./.github/workflows/build_firmware.yml
client_pipeline:
name: Build Firmware
uses: ./.github/workflows/build_client.yml
create_dev_release:
permissions:
contents: write
name: Create dev pre-release with artifacts
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
needs:
- firmware_pipeline
- client_pipeline
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Download release artifacts
uses: actions/download-artifact@v4
with:
pattern: release-artifacts-*
merge-multiple: true
path: release-artifacts
- name: Upload to dev release
uses: softprops/action-gh-release@v1
with:
body: |
Auto-Generated DFU packages from latest `main` commit.
For development purposes only.
These are not tested, here be dragons.
Built from commit ${{ github.sha }}
tag_name: dev
name: Development release
draft: false
prerelease: true
target_commitish: ${{ github.sha }}
generate_release_notes: true
files: release-artifacts/*
- name: Fix up release tag
run: |
git tag -f dev
git push --tags -f
create_release:
permissions:
contents: write
name: Create tagged release with artifacts
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
needs:
- firmware_pipeline
- client_pipeline
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Download release artifacts
uses: actions/download-artifact@v4
with:
pattern: release-artifacts-*
merge-multiple: true
path: release-artifacts
- name: Upload to tagged release
uses: softprops/action-gh-release@v1
with:
body: |
Auto-Generated DFU packages for Release ${{ github.ref_name }}
Built from commit ${{ github.sha }}
name: Release ${{ github.ref_name }}
draft: false
target_commitish: ${{ github.sha }}
generate_release_notes: true
append_body: true
files: release-artifacts/*
+56
View File
@@ -0,0 +1,56 @@
name: Lint (pyrefly + ruff)
on:
pull_request:
paths:
- "software/**"
- ".github/workflows/**"
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
shell: bash
working-directory: software
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: "pip"
cache-dependency-path: |
software/pyproject.toml
software/uv.lock
software/script/requirements.txt
- name: Set up uv
uses: astral-sh/setup-uv@v6
- name: Install dependencies with uv (if lockfile present)
if: ${{ hashFiles('software/uv.lock') != '' }}
run: uv sync --dev
- name: Install tools with pip (fallback)
if: ${{ hashFiles('software/uv.lock') == '' }}
run: |
python -m pip install --upgrade pip
# Try project requirements if present
if [ -f script/requirements.txt ]; then pip install -r script/requirements.txt || true; fi
# Ensure ruff and pyrefly are available
pip install ruff pyrefly
- name: Ruff check
run: |
set -e
(uv run ruff --version && uv run ruff check .) || ruff check .
- name: Pyrefly check
run: |
set -e
(uv run pyrefly --help >/dev/null 2>&1 && uv run pyrefly check) || pyrefly check
+714 -2
View File
File diff suppressed because it is too large Load Diff
+3
View File
@@ -0,0 +1,3 @@
Copyright of each contribution is tracked by the Git history.
See the output of `git shortlog -nse` for a full list or `git log --pretty=short --follow <path/to/sourcefile> |git shortlog -ne` to track a specific file.
See also [the Contributors page on Github](https://github.com/RfidResearchGroup/ChameleonUltra/graphs/contributors).
+160
View File
@@ -0,0 +1,160 @@
# Change Log
All notable changes to this project will be documented in this file.
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
## [unreleased][unreleased]
- Added PAC/Stanley LF protocol support: read, emulate and T55xx clone (@kevihiiin, @danieltwagner)
- Fix firmware application USB serial number (@taichunmin)
- Added ioProx LF protocol support (read, emulate and T55xx clone)
- Added `hf mfu nfcimport` to import Flipper Zero `.nfc` files into MFU/NTAG emulator slots, with `--amiibo` flag for automatic PWD/PACK derivation (@fmuk)
- Added commands to dump and clone Mifare tags
- Fix bad missing tools warning (@suut)
- Fix for FAST_READ command for nfc - mf0 tags
- Rewrite of the dynamic and static locks logic for NTAG213, NTAG215 and NTAG216; we shouldn't take into account the block lock bits
- Fixed an issue where we wouldn't be able to change CFG0 and CFG1 for NTAG213, NTAG215 and NTG216 once a password was added even if the cfg bit was reset.
- Fix for static nested key recovery (@jekkos)
- Fix LEDs being stuck on after battery check (@suut)
- Add TCP support for the CLI (@suut)
- Fix build on Android in Termux (@suut)
- Fix the issue where some reader cause CU to enter a strange state (@xianglin1998)
- The transmission performance of USB has been improved (@xianglin1998)
- Added cmd for set mf1 config 'field_off_do_reset' (@xianglin1998)
- Fix Windows build (@suut)
- Added `hf 14a config` to deal with badly configured cards (@azuwis)
- New Symmetrical LED Animation Mode and Improved Minimal Mode (@WillyJL)
## [v2.1.0][2025-09-02]
- Added UV, formatter and linter. Contribution guidelines. (@GameTec-live)
- Extend max packet data size from 512 to 4096 bytes (@Foxushka)
- HID Prox support (@TeCHiScy)
- `hf mf elog --decrypt` skip records with found keys (@taichunmin)
- Added cmd for fetching all slots nicks (@Foxushka)
- Added `hf mf senested` for recovering keys from static encrypted cards via backdoor (https://eprint.iacr.org/2024/1275) (@Foxushka)
- Added cmd for faster bulk key checking on one block (~33 keys per second) (@Foxushka, @taichunmin)
- Added cmd to acquire nonces for static encrypted cards via backdoor (@Foxushka)
- Added `firmware/docker-compose.yml` to build firmware in local docker (@taichunmin)
- Added cmd to acquire nonces for hardnested(Protocol doc need update) (@xianglin1998)
- Added command to check keys of multiple sectors at once (@taichunmin)
- Fixed unused target key type parameter for nested (@petepriority)
- Skip already used items `hf mf elog --decrypt` (@p-l-)
- Parallelize mfkey32v2 processes called from CLI (@p-l-)
- Added support for mifare classic value block operations (@taichunmin)
- Added regression tests (@doegox)
- Changed git version to version tag instead of dev tag (@taichunmin)
- Fixed 14A emulate bug and MF1 emulate bug (@spp2000 and @xianglin1998)
- Fixed `hf 14a raw` command raising `AttributeError` (@augustozanellato)
- Fixed ATS handling in tags that NAK RATS (@augustozanellato)
- Changed battery level curves based on experimental measures (@spp2000)
- Added multithreading on Nested and StaticNested (@xianglin1998)
- Fixed factory reset hanging (@augustozanellato)
- Changed fds_write_sync to take length in bytes instead of next multiple of 4 (@doegox)
- Fixed field LED when LF reading and HF cloning (@doegox)
- Added renaming of slot into "cloned" when having cloned an ID/UID with a button (@doegox)
- Fixed spurious LED in battery level, assigned battery level to long press B (@doegox)
- Changed `hw slot list` to display LF ID & HF anticol data, and names in the --short version too (@doegox)
- Added colors to CLI help (@doegox)
- Changed massively CLI, cf https://github.com/RfidResearchGroup/ChameleonUltra/issues/164#issue-1930580576 (@doegox)
- Changed CLI help: lists display and now all commands support `-h` (@doegox)
- Added button action to show battery level (@doegox)
- Added GUI Page docs (@GameTec-live)
- Changed CLI threads polling into blocking reads, to reduce CPU usage (@doegox)
- Added support for timestamped comments in CLI via `rem`, `;`, `%` or `#` (@doegox)
- Fixed watchdog trigger during `hw factory_reset` (@doegox)
- Added PyInstaller support for CLI client (@augustozanellato)
- Added proper Mifare Ultralight (original, C, EV1) / NTAG (213, 215, 216) emulation (@turbocooler).
## [v2.0.0][2023-09-26]
- Added `hw slot nick delete` and DELETE_SLOT_TAG_NICK (@doegox)
- Changed APP_FW_VER now deduced from git tag vx.y.z (@doegox)
- Changed initial button wakeup from 4 to 8 seconds (@aramova)
- Added MIFARE Ultralight reading features (@FlUxIuS & @doegox)
- Fixed MF1 write mode SHADOW was not preserved properly (@doegox)
- Changed field LED now active also in reader mode to indicate that reader is powering the field (@doegox)
- Changed slot enabled logic: now we have separate enabled_hf and enabled_lf, changed GET_ENABLED_SLOTS and SET_SLOT_ENABLE (@doegox)
- Changed tag type enum to be ready for new types, changed stored slotConfig and GET_SLOT_INFO (@doegox)
- Added HF14A_RAW and its support in `hf 14a raw` (@xianglin1998)
- Removed MF1_DETECT_DARKSIDE (@doegox)
- Added MF1_STATIC_NESTED_ACQUIRE and its support in `hf mf nested` (@xianglin1998)
- Changed `hf 14a scan`: Automatically send RATS to 14443-4a tags (@augustozanellato)
- Changed Darkside: use LEDs for visual feedback of attack progression (@doegox)
- Changed Darkside: longer RF field off for reset and longer CLI timeout (@doegox)
- Fixed Darkside: parity byte-to-array bug made it low probability to succeed (@doegox)
- Changed `hw detection decrypt` show progression and remove duplicate keys (@doegox)
- Changed dynamic cmd_map_init() by static cmd_map initialization (@doegox)
- Changed `hf slot list` to add clarity and colors (@doegox)
- Changed `hf mf sim` and `hf mf info` to support ATS (still to be used in actual emulation) (@doegox)
- Changed `hf mf eload` and `hf mf eread`: uploads/downloads are now 30x faster (@doegox)
- Changed CLI HF14AInfo logic merged inside HF14AScan for more consistent display of the results (@doegox)
- Added guessed type information for NXP tags, and reorganization of HF information part. (@FlUxIuS)
- Changed `hw raw` to detail status message (@doegox)
- Changed CLI to query capabilities on connect, not on every single command if device does not support get_device_capabilities (@doegox)
- Changed CLI to not instanciate ChameleonCMD on every single command (@doegox)
- Changed massively the protocol and its handlers for more consistency and easier maintenance and future dev (@doegox)
- Added `hf settings blepair` command to get and set ble pairing enable state, and default disable ble pair (@xianglin1998)
- Added `hf mf info` command to get UID/SAK/ATQA from slot (@Foxushka)
- Added `hw raw` to send raw command to Chameleon (@Foxushka)
- Added command to fetch all available commands from Chameleon and test if Chameleon supports it (@Foxushka)
- Fixed ChameleonLite emulation bug (@spp2000)
- Fixed MFC emulation issues with OEM readers, also temporarily disabling NFC_MF1_FAST_SIM (@xianglin1998)
- Fixed Chameleon crash during BLE pairing (@Foxushka)
- Fixed CLI takes into account Lite refusing to enter Reader mode (@doegox)
- Added BLE Security support (@xianglin1998)
- Added `hw settings blekey` to get and set ble connect key (@xianglin1998)
- Added `hw ble bonds clear` to delete all ble bonds (@xianglin1998)
- Fixed argument completion bug inserting additional hyphens (@szymex73)
- Fixed device address not the same within app (@taichunmin)
- Added initial version of the user guides (@GameTec-live)
- Added support for pasting several command lines at once with prompt_toolkit (@doegox)
- Added support for interrupting sleep sequence with a button press during animation (@doegox)
- Fixed logs corruption and app reset on FDS write, added logs flush on sleep (@doegox)
- Added support for long-press of buttons (@nemanjan00)
- Changed `hw slot delete`, now it can always delete from slot (@augustozanellato)
- Changed CI pipeline (@augustozanellato)
- Added offline copy EM card uid for btnpress (@nemanjan00)
- Added offline copy ic card uid for btnpress (@xianglin1998)
- Added `hw settings btnpress` to get and set button press function (@xianglin1998)
- Added `hw battery` to get battery information (@xianglin1998)
- Added `hw slot delete` to delete HF or LF out of a HF+LF slot (@augustozanellato)
- Changed CLI prompt autocompletion, saved history and internal cmd registration (@szymex73)
- Fixed SDK NFC IRQ handler busy loop (@doegox)
- Added `hf mf eread` to download slot dump to file (@domints)
- Added `lf em sim get` and old `lf em sim` is now `lf em sim set` (@domints)
- Changed MF1 command ids (@domints)
- Changed nonce randomness on nested auth for hardnested attack (@Foxushka)
- Added commands to configure MF1 emulation magic modes and more (@Foxushka)
- Added `hw factory_reset` to wipe user data (@augustozanellato)
- Changed slot nickname encoding gbk -> utf8 (@doegox)
- Added 5-second watchdog (@doegox)
- Added option to enable NRF_LOG UART on SWO pin (@doegox)
- Added `hw slot list` (@Foxushka)
- Added `hw version` (@nemanjan00 and @augustozanellato)
- Fixed data sanity check in MF1 emulation (@sgnusov)
- Fixed settings/dumps/nicks data corruption in flash (@doegox)
- Fixed slot LED on button wake-up (@doegox)
- Added support for init, reset and migrate settings (@augustozanellato)
- Added support to save settings in flash (@domints)
- Added `hw settings animation` to configure startup animation (@domints)
- Fixed compilation warnings from SDK (@doegox)
- Changed TagSenseType, TagSpecificType and SlotNumber enums (@F9Alejandro and @doegox)
- Added support for 7-byte UID MF1 emulation (@xianglin1998)
- Added high perf MF1 emulation (@xianglin1998)
- Added udev rules file (@iceman1001)
- Added documentation to use BlackMagicProbe out of ST-Link and show RTT NRF_LOG (@doegox)
- Added `hw chipid` and `hw address` (@gentilkiwi)
- Added helper scripts to enter DFU from USB or BLE and flash over DFU (@doegox)
- Fixed recv thread exception after `hw dfu` (@doegox)
- Fixed entering sleep after BLE disconnection (@doegox)
- Added ChameleonLite and ChameleonUltra hardware resources (@xianglin1998)
- Added NTAG21x emulation support (@ca1e)
- Fixed LF EM410x emulation (@doegox)
- Added automatic file format detection in `hf mf eload` (@GameTec-live)
- Fixed CLI exit exception (@doegox)
- Added CI pipeline, producing DFU packages (@augustozanellato)
- Added docker toolchain (@augustozanellato)
- Added automatic port detection (@GameTec-live)
- Added GET_MF1_DETECTION_STATUS (@Foxushka)
- Fixed compilation errors with GCC 12 (@Foxushka)
- Added documentation for JLink (@xianglin1998)
- Added support for ST-Link and debugging documentation (@derGraph)
## [v1.0][2023-06-06]
+21
View File
@@ -0,0 +1,21 @@
# Chameleon Ultra Contribution guidelines
Any and all contributions are welcome!
Heres a bit of info and a few guidelines to get you started:
- General
- Avoid force pushes. Force pushes and "one commit" PRs not only make reviewing more annoying but also erase a significant part of the git history. This, among other things, makes future debugging and bisection a lot harder.
- Conventional commits. It is recommended to follow the [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/) pattern when it comes to commit messages. While this is not strictly enforced, its highly recommended and a good habbit.
- Atomic PRs. To help keep an overview and avoid conflicts, it is highly encouraged to file Atomic PRs. Atomic PRs are:
- Focused Scope: It targets a single, well-defined change, making it easier to understand and review.
- Minimal Size: It contains only the necessary code modifications to achieve its goal, avoiding unrelated changes.
- Independent: It should be able to stand on its own without depending on other unmerged PRs, reviewed, and merged independently.
- Self-Tested: each PR should include an appropriate set of unit tests that tests the changes. (optional but highly appreciated)
- Atomic Commits. Similar thing as atomic PRs. When you are done with a feature, commit. Made a working change? commit. Git commits are basically free. Doing frequent commits at sensible points throughout development not only helps you keep track of progress but also saves progress and changes so you can revert when something goes wrong. It also helps when debugging and bisecting as more granular commits allow for easier issue location.
- CLI
- The recommended packagemanager is [UV](https://docs.astral.sh/uv/) (from astralsh). You may use the manager of your choice, but when adding new dependencies they must be added to the UV lock file and pyproject toml as well.
- Type safety is important. The CLI should be typesafe. Python 3.9+ offer a wide variety of type declarations. Metas [pyrefly](https://pyrefly.org/) is used to do type validation. It is recommended to install the appropriate vscode extension and check your types before opening a PR.
- Formatting matters. Mostly. While pixelpeeping and exact rules are annoying and unnescesary, format your code in a readable and logical way. [Ruff](https://docs.astral.sh/ruff/) is used to enforce various formatting rules. You may install the Ruff vscode extension or use the CLI to format before opening a PR.
- Avoid extra packages. Almost everyone knows the "meme" of the javascript ["is-even"](https://www.npmjs.com/package/is-even) package. While it is encouraged and makes sense to use packages where appropriate, just installing packages for the hell of it even if its a 2 liner is not sensible.
-40
View File
@@ -1,40 +0,0 @@
# How to use the Firmware
In this file you can look up how to [edit](#Editing-the-code), [compile](#Compiling-the-code) and [debug](#Debugging-the-code) the code!
## Editing the code
We are using [Visual Studio Code](https://code.visualstudio.com/download) to edit this project! Simply download and install it!
- Install the [ARM-GCC](https://mynewt.apache.org/latest/get_started/native_install/cross_tools.html) version [9.3.1 Compiler](https://developer.arm.com/downloads/-/gnu-rm) and remember the path where you installed it.
- Install the [C++ Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) in VS-Code.
- Create a new IntelliSense Configuration:
- press F1 in VS-Code and enter `C/C++: Edit Configurations (UI)`
- Add a new Configuration and name it
- Specify your Compiler path (path of previously installed Compiler `bin` folder)
- Change IntelliSense mode to `gcc-arm (legacy)`
- Add include path `${workspaceFolder}/**`
## Compiling the code
- Install the compiler (for instructions have a look at [Editing the code](#Editing-the-code))
- Edit Makefile.defs:
- Change `GNU_INSTALL_ROOT`(path of previously installed Compiler `bin` folder)
- Change `GNU_VERSION` (Version of the installed Compiler)
- Don't forget to remove the `#` in front of the changed lines
- Install make
- **Ubuntu:**
- Open a terminal.
- Run the following command to install Make: `sudo apt-get install build-essential`
- **Windows using Chocolatey:**
- Install Chocolatey:
- Open a PowerShell terminal with administrator privileges.
- Run the following command to install Chocolatey:
``` Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) ```
- Install Make:
- In the same PowerShell terminal, run the following command to install Make using Chocolatey: `choco install make`
- **macOS:**
- Open a terminal.
- Install Homebrew package manager by running the following command: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
- Once Homebrew is installed, run the following command to install Make: `brew install make`
- go into folder and run `make`
## Debugging the code
- Install [openocd](https://mynewt.apache.org/latest/get_started/native_install/cross_tools.html)
- Install [Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) VS-Code Extension
- MORE INFO ADDED LATER
+30 -200
View File
@@ -1,219 +1,49 @@
[nrf52_nfc_module_doc]: https://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52832.ps.v1.1%2Fnfc.html
![logo](docs/images/ultra-logo.png)
[nxp_rc522_datasheet]: https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf
![ultra picture](docs/images/ultra-overview.png)
![alt text](https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Header.png)
# ChameleonUltra Authorized Distributors
# ChameleonUltra
Lyon, France: [Lab401](https://lab401.com/)
Why not keep using ATxmega128?
First of all, it is difficult to buy chips because the lead time for the main chip is too long, and because the price
has skyrocketed. Secondly, because the interaction speed of the ATxmega simulation is slow, the decryption performance
of the READER mode cannot meet the needs, and the low-frequency function cannot be added, so we have been trying to
upgrade it, such as using the latest ARM to replace the AVR framework, and the performance will definitely be greatly
improved.
Santa Ana, United States: [Hackerwarehouse](https://hackerwarehouse.com/)
# Why NRF52840?
Hastings, UK: [KSEC](https://labs.ksec.co.uk/product/proxgrind-chameleon-ultra/)
NRF52840 has a built-in NFC Tag-A module, but no one seems to care about it. After playing with HydraNFC's TRF7970A and
FlipperZero's ST25R3916, the developers found that they can only simulate MIFARE UID. I accidentally tested the NFC of
52840, and found that it is not only surprisingly easy to simulate a complete MIFARE card, but also has very good
simulation performance, friendly data flow interaction, and very fast response, unlike the former which is limited by
the SPI bus clock rate. We also found that it has ultra-low power consumption, ultra-small size, 256kb/1M large RAM and
FLASH, also has BLE5.0 and USB2.0 FS, super CotexM4F, most importantly, he is very cheap! This is undoubtedly a treasure
discovery for us!
Montreal, Canada: [TechSecurityTools](https://techsecuritytools.com/product/chameleon-ultra/)
Below we will explain in detail how we exploited the performance of the NRF52840, and what seemingly impossible
functions have been realized with it!
Shenzhen, China: [Sneaktechnology](https://sneaktechnology.com)
# Supported functions
Guangdong, China: [MTools Tec](https://shop.mtoolstec.com/)
## High Frequency Attack
Lazada One, Singapore: [Aliexpress by RRG](https://proxgrind.aliexpress.com/store/1101312023)
| Attack Type | Tag Type | Whether the hardware supports | Does the software support | Whether the application layer supports | Note |
|--------------|:-------------:|------------------------------:|---------------------------|:--------------------------------------:|------------------------:|
| Sniffing | No | No | No | No | |
| MFKEY32 V2 | MifareClassic | Support | Support | Support | MifareClassic Detection |
| Darkside | MifareClassic | Support | Support | Support | Encrypted 4 bit NAck |
| Nested | MifareClassic | Support | Support | Support | PRNG(Distance guess) |
| StaticNested | MifareClassic | Support | Support | Not yet implemented | PRNG(2NT Fast Decrypt) |
| HardNested | MifareClassic | Support | Support | Not yet implemented | No |
| Relay attack | ISO14443A | Support | Support | Not yet implemented | No |
# What is it and how to use ?
## High Frequency Simulation
Read the [available documentation](https://github.com/RfidResearchGroup/ChameleonUltra/wiki).
| Card Type | Encoding Type | Whether the hardware supports | Does the software support | Whether the application layer supports | Note |
|-------------------------------|:--------------------:|------------------------------:|---------------------------|:--------------------------------------:|-----------------------------------------:|
| Non <13.56MHz or ISO14443A> | No | No | No | No | [NRF52 NFC Module][nrf52_nfc_module_doc] |
| NTAG 21x (210-218) | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| Mifare Ultralight | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| Mifare Ultralight Ev1 | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| Mifare Ultralight C | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| MifareClassic1K/2K/4K (4B/7B) | ISO14443A/106 kbit/s | Support | Support | Support | |
| Mifare DESFire | ISO14443A High Rate | Only supported Low rate | Only supported Low rate | Not yet implemented | |
| Mifare DESFire EV1 | ISO14443A High rate | Only supported Low rate | Only supported Low rate | Not yet implemented | Backward compatible |
| Mifare DESFire EV2 | ISO14443A High rate | Only supported Low rate | Only supported Low rate | Not yet implemented | |
| Mifare PLUS | ISO14443A High rate | Only supported Low rate | Only supported Low rate | Not yet implemented | |
# Compatible applications
## High Frequency Reader
* [ChameleonUltraGUI](https://github.com/GameTec-live/ChameleonUltraGUI)
* [MTools BLE](https://github.com/RfidResearchGroup/ChameleonUltra/wiki/mtoolsble)
* [Mifare Chameleon Tool (iOS only, Beta)](https://apps.apple.com/it/app/mifare-chameleon-tool/id6761231484)
| Card Type | Encoding Type | Whether the hardware supports | Does the software support | Whether the application layer supports | Note |
|-------------------------------|:--------------------:|---------------------------------------------:|----------------------------------------------|:--------------------------------------:|-------------------------------------------:|
| Non <13.56MHz or ISO14443A> | No | No | No | No | [NXP RC522 Datasheet][nxp_rc522_datasheet] |
| NTAG 21x (210-218) | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| Mifare Ultralight | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| Mifare Ultralight Ev1 | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| Mifare Ultralight C | ISO14443A/106 kbit/s | Support | Support | Not yet implemented | |
| MifareClassic1K/2K/4K (4B/7B) | ISO14443A/106 kbit/s | Support | Support | Support | |
| Mifare DESFire | ISO14443A High Rate | Supports low rates, or possibly higher rates | Supports low rates, or possibly higher rates | Not yet implemented | |
| Mifare DESFire EV1 | ISO14443A High rate | Supports low rates, or possibly higher rates | Supports low rates, or possibly higher rates | Not yet implemented | Backward compatible |
| Mifare DESFire EV2 | ISO14443A High rate | Supports low rates, or possibly higher rates | Supports low rates, or possibly higher rates | Not yet implemented | |
| Mifare PLUS | ISO14443A High rate | Supports low rates, or possibly higher rates | Supports low rates, or possibly higher rates | Not yet implemented | |
# Videos
## Low Frequency Attack
*Beware some of the instructions might have changed since recording, check the current documentation when in doubt!*
| Vulnerability Type | Tag Type | Whether the hardware supports | Does the software support | Whether the application layer supports | Note |
|--------------------|:---------:|------------------------------:|---------------------------|:--------------------------------------:|-----:|
| Sniffing | 125KHz | Support | Support | Not yet implemented | |
| Brute Force | EM410x ID | Support | Support | Not yet implemented | |
* [Downloading and compiling the official CLI](https://www.youtube.com/watch?v=VGpAeitNXH0)
* [Downloading ChameleonUltraGUI](https://www.youtube.com/watch?v=rHH7iqbX3nY)
* [ChameleonUltraGUI features overview](https://www.youtube.com/watch?v=YqE8wyVSse4)
* [Using ChameleonUltraGUI and the Chameleon Ultra](https://www.youtube.com/watch?v=9jtKNJ5-kVY)
* [MTools BLE - How to clone a card with ChameleonUltra](https://youtu.be/IvH-xtdW1Wk?si=4exqgAAeJ-kxU3aN)
## Low Frequency Simulation
# Official channels
| Card Type | Encoding Type | Whether the hardware supports | Does the software support | Whether the application layer supports | Note |
|--------------------------|:-------------:|------------------------------:|---------------------------|:--------------------------------------:|----------------------------------------------:|
| Non <125KHz/ASK/PSK/FSK> | No | No | No | No | Only 125 khz RF, Modulation ASK, FSK and PSK. |
| EM410x | ASK | Support | Support | Support | EM4100 is support(AD 64bit) |
| T5577 | ASK | Support | Support | Not yet implemented | |
| HID Prox | FSK | Support | Support | Not yet implemented | |
| Indala | PSK | Support | Support | Not yet implemented | |
| FDX-B | ASK | Support | Support | Not yet implemented | |
| Paradox | FSK | Support | Support | Not yet implemented | |
| Keri | PSK | Support | Support | Not yet implemented | |
| AWD | FSK | Support | Support | Not yet implemented | |
| ioProx | FSK | Support | Support | Not yet implemented | |
| securakey | ASK | Support | Support | Not yet implemented | |
| gallagher | ASK | Support | Support | Not yet implemented | |
| PAC/Stanley | ASK | Support | Support | Not yet implemented | |
| Presco | ASK | Support | Support | Not yet implemented | |
| Visa2000 | ASK | Support | Support | Not yet implemented | |
| Viking | ASK | Support | Support | Not yet implemented | |
| Noralsy | ASK | Support | Support | Not yet implemented | |
| NexWatch | PSK | Support | Support | Not yet implemented | |
| Jablotron | ASK | Support | Support | Not yet implemented | |
## Low Frequency Reader
| Card Type | Encoding Type | Whether the hardware supports | Does the software support | Whether the application layer supports | Note |
|--------------------------|:-------------:|------------------------------:|---------------------------|:--------------------------------------:|----------------------------------------------:|
| Non <125KHz/ASK/PSK/FSK> | No | No | No | No | Only 125 khz RF, Modulation ASK, FSK and PSK. |
| EM410x | ASK | Support | Support | Support | |
| T5577 | ASK | Support | Support | Support(Write) | |
| HID Prox | FSK | Support | Support | Not yet implemented | |
| Indala | PSK | Support | Support | Not yet implemented | |
| FDX-B | ASK | Support | Support | Not yet implemented | |
| Paradox | FSK | Support | Support | Not yet implemented | |
| Keri | PSK | Support | Support | Not yet implemented | |
| AWD | FSK | Support | Support | Not yet implemented | |
| ioProx | FSK | Support | Support | Not yet implemented | |
| securakey | ASK | Support | Support | Not yet implemented | |
| gallagher | ASK | Support | Support | Not yet implemented | |
| PAC/Stanley | ASK | Support | Support | Not yet implemented | |
| Presco | ASK | Support | Support | Not yet implemented | |
| Visa2000 | ASK | Support | Support | Not yet implemented | |
| Viking | ASK | Support | Support | Not yet implemented | |
| Noralsy | ASK | Support | Support | Not yet implemented | |
| NexWatch | PSK | Support | Support | Not yet implemented | |
| Jablotron | ASK | Support | Support | Not yet implemented | |
## Low Frequency Modulation
[modulation_psk]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/PSK.png
[modulation_fsk]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/FSK.png
[modulation_ask]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/ASK.png
| Modulation Type | wav |
|-----------------|----------------------------:|
| PSK | ![alt text][modulation_psk] |
| FSK | ![alt text][modulation_fsk] |
| ASK | ![alt text][modulation_ask] |
# 1. Ultra-low power consumption
It integrates a high-performance and low-power NFC module inside. When the NFC unit is turned on, the total current of
the chip is only 5mA@3.3V.
The underlying interaction is done independently by the NFC unit and does not occupy the CPU.
In addition, the 52840 itself is a high-performance low-power Bluetooth chip, and the encryption and calculation process
is only 7mA@3.3V. It can greatly reduce the battery volume and prolong the working time. That is to say, the 35mAh 10mm*
40mm button lithium battery can guarantee to be charged once every half a year under the working condition of swiping
the card 8 times a day for 3 seconds each time. Full potential for everyday use.
# 2. Not just UID, but a real and complete MIFARE encrypted data simulation
We can easily and completely simulate all data and password verification of all sectors, and can customize SAK, ATQA,
ATS, etc. Similar to an open CPU card development platform, 14A interaction of various architectures can be easily
realized.
# 3. Super compatibility with low-power locks using batteries
The structure of the old Chameleon AVR is slow to start during simulation. Faced with a battery-powered low-power lock
and an integrated lock on the door, it will be frequently interrupted, and the verification interaction cannot be
completed completely, resulting in no response when swiping the card.
In order to reduce power consumption, the battery lock will send out a field signal as short as possible when searching
for a card, which is no problem for the original card, but it is fatal for the MCU simulated card. Cards or mobile smart
bracelets simulated by the MCU cannot wake up and respond in such a short time, so many battery locks cannot open the
door, which greatly reduces the user experience.
This project specially optimizes the start-up and interaction logic and antenna for low-power reading heads. After
testing a variety of common low-power reading heads, they can open the door perfectly by swiping the card.
# 4. Ultra-fast response speed and low interaction delay(MifareClassic)
[fdt_standard_s50]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Standard_m1_s50.png
[fdt_redmi_k30]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Xiaomi_k30u_smartkey.png
[fdt_pm3_rdv401]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Proxmark3_Rdv4_RRG_(Firmware%20build%20at%2020201026).png
[fdt_chameleon_ultra]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/ChameleonUltra.png
[fdt_chameleon_tiny]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/ChameleonTiny.png
[fdt_flipper_zero]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/FlipperZero%20Simulation.png
| Simulation | FDT | "**_FDT_**" Rating |
|----------------------|:---------------------------:|:--------------------------------------------------------------------------------:|
| Standard MIFARE Card | ![alt][fdt_standard_s50] | &#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50; |
| ChameleonUltra | ![alt][fdt_chameleon_ultra] | &#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50; |
| Proxmark3 Rdv4.01 | ![alt][fdt_pm3_rdv401] | &#x2B50;&#x2B50;&#x2B50;&#x2B50; |
| RedMi K30 | ![alt][fdt_redmi_k30] | &#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50; |
| ChameleonTiny | ![alt][fdt_chameleon_tiny] | &#x2B50;&#x2B50;&#x2B50;&#x2B50;&#x2B50; |
| FlipperZero | ![alt][fdt_flipper_zero] | &#x2B50;&#x2B50; |
# 5. 256kB super large RAM cooperates with RC522 to replace Proxmark3 magically to complete the decoding
[attack_mifare_darkside]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Darkside.png
[attack_mifare_nested]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Nested.png
[attack_mifare_mfkey32]: https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/MFKEY32V2.png
| Attack Type | CLI |
|--------------|:------------------------------:|
| MFKEY32 V2 | ![alt][attack_mifare_mfkey32] |
| Darkside | ![alt][attack_mifare_darkside] |
| Nested | ![alt][attack_mifare_nested] |
| StaticNested | Coming Soon |
| HardNested | Coming Soon |
| Relay attack | Coming Soon |
# Hardware frame diagram:
![alt text](https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Hardware%20%20Frame%20Diagram.png)
# Hardware Pictures
![alt text](https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/resource/picture/Hardware%20Photos.png)
Where do you find the community?
* [RFID Hacking community discord server](https://t.ly/d4_C)
* Software/chameleon-dev for firmware and clients development discussions
* Devices/chameleon-ultra for usage discussions
* [GameTec_live discord server](https://discord.gg/DJ2A4wxncK)
###### Searching for the docs repo? Find it [here](https://github.com/RfidResearchGroup/ChameleonUltraDocs)
+3
View File
@@ -0,0 +1,3 @@
# Chameleon Ultra Guide
The docs have moved! [Wiki](https://github.com/RfidResearchGroup/ChameleonUltra/wiki)

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Some files were not shown because too many files have changed in this diff Show More