-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature request: updatefirmware command #112
Comments
#300 implements this, for the most part. The thing it does not implement is support for Ledger firmware updating and downloading. The reason is that Ledger has made it difficult for third party software to install firmware onto their devices. The process of even getting ledger firmware is convoluted and requires several API calls. Then there is the fact that the firmware itself is never downloaded to your computer and uploaded to the device. Rather the software acts as a proxy between your device and Ledger's servers. The servers send APDU commands via websockets to the software, which then forwards them to the device itself, which responds. So the software is just a dumb proxy. This is done for both firmware updating and app installation. This process is also not documented. I have largely figured it out and have written up the process as well as a script that does it. Another issue with the Ledger is that the firmware to install is dependent on the current firmware version, but does require some finagling and API calls to work out. There are multiple firmware targets for a particular firmware version, depending on the version that is being upgraded from. So for our firmware downloader to work, we would have to have it connect to the device to figure out what to download. But then there's the question of how to download the firmware in the first place. Ledger does not provide the firmware as a single file that can be downloaded. We would have to simulate the ledger running and installing the firmware, or allow After updating the firmware, we would also need to install the Bitcoin app for users too. Unfortunately apps are installed in the same manner. While there is a way to upload the apps to a device (a tool for developers), we can't download the official app binaries so this is not particularly helpful. We would have to do the same thing for firmware updating. Lastly, the Ledger update process is complicated enough that I have soft bricked multiple devices trying to re-implement it myself. I was able to fix those, but it was also complicated and required using firmware versions that don't exist on the API output. I had to figure this out be reading their source code. Thoughts or suggestions how we can handle Ledger firmware updating? |
It would be very nice to not be forced to use the centralized wallet portals to update, so putting the various python libraries to use to do the updates instead under one roof is desired.
We would likely have to put caveats on these commands since they'll likely "phone home" in some respect.
Ledger update would also have to include steps to update the bitcoin app itself(how?)
The text was updated successfully, but these errors were encountered: