LedgerHQ / LedgerHQ/blue-loader-python
checkGenuine returns Invalid status 6814 (Unknown reason)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 125
- Forks
- 75
- PR merge metrics
- No merged PRs in 30d
Description
Hello, I'm trying to check a Nano S on firmware 2.0.0 by running
python3 -m ledgerblue.checkGenuine --targetId 0x31100003
The docs indicate that 0x31100003 is correct for my firmware: https://support.ledger.com/hc/en-us/articles/4404382029329-Check-hardware-integrity?support=true.
I'm getting the following error
Traceback (most recent call last):
File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/Users/moshe/Library/Python/3.8/lib/python/site-packages/ledgerblue/checkGenuine.py", line 137, in <module>
secret = getDeployedSecretV2(dongle, bytearray.fromhex(args.rootPrivateKey), args.targetId, args.issuerKey)
File "/Users/moshe/Library/Python/3.8/lib/python/site-packages/ledgerblue/checkGenuine.py", line 44, in getDeployedSecretV2
dongle.exchange(apdu)
File "/Users/moshe/Library/Python/3.8/lib/python/site-packages/ledgerblue/comm.py", line 145, in exchange
raise CommException("Invalid status %04x (%s)" % (sw, possibleCause), sw, response)
ledgerblue.commException.CommException: Exception : Invalid status 6814 (Unknown reason)
When I try checkGenuineRemote it works.
python3 -m ledgerblue.checkGenuineRemote --targetId 0x31100003
However, the docs indicate the checkGenuineRemote is the right script for a Nano X, not a Nano S. What's even more confusing is when I run the command listed for the Nano X (which has a different targetId) on my Nano S, it also tells me the device is genuine:
python3 -m ledgerblue.checkGenuineRemote --targetId 0x33000004
What's the right command to use for a Nano S running firmware 2.0.0?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ledgerblue/checkGenuine.py and ledgerblue/comm.py, using the reported checkGenuine and checkGenuineRemote commands as entry points. Compare how target IDs and returned status codes are handled for Nano S firmware 2.0.0, then verify the documented command and its genuine-device result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100