Skip to content

Add Disney Toolbox app#1026

Open
nbelles wants to merge 1 commit into
flipperdevices:mainfrom
nbelles:nbelles/disney_toolbox_0.1
Open

Add Disney Toolbox app#1026
nbelles wants to merge 1 commit into
flipperdevices:mainfrom
nbelles:nbelles/disney_toolbox_0.1

Conversation

@nbelles
Copy link
Copy Markdown

@nbelles nbelles commented Apr 19, 2026

Application Submission

  • Toolbox for Disney park tech, including Kyber crystal writer and MagicBand+ beacon emulator.
  • See full README for more information on the app, it's functionality and usage

Extra Requirements

  • No required hardware but useful to have access to Kyber crystals or a MagicBand+

Author Checklist (Fill this out)

  • I've read the contribution guidelines and my PR follows them
  • I own the code I'm submitting or have code owner's permission to submit it
  • I have validated the manifest file(s) with python3 tools/bundle.py --nolint applications/CATEGORY/APPID/manifest.yml bundle.zip

Reviewer Checklist (Don't fill this out)

  • Bundle is valid
  • There are no obvious issues with the source code
  • I've ran this application and verified its functionality

@bettse
Copy link
Copy Markdown
Contributor

bettse commented Apr 24, 2026

Does this actually work?

Write Series 1 and Series 2 kyber crystal identities to RFID tags using the EM4100 protocol

EM4100 isn't a writable protocol

Place a writable EM4100 RFID tag on the Flipper's back

EM4100 aren't ever writable, and the Flipper only writes T5577, and Kyber are EM4305 (https://flipper.wiki/125khz-rfid-overview/#kyber-crystals)

@bettse
Copy link
Copy Markdown
Contributor

bettse commented Apr 24, 2026

There is already an app for MagicBand: https://lab.flipper.net/apps/magicband_plus_lights

@nbelles
Copy link
Copy Markdown
Author

nbelles commented Apr 24, 2026

Does this actually work?

Yes, it actually works. Has been tested writing to Series 1 and Series 2 crystals and tested in my lightsaber.

EM4100 aren't ever writable...

Flipper supports writing to tags as EM4100 which is the primary protocol used by devices to read the Kyber crystal codes. See firmware source code where writing EM4100 is implemented here:

bool protocol_em4100_write_data(ProtocolEM4100* protocol, void* data) {
    ...
}

There is already an app for MagicBand+

This does what that app does (provides a list of pre-built commands to broadcast), but adds much more functionality including creating custom MB+ BLE beacon commands right on the flipper, while also being a much more polished user experience. That app was simply a rebranding of the BLE Spam app and has a lot of left-over code and menus for that, while this app was built from the ground up for this use-case. I also started adding functionality for other Disney related BLE beacon commands in v0.2 for Astromech Droid personality and location beacons, hence the reason for putting this all together into one "toolbox".

@bettse
Copy link
Copy Markdown
Contributor

bettse commented Apr 24, 2026

Flipper supports writing to tags as EM4100

But it doesn't support "writable EM4100", like your readme says. If your tool is just about writing existing Kyber crystal with new data (not cloning to other chips), perhaps it should say "place kyber crystal"?

When you tested, you tested with writing data to other kyber crystals? Do you have a proxmark3 you can use to compare the written results?

@nbelles
Copy link
Copy Markdown
Author

nbelles commented Apr 24, 2026

Kyber crystals read the data off of any tag (real Kyber crystal or not) using the EM4100 protocol. If it’s a true EM4100 tag or just an EM4305 (what is actually in the Kyber crystal) that emulates the EM4100 protocol, the lightsaber doesn’t care. That’s why the readme comment says “writable EM4100”.

@bettse
Copy link
Copy Markdown
Contributor

bettse commented Apr 24, 2026

Have you looked at a trace of how the various products that support kyber crystal communicate with the chip?

@haw8411
Copy link
Copy Markdown
Contributor

haw8411 commented May 3, 2026

MagicBand App dev here. Tried it out and it's working well with my MagicBand. Good job; looks really good and works very well with my testing! It's cool you were able to integrate the command configuration and customization, while still keeping some presets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants