How to upgrade a Trezor device without wallet.trezor.io? How to update a Trezor device without the Trezor backend?

The Trezor backend at wallet.trezor.io is suboptimal from a privacy perspective. Many people choose to use Electrum, Wasabi or any other wallet that offers more privacy.

The Trezor Android app may be able to upgrade a Trezor wallet this but it didn't do anything for me plus it's unclear whether it sends your XPUB to Trezor's servers anyway. So is it possible to update a Trezor hardware wallet without going to wallet.trezor.io or the Trezor Android app, and if so, how?
It is possible to use the trezor command line client trezorctl available here to install a firmware you downloaded from trezor as described in the developer docs here.

BE SURE YOU HAVE A BACKUP OF YOUR SEED

"1) Pick version of firmware binary listed on https://wallet.trezor.io/data/firmware/1/releases.json
2) Download it: wget -O trezor.signed.bin https://wallet.trezor.io/data/firmware/1/trezor-1.6.1.bin
3) Use trezorctl dry-run mode to get the firmware fingerprint:

trezorctl firmware-update -n -f trezor.signed.bin


Step 3 should produce the same fingerprint like your local build (for the same version tag)."

Then it can be installed from the command line: 

WARNING: This will erase the recovery seed stored on the device! You should never do this on Trezor that contains coins!

Build with MEMORY_PROTECT=0 or you will get a hard fault on your device.

Switch your device to bootloader mode, then execute:

trezorctl firmware-update -f path/to/firmware.bin