Improve documentation and in-app messaging when Specter-Javacard is bricked due to wrong PIN attempts (Plus review behavior)#317
Conversation
3rdIteration
commented
Nov 5, 2025
- Improved documentation to mention what happens when Specter-Javacard PIN is incorrect and the applet bricked
- Improved feedback messages on the Specter Device when Specter-Javacard is bricked due to wrong PIN.
✅ Deploy Preview for specter-diy-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Updated the SMARTCARD_BLOCKED_MESSAGE for clarity.
…tton-text Update critical error wipe confirmation label
|
This was something that I noticed when some first-time users were giving Specter DIY a go at the DIY retreat, some folk would mess around and end up locking the Smartcard, but the current workflow was quite confusing both in terms of how everything behaves if you boot with a locked card, the messaging in the app as well as the documentation. One question to discuss here is whether the "wipe device" button should be offered if the user boots with a locked smartcard, or whether this should be reserved only for the specific "session" where the user enters the wrong pin and bricks everything. (I think some information should be offered when you insert a bricked card, before anything is entered) A second question is whether, given a user can use multiple different smartcards with the device, it's overkill to offer to wipe the whole thing if you brick a smartcard. (Perhaps just show a warning only, reserving the wipe process for if the device PIN is entered incorrectly the max number of times) Wiping on smartcard lock seems like overkill... The current behavior in this PR is that a new, more verbose message is displayed when booted with a bricked Smartcard, with a button offering to Wipe Specter Device |
|
Feedback from discussion, will remove the button to reset the device as this will confuse users, especially given that this factory resetting the specter device doesn't unlock the smartcard. Will modify and update the PR |
…behavior Prevent wiping when smartcard locks
|
@Schnuartz please test! |
|
@Schnuartz it's just the same process that you use to flash the applet on existing smartcard. It looks like your PC has multiple readers, so you just need to specify the reader in the command you are using. (Even if you specify part of its name with the -r argument) |
|
So now I was finally able to unbrick it in windows.. Using Kimi 2.5. Not sure if that was the easierst way, but I plugged in the QR-Scanner and the Smarcard. And it did it for me. After that it explained how he did it: NXP J3H145 Smartcard Refurbishment Guide
1. Hardware Identification
J3H145 vs JCOP3
2. Problem DiagnosisSymptom: Card "bricked" after too many wrong PIN attempts. Technical Root Cause
Why It's RecoverableThe ISD sits above the applet layer — even when the applet is permanently locked, the card OS remains accessible with factory keys. This is true for any GlobalPlatform-compliant Java Card. Compatible CardsThe same refurbishment process works on any GlobalPlatform-compliant Java Card:
All share: ISD architecture, SCP02/SCP03 secure channel protocols, same APDU command set. 3. Required Tools
4. Refurbishment ProcedureStep 1: Verify Card Connectivityjava -jar gp.jar -lExpected Output (Bricked State): Success Criteria: ISD responds with Step 2: Authenticate to ISD
Secure Channel: Step 3: Delete Locked Appletjava -jar gp.jar --delete B00B5111CB --force
What happens:
Success Indicator: (No error message = success) Step 4: Reinstall Fresh Appletjava -jar gp.jar --install MemoryCard.capThis installs a fresh Step 5: Verify Installationjava -jar gp.jar -lExpected Output (Refurbished): The 5. Important Notes
6. RelevanceThis procedure was used to refurbish a J3H145 card for Specter-DIY PR #317 testing. The card is now fully operational with a fresh applet instance. |
This is way overcomplicated and also confusing. You don't need Apache ant or anything like that, you just need to uninstall and reinstall the applet. |



