Este artigo irá guiá-lo pelo processo de verificação de que o firmware instalado na sua carteira de hardware OneKey Pro corresponde ao firmware de código aberto publicado no repositório oficial da OneKey no GitHub. Ao comparar o Checksum SHA-256, você pode garantir que o firmware provém de uma fonte confiável e assegurar a segurança do seu dispositivo.
O que é uma Soma de verificação?
Uma soma de verificação é um método para verificar a integridade dos dados. Ela calcula uma sequência alfanumérica de comprimento fixo a partir de um arquivo, que pode então ser usada para confirmar se o arquivo foi alterado.
⚠️ Observações importantes
O chip do Secure Element dentro de cada carteira de hardware OneKey é pré-carregado na fábrica com verificação oficial de múltiplas assinaturas.
Se o dispositivo for gravado com firmware não oficial, o dispositivo exibirá "Unofficial Firmware" na inicialização.
Este artigo fornece etapas adicionais para confirmar se o firmware atual corresponde exatamente à versão publicada no GitHub.
Processo de verificação
Passo 1: Baixar e instalar o firmware oficial mais recente
Conecte sua carteira de hardware OneKey ao computador usando um cabo USB.
O site detectará automaticamente as informações do seu dispositivo. Você poderá então selecionar e instalar o firmware mais recente.
Siga as instruções exibidas na tela e confirme a instalação na sua carteira de hardware.
Passo 2: Recuperar o checksum do firmware do dispositivo
No seu dispositivo, navegue até Configurações do sistema → Sobre o dispositivo.
Na seção de informações do firmware, você verá a versão do firmware e seu checksum.
Exemplo:
4.9.0[fccbac8-5ff2c88]
fccbac8
→ ID da versão do firmware5ff2c88
→ Primeiros sete caracteres do checksum do firmware
Passo 3: Calcular o checksum do firmware a partir do GitHub
Localize a versão do firmware que corresponda ao seu dispositivo e faça o download do arquivo
.bin
na seção Assets.
⚠️ Observação: o arquivo .bin
contém várias partes:
MCU (firmware do controlador principal)
Um ou mais firmwares do Secure Element (SE)
Informações de assinatura
Para verificação, você precisa extrair apenas o firmware MCU.
Extraindo o firmware
Salve o seguinte script como split_firmware.sh
(para macOS/Linux):
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Uso: $0 <arquivo_binario>"
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 "Formato de arquivo desconhecido"
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 "Divisão concluída com sucesso: firmware.bin e se.bin extraídos."
else
echo "Existem dados extras, mas o cabeçalho do segundo arquivo não é 'TF89'. Apenas firmware.bin foi extraído."
fi
else
echo "Sem dados extras, apenas firmware.bin foi extraído."
fi
Execute o script:
chmod +x split_firmware.sh ./split_firmware.sh onekey-firmware.bin
Após a execução, você obterá firmware.bin
(o corpo do firmware MCU).
Calcular o checksum
Execute o seguinte comando no seu terminal:
tail -c +2561 firmware.bin | shasum -a 256 -b
Isso exibirá um hash SHA-256 longo, por exemplo:
abcdef1234567890... -
Pegue os primeiros sete caracteres, por exemplo abcdef1
.
Passo 4: Comparar os resultados
Compare os primeiros sete caracteres do checksum calculado com o checksum exibido no seu dispositivo.
Se coincidirem, isso significa que seu firmware é idêntico ao código open-source publicado no GitHub.
✅ Por que isso é importante
Você pode ter certeza de que seu dispositivo está executando um firmware compilado diretamente a partir do repositório open-source oficial da OneKey.
Junto com a verificação multi-assinatura integrada ao Secure Element, isso garante a integridade e a segurança do firmware da sua carteira de hardware.