mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2026-10-23 12:52:23 +00:00
* RFID: write an EM4100 id onto ID8268 / Hitag S clone chips Adds the ID82xx Hitag S "magic" clones (F8268, 8211 and relatives) as a write target beside T5577, EM4305 and the Hitag micro variants, so a saved EM4100 key can be cloned onto one from the app and the rfid CLI. The chips ship streaming pages 4 and 5 as an EM4100 frame, so writing the 64-bit frame into those two pages changes the id they emit. Unlike every other write target this one cannot be blind: SELECT needs the tag's own UID. The Flipper's LF envelope detector cannot resolve an anticollision '1', so the reply is decoded from its '0' cells and the two remaining unknowns - the leading bits and the frame alignment - are put back to the tag as AC SEQUENCE prefixes, which only the tag whose UID starts that way answers. A UID is used only once the tag itself has confirmed it, and a negative control plus a re-verify guard against a chattering field. That read doubles as a presence check no blind writer can make, so when no such chip answers the write and its verify read are both skipped rather than costing a 2 s verify per pass. The target is opt-in: lfrfid_write_target_is_default() classifies every target through a -Wswitch'd switch, so appending one fails the build until someone decides whether it is safe to run unasked. Pages 4 and 5 hold application data on a genuine Hitag S and nothing readable here tells a genuine tag from a clone, so this must not fire while cloning a key with a real Hitag S in range. EM4100 at RF/64 only - the rate the factory TTF config emits; the faster variants would need the config page rewritten too, so they are refused. Ported from a standalone reader and writer validated over 575+ reads on three sample tags; written to two tags on hardware. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * CHANGELOG: ID8268 / Hitag S EM4100 write target Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>