Эта статья проведет вас через процесс проверки того, что прошивка, установленная на вашем аппаратном кошельке OneKey Pro, совпадает с прошивкой с открытым исходным кодом, опубликованной в официальном репозитории OneKey GitHub. Сравнивая контрольную сумму SHA-256, вы можете убедиться, что прошивка исходит из надежного источника и гарантировать безопасность вашего устройства.
Что такое контрольная сумма?
Контрольная сумма — это метод проверки целостности данных. Он вычисляет буквенно-цифровую последовательность фиксированной длины из файла, которую затем можно использовать для подтверждения того, был ли файл изменен.
⚠️ Важные замечания
Микросхема безопасного элемента внутри каждого аппаратного кошелька OneKey предварительно загружена на заводе официальной многосторонней верификацией.
Если на устройство была установлена неофициальная прошивка, при запуске на устройстве будет отображаться «Неофициальная прошивка».
Эта статья предоставляет дополнительные шаги для проверки того, точно ли текущая прошивка совпадает с версией, опубликованной на GitHub.
Процесс проверки
Шаг 1: Загрузка и установка последней официальной прошивки
Подключите ваш аппаратный кошелек OneKey к компьютеру с помощью USB-кабеля.
Веб-сайт автоматически определит информацию о вашем устройстве. Затем вы сможете выбрать и установить последнюю прошивку.
Следуйте инструкциям на экране и подтвердите установку на вашем аппаратном кошельке.
Шаг 2: Получение контрольной суммы прошивки устройства
На вашем аппаратном кошельке перейдите в Настройки системы → О устройстве.
В разделе информации о прошивке вы увидите версию прошивки и ее контрольную сумму.
Пример:
4.9.0[fccbac8-5ff2c88]fccbac8→ Идентификатор версии прошивки5ff2c88→ Первые семь символов контрольной суммы прошивки
Шаг 3: Расчет контрольной суммы прошивки из GitHub
Перейдите на страницу выпусков прошивки OneKey Pro на GitHub.
Найдите версию прошивки, которая соответствует вашему устройству, и загрузите файл
.binв разделе Assets.
⚠️ Примечание: файл .bin содержит несколько частей:
MCU (прошивка основного контроллера)
Одна или несколько прошивок безопасного элемента (SE)
Информация о подписи
Для проверки вам нужно извлечь только прошивку MCU.
Извлечение прошивки
Сохраните следующий скрипт как split_firmware.sh (для macOS/Linux):
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 <binary_file>"
exit 1
fi
INPUT_FILE="$1"
TOTAL_FILE_SIZE=$(stat -f %z "$INPUT_FILE")
MAGIC=$(dd if="$INPUT_FILE" bs=1 count=4 2>/dev/null)
calculate_total_size() {
local offset=$1
local size_bytes=$(dd if="$INPUT_FILE" bs=1 skip="$offset" count=4 2>/dev/null | od -An -tu4)
echo $((size_bytes + 1024))
}
if [[ "$MAGIC" == "TRZF" ]]; then
TOTAL_SIZE=$(calculate_total_size 12)
elif [[ "$MAGIC" == "OKTV" ]]; then
HEAD1_SIZE=$(dd if="$INPUT_FILE" bs=1 skip=4 count=4 2>/dev/null | od -An -tu4)
HEAD1_SIZE=$(echo $HEAD1_SIZE)
FILE_SIZE_BYTES=$(dd if="$INPUT_FILE" bs=1 skip=$((HEAD1_SIZE + 12)) count=4 2>/dev/null | od -An -tu4)
TOTAL_SIZE=$((HEAD1_SIZE + 1024 + FILE_SIZE_BYTES))
else
echo "Unknown file format"
exit 1
fi
dd if="$INPUT_FILE" bs=1 count="$TOTAL_SIZE" of=firmware.bin 2>/dev/null
REMAINING_SIZE=$((TOTAL_FILE_SIZE - TOTAL_SIZE))
if [ $REMAINING_SIZE -gt 0 ]; then
SECOND_HEADER=$(dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" count=4 2>/dev/null)
if [[ "$SECOND_HEADER" == "TF89" ]]; then
dd if="$INPUT_FILE" bs=1 skip="$TOTAL_SIZE" of=se.bin 2>/dev/null
echo "Split successfully: firmware.bin and se.bin extracted."
else
echo "Extra data exists but second file header is not 'TF89'. Only firmware.bin is extracted."
fi
else
echo "No extra data, only firmware.bin extracted."
fi
Запустите скрипт:
chmod +x split_firmware.sh ./split_firmware.sh onekey-firmware.bin
После выполнения вы получите firmware.bin (тело прошивки MCU).
Расчет контрольной суммы
Выполните следующую команду в вашем терминале:
tail -c +2561 firmware.bin | shasum -a 256 -b
Это выведет длинный хэш SHA-256, например:
abcdef1234567890-
Возьмите первые семь символов, например abcdef1.
Шаг 4: Сравнение результатов
Сравните первые семь символов вычисленной контрольной суммы с контрольной суммой, отображаемой на вашем устройстве.
Если они совпадают, это означает, что ваша прошивка идентична открытому исходному коду, опубликованному на GitHub.
✅ Почему это важно
Вы можете быть уверены, что на вашем устройстве установлена прошивка, созданная непосредственно из официального репозитория OneKey с открытым исходным кодом.
Вместе со встроенной многосторонней верификацией безопасного элемента это обеспечивает целостность и безопасность прошивки вашего аппаратного кошелька.
