Skip to content

Paxton Dump Refactor + Hitag2 read and write + Plugin Additions and Changes - #9

Merged
quantum-x merged 29 commits into
lab-401:mainfrom
amec0e:main
Jul 21, 2026
Merged

Paxton Dump Refactor + Hitag2 read and write + Plugin Additions and Changes#9
quantum-x merged 29 commits into
lab-401:mainfrom
amec0e:main

Conversation

@amec0e

@amec0e amec0e commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Paxton Dump Refactor + Hitag2 read and write + Plugin Refactor

With this PR comes Hitag2 to Hitag2 cloning as well as a refactor for Paxton dumps to now carry Blocks 1-7 so Paxton to Hitag2 now works also.

  • Added HT2 to HT2 read and write support (scan was already present)
  • Changed Paxton dumps to now contain the full 1-7 blocks and write 4-7 for pax to pax, and write 1-7 for pax to ht2, for Pax->HT2 Block 1 is written last (Paxton Password BDF5E846) so all writes can use the default HT2 password and the read back uses the Paxton Password to confirm write, verify still uses a strict block check.
  • Refactored T55 block writer plugin
  • Refactored T55 block reader plugin
  • Bumped all plugin versions in the ui.json to match their manifests.
  • New Plugin Added: Manage Dictionaries

Important Note:

Paxton dumps now save blocks 1-7 to allow for pax->generic HT2 using the default HT2 password (4D494B52) and in password mode. Older paxton dumps only saving blocks 4-7 will work fine for pax->pax writes but will not work for pax->HT2 so you will need to re-dump your paxton tags if you wish you use them to write to a generic HT2. This also assumes the HT2 uses password mode only and not crypto mode and that it has the default HT2 password anything other than those two conditions being met will fail.

Older dumps total payload length is 32 characters, this is checked by paxton for the old dump fallback and to ensure it can not be passed to a HT2 (this is when pax->ht2 will fail as ht2 expects 56)

New dumps total payload length is 56 characters, this is also checked by paxton to ensure if the payload length meets 56 then it will allow pax->HT2)

Hitag2 Dump Contents:

B1-7
UID
uid=UID

Paxton Switch2 New Dump Contents:

B1-7
UID
uid=UID
type=switch2

Paxton Net2 New Dump Contents:

B1-7
UID
paxid=PaddedPAXID
uid=UID
type=net2

New Plugin: Manage Dictionaries

This was made to help solve the gap for users to get the Iceman t55xx default dictionary and mfc default dictionary onto the users SD card without needing for them to plug into the PC and doing so manually. I also included the options to add keys to either dictionary, as well as the option to back up those dictionaries onto the SD card at backup_dictionaries/N/ just in case. The dictionaries used can be located here from the Iceman Repository these are the current latest copies at the time of writing.

The current dictionaries included are t55xx_default_pwds.dic and mfc_default_keys.dic

Features:

3 Selectable options

1. Load Dictionaries -> This will load the iceman dictionaries into their correct paths in keys ready for use with either plugins or the middleware.

2. Add to Dictionary -> This allows you a to select a dictionary like MF1 keys (12 hex) or T55xx keys (8 hex) and add to the specific dictionary, it will append the comment # iCopy-XS Added Key into the file when appending for better identification. This will get appended along with the keys to the end of the dictionaries.

3. Backup Dictionaries -> This will create a new directory on the SD card called backup_dictionaries for every new backup created it will create a subdir backup_dictionaries/N/ where 1 will always be the latest copy of the dictionaries

This helps to solve the issues where a dictionary can be applied but has not been loaded onto the iCopy via PC-Mode.

amec0e added 26 commits July 5, 2026 19:39
Updated block handling to be page-aware, added progress checkpoints, and improved documentation.
Paxton dumps now contain 1-7 for allowing pax->ht2 cloning with older dumps still supporting pax->pax but not pax->ht2, you will need to re-dump your paxtons to write to ht2 to capture the full 1-7 blocks
Updated the lfsearch.py middleware to ensure the 'raw' field is set to an empty string intentionally for Hitag 2, preventing incorrect payload handling and allowing it to fallback to bundle which is expected.
Refactor verification logic for Hitag2 and Paxton types to improve clarity and correctness.
Update write_paxton_blocks and write_hitag2_blocks functions to improve documentation and logic for writing to Hitag2 and Paxton tags.
Updated LF_TYPES to include Hitag2 as writable. Adjusted unsupported types and raw clone parameters to reflect changes.
@amec0e amec0e changed the title Refactor of t55xx_block_writer/reader plugin + version bump Paxton Dump Refactor + Hitag2 read and write + Plugin Refactor Jul 10, 2026
amec0e added 3 commits July 16, 2026 14:50
With this plugin comes Iceman and the comminity dictionaries t55xx_default_pwds.dic and mfc_default_keys.dic. With 3 options, 1 Load them onto the iCopy SD, 2 To add custom keys to either dictionary and 3 to make a backup the the dictionaries in keys/mf1 and keys/t55xx so you can keep your changes. This creates a new directory on the SD card called backup_dictionaries/N/ with N incrementing if another backup is created, 1 will however ALWAYS be the latest backup.
@amec0e amec0e changed the title Paxton Dump Refactor + Hitag2 read and write + Plugin Refactor Paxton Dump Refactor + Hitag2 read and write + Plugin Additions and Changes Jul 16, 2026
@quantum-x
quantum-x merged commit 372259e into lab-401:main Jul 21, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants