Install
Download the APK built and published by the repository's GitHub Actions workflow.
OPEN-SOURCE ANDROID NFC DIAGNOSTIC
TapDance tests whether a MIFARE Ultralight AES tag still accepts the factory DataProtKey. It makes one explicit, read-only authentication attempt—nothing is written to tag memory.
Tests the card, not the door reader · Android device with NFC required
Hold an authorized Ultralight AES tag to the back of your phone.
No key recovery, no cloning, and no reader interaction. TapDance answers one specific configuration question about the tag in your hand.
Download the APK built and published by the repository's GitHub Actions workflow.
Explicitly arm one test, then hold a compatible, authorized tag against your phone.
See the outcome, or open the memory-only diagnostic report for the exact failing phase and timing.
00000000000000000000000000000000The tag completed mutual authentication using the all-zero factory key.
Android exposed an explicit rejection. This does not prove the system is secure.
The diagnostic report can distinguish RF loss from a proof-stage failure strongly consistent with Android hiding the card's short NAK.
Use TapDance only with tags you own or are explicitly authorized to test. TapDance never writes tag memory, but a failed authentication may still advance a tag's configured authentication-attempt counter. It performs no automatic retries.
The Android manifest contains no Internet permission. The app has no analytics, advertising, telemetry, crash-reporting SDK, or persistent NFC storage. A report leaves the app only when you explicitly copy or share it.
7b80b21de31c0e2b680bd9e57b37fd6218918e708e67dbfc3b5aee6fdb1570fcThis ephemeral key does not support in-place updates or prove publisher identity. Uninstall an older alpha before installing a new one; verify the GitHub release and provenance.
SHA-256 4fddf58e1f07da19e9764412b4c5fdf82fe4f08ef40dd2333bd2a71f15f073c1Android may ask you to allow installs from your browser or file manager. Grant it only for this installation, then disable that permission again afterward.
No. TapDance tests the physical card presented to the phone.
Stock Android can recognize the tag's four-bit rejection below the public app API and replace it with a generic I/O failure. TapDance shows that evidence in the diagnostic report but does not call it cryptographic proof.
No. It means only that Android exposed an explicit rejection for the one all-zero DataProtKey attempt.
No. TapDance performs no recovery or dictionary search.
It sends no memory-write command. A failed authentication can still affect a configured attempt counter on the tag.
TapDance is currently distributed directly as a small, auditable, open-source diagnostic utility.