Commit Graph
43 Commits
Author SHA1 Message Date
iceman1001 c0a109dbc6 text 2026-09-16 02:39:42 +02:00
MsprgandClaude Fable 5 d852118de5 client: build the tab completion vocabulary at runtime from the command tree
Tab completion used a generated table (pm3line_vocabulary.h, refreshed by
hand via `make commands`) that drifted from the real command tables: new
commands were missing (e.g. `hw bwm*`), removed ones lingered, and the
"offline" flag depended on the platform of whoever regenerated it
(IfPm5() returns true offline on PM5 builds).

Build the vocabulary at startup instead:

- cmdparser: add walkCommandsRecursive(), a tree walk using a fourth
  internal sentinel (XX_internal_command_walk_XX) next to the dump ones.
  It hands each leaf to a visitor as its command_t chain (ancestors +
  leaf). A dispatch counter detects entries shown like a category but
  with their own parser (reveng) and reports them as leaves.
- pm3line_vocabulary: dynamic vocabulary holding the IsAvailable()
  predicates of every command and its ancestor categories, so completion
  applies exactly the rule CmdsHelp() uses, live, for both offline and
  connected devices. Script entries ("script run <relpath>") come from
  the same directories `script list` scans, sorted, including
  subdirectories with the path `script run` needs.
- pm3line: readline and linenoise completers consume the live vocabulary.
  The walk runs with output disabled so category handlers stay silent.
- Drop pm3_help2list.py and the header regeneration from `make commands`.

Behaviour change: entries whose category is hidden by `help` (e.g. `mem`,
`usart` offline) are no longer offered, matching `help`; when connected,
commands the device does not support are no longer offered either.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 14:29:04 +02:00
Niel Nielsen 94b61d494f Modify IfPm5 function to handle PM5 conditionally
Add conditional handling for PM5 presence based on build configuration.

Signed-off-by: Niel Nielsen <nieldk@gmail.com>
2026-08-25 12:20:26 +02:00
s00se 0482fa8757 Add API check to Android spinlock shim
Android spinlock shim not needed on modern (API 24+) Android, this fixes compiling on Termux

Signed-off-by: s00se <95649696+s00se@users.noreply.github.com>
2026-08-19 20:04:03 -06:00
Philippe Teuwen d2a8cca233 Add pm5 capabilities 2026-08-19 12:04:33 +02:00
Jan Breig f5925c766e Add spinlock shim for Android NDK builds
Fixes compiler errors on missing spinlock when building with Android NDK.
2026-06-25 05:50:12 +02:00
Philippe Teuwen dfb6663990 commands list helper: compute dynamically column width if > 16 2026-03-31 21:21:41 +02:00
Philippe Teuwen f9cfda9a72 Add hardening flags (NOHARDENING=1 to disable them) and fix Windows stringop-overflow 2026-02-28 16:22:44 +01:00
Aaron Tulino (Aaronjamt) 722a8aac8c [hf seos] Simulate client support 2025-12-22 15:10:51 -07:00
iceman1001 5de4dd68e5 text 2025-06-22 20:34:54 +02:00
iceman1001 47648c541c text 2025-06-19 20:26:13 +02:00
iceman1001 b6d826410d fix macos... 2025-06-19 17:42:56 +02:00
iceman1001 65607fc727 added Ultralight-C simulation. hf mfu sim -t 13. Use eload first. Also added support to upload UL-C dictionaries and UL-AES to spiffs memory. A lot of textual reworked across client. Unifiy texts and a bit more color ;) 2025-06-19 17:26:20 +02:00
iceman1001 79400d0779 text and style 2025-06-17 18:28:22 +02:00
jlitewski 791f02209d Implemented Buffer SaveStates 2024-04-20 14:14:15 -04:00
iceman1001 aa173ce94f no more misspelling of list for Iceman 2024-01-16 13:55:36 +01:00
iceman1001 e0b1b1af56 extra empty line to improve readbility 2024-01-14 21:30:46 +01:00
AloneLiberty fae8ffda44 Fix formatting and run make style 2023-03-26 16:12:39 +03:00
iceman1001 d02e8daba0 Changed CLI max string argument length limit from 512 to 4096. data asn1 now handles 2048 hex bytes input 2023-03-12 09:53:23 +01:00
Alejandro 474aaed4b7 Added a proper way to check if it is rdv4 fw 2023-01-24 23:01:28 +01:00
Philippe Teuwen fbc60ccbbb fix commands.json generator, 608 -> 687 commands! 2022-02-16 14:53:06 +01:00
Philippe Teuwen 30aa7aa7d1 Adapting license headers, WIP 2022-01-08 00:40:52 +01:00
iceman1001 d7291aac29 add some capabilities 2021-12-24 15:09:19 +01:00
Philippe Teuwen 4b936bc20c safer logic when touching locally g_printAndLog 2021-12-13 03:16:57 +01:00
Philippe Teuwen 2722655658 fulltext: fix bug triggering session log 2021-12-13 02:58:03 +01:00
Philippe Teuwen dd3b63ae32 rename global session 2021-08-21 20:31:05 +02:00
Philippe Teuwen 6a2f2b3979 rename global conn 2021-08-21 20:21:08 +02:00
Philippe Teuwen ce57637c80 rename globals GraphTraceLen OddByteParity pm3_capabilities 2021-08-21 17:53:54 +02:00
iceman1001 28eec73445 added a client preference for delay of execution. This a global delay before each command is parsed. You can unset it with by setting delay to ZERO. The purpose of this setting is for users who want to use the pm3 against a implanted implant where you have to get a good position and arrange the pm3 while pressing <enter>. 2021-07-14 09:57:16 +02:00
iceman1001 e4f55556ba style 2021-05-05 21:04:48 +02:00
Philippe Teuwen 008a0b5ab4 First attempt at dumping all help: proxmark3 --fulltext 2021-04-19 02:54:16 +02:00
Philippe Teuwen e2cc02af49 Allow to see help from all categories 2021-04-19 01:16:39 +02:00
Philippe Teuwen 7e68064446 Allow to see help offline 2021-04-19 00:33:59 +02:00
Niel Nielsen b0c160f236 Added honor to Iceman1001
Added star command in honor of @Iceman1001 hard work on this project
2021-01-14 14:34:55 +01:00
Christian Molson 614ab55809 Initial commit for em4x70 support.
Initially I only have an em4x70 variant used for car transponders.
Also known as the ID48.
2020-12-05 17:47:03 -05:00
Philippe Teuwen c3c59e35cb make style 2020-09-30 14:27:19 +02:00
Philippe Teuwen 5e26c096bb hw version: display firmware platform info 2020-09-25 16:42:54 +02:00
iceman1001 cabe121ca8 lf help text 2020-09-24 19:51:57 +02:00
iceman1001 06dfa3c32d coffee 2020-09-16 15:29:14 +02:00
tharexde c572a2bab8 introduced 'IfPm3EM4x50' function 2020-06-28 21:39:27 +02:00
Philippe Teuwen d234e2a8f5 less global vars 2020-06-02 00:51:32 +02:00
Philippe Teuwen 8bdda55115 Fix prompt colors in log -> spurious space in color macros -> adjust lots of files... 2020-04-22 02:22:55 +02:00
Bjoern Kerler 81bc0bc2b9 Reorder client src directories 2020-04-16 10:53:24 +02:00