Воспроизводимая сборка прошивок Keystone 3 Pro
Подготовка
- Виртуальная машина VirtualBox с установленным дистрибутивом Ubuntu 22.04 Desktop
- 40 GB для диска виртуальной машины
- 4 GB оперативной памяти
- 4 потока процессора
- Установленный Docker
Зависимости
Устанавливаем Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env" #не забудьте точку в начале
rustup install nightly-2024-07-01
Клонируем репозиторий прошивки:
git clone https://github.com/KeystoneHQ/keystone3-firmware ~/keystone3-firmware
cd ~/keystone3-firmware
git -c submodule.keystone3-firmware-release.update=none submodule update --init --recursive
Собираем образ Docker:
docker build -t keystonehq/keystone3_baker:1.0.2 .
Собираем утилиты для упаковки и проверки прошивки:
cd ~/keystone3-firmware/tools/code/firmware-maker/
cargo build
cd ~/keystone3-firmware/tools/code/firmware-checker/
cargo build
Сборка прошивки
cd ~/keystone3-firmware/
git checkout tags/2.0.8 # Укажите актуальную версию прошивки
# Мультивалютная прошивка
docker run -v $(pwd):/keystone3-firmware keystonehq/keystone3_baker:1.0.2 python3 build.py -e production
# Прошивка BTC-Only
docker run -v $(pwd):/keystone3-firmware keystonehq/keystone3_baker:1.0.2 python3 build.py -e production -t btc_only
# Прошивка Cypherpunk
docker run -v $(pwd):/keystone3-firmware keystonehq/keystone3_baker:1.0.2 python3 build.py -e production -t cypherpunk
sudo chown $USER:$USER build/mh1903.bin
Проверка прошивки
Хэш-сумма полученного файла build/mh1903.bin
должна совпадать со значением Source Code SHA-256 Checksum, указанным на официальном сайте, странице релиза на GitHub и в меню аппаратного кошелька Настройки устройства > Об устройстве > Об устройстве > Версия прошивки > Показать контрольную сумму.
sha256sum build/mh1903.bin
eea023f8556314431e8b89a883cf78061b8bf8f2ee9c79e25d96555bacb9cfe5 build/mh1903.bin
Упаковываем прошивку в установочный файл (без цифровой подписи разработчиков):
./tools/code/firmware-maker/target/debug/fmm --source build/mh1903.bin --destination keystone3-unsigned.bin
Проверим хэш-сумму прошивки в полученном установочном файле:
./tools/code/firmware-checker/target/debug/fmc --source keystone3-unsigned.bin
Firmware checksum sha256: eea023f8556314431e8b89a883cf78061b8bf8f2ee9c79e25d96555bacb9cfe5
You can check this value on your device.
Проверим хэш-сумму в оригинальном установочном файле:
# Используйте ссылку на файл с официального сайта (SD card Update)
wget https://keyst.one/contents/KeystoneFirmwareG3/v2.0.8/web3/keystone3.bin
./tools/code/firmware-checker/target/debug/fmc --source keystone3.bin
Firmware checksum sha256: eea023f8556314431e8b89a883cf78061b8bf8f2ee9c79e25d96555bacb9cfe5
You can check this value on your device.