O fluxo de inicialização recomendado para um dispositivo é o seguinte:
Fluxo para dispositivos A/B
Se o dispositivo estiver usando A/B, o fluxo de inicialização será um pouco diferente. O slot de
inicialização precisa ser marcado como SUCCESSFUL
usando o HAL de controle de inicialização antes de atualizar os
metadados da proteção contra reversão.
Se houver uma falha na atualização da plataforma (não marcada
como SUCCESSFUL
), a pilha A/B vai voltar para o outro slot,
que ainda tem a versão anterior do Android. No entanto, se
os metadados de proteção contra reversão tiverem sido definidos, a versão anterior não poderá
ser inicializada devido à proteção contra reversão.
Comunicar o estado da Inicialização verificada aos usuários
Depois de determinar o estado de inicialização de um dispositivo, é necessário comunicar esse estado ao usuário. Se o dispositivo não tiver problemas, prossiga sem mostrar nada. Os problemas de inicialização verificada se enquadram nestas categorias:
- AMARELO: tela de aviso para dispositivos BLOQUEADOS com raiz de confiança personalizada definida
- LARANJA: tela de aviso para dispositivos DESBLOQUEADOS
- RED (eio): tela de aviso para corrupção de dm-verity
- VERMELHO (não foi encontrado SO): nenhum SO válido encontrado
Dispositivos BLOQUEADOS com raiz de confiança personalizada
Mostre uma tela AMARELA em cada inicialização se o dispositivo estiver BLOQUEADO, uma raiz de confiança personalizada tiver sido definida e a imagem tiver sido assinada com essa raiz de confiança personalizada. A tela AMARELA é dispensada após dez segundos, e o dispositivo continua iniciando. Se o usuário pressionar o botão liga/desliga, o texto "Pressione o botão liga/desliga para pausar" vai mudar para "Pressione o botão liga/desliga para continuar", e a tela nunca será dispensada, embora o dispositivo possa escurecer ou desligar a tela para se proteger contra queima. Se pressionar novamente, a tela será dispensada e o smartphone continuará a inicialização.
Para hex-number, use os primeiros 8 dígitos do sha256 da
representação libavb da chave pública usada para verificação, por exemplo,
d14a028c
.
Texto sugerido:
Seu dispositivo carregou um sistema operacional diferente.
Acesse este link em outro dispositivo para saber mais:
g.co/ABH
ID: hex-number
Pressione o botão liga/desliga para pausar
Dispositivos DESBLOQUEADOS
Mostrar a tela LARANJA em cada inicialização se o dispositivo estiver DESBLOQUEADO. A tela LARANJA é dispensada após dez segundos, e o dispositivo continua a inicialização. Se o usuário pressionar o botão liga/desliga, o texto "Pressione o botão liga/desliga para pausar" vai mudar para "Pressione o botão liga/desliga para continuar" e a tela nunca será dispensada. O dispositivo poderá escurecer e/ou desligar a tela, se necessário, para proteção contra burn-in ou semelhante. Se pressionar novamente, a tela será dispensada e o smartphone continuará a inicialização.
Para hex-number, use os primeiros 8 dígitos do sha256 da representação
libavb da chave pública usada para verificação, por exemplo,
d14a028c
.
Texto sugerido:
O carregador de inicialização está desbloqueado e não é possível garantir a integridade do software. Todos os dados armazenados no dispositivo podem ficar disponíveis para invasores. Não armazene dados sensíveis no dispositivo.
Acesse este link em outro dispositivo para saber mais:
g.co/ABH
ID: hex-number
Pressione o botão liga/desliga para pausar.
Corrupção de dm-verity
Mostre uma tela eio
VERMELHA se uma versão válida do Android for encontrada e
o dispositivo estiver no modo dm-verity eio
. O usuário precisa
clicar no botão liga/desliga para continuar. Se o usuário não confirmar a
tela de aviso em 30 segundos, o dispositivo será desligado para proteger a tela
contra burn-in e economizar energia.
Texto sugerido:
O dispositivo está corrompido. Ele não é confiável e pode não funcionar corretamente.
Acesse este link em outro dispositivo para saber mais:
g.co/ABH
Pressione o botão liga/desliga para continuar.
Nenhum SO válido encontrado
Uma tela VERMELHA é mostrada se nenhuma versão válida do Android for encontrada. O dispositivo não pode continuar a inicialização. Se o usuário não confirmar a tela de aviso em 30 segundos, o dispositivo será desligado para proteger a tela contra queima e economizar energia.
Para hex-number, use os primeiros 8 dígitos do sha256 da
representação libavb da chave pública usada para verificação, por exemplo,
d14a028c
.
Texto sugerido:
Não foi possível encontrar um sistema operacional válido. O dispositivo não inicializa.
Acesse este link em outro dispositivo para saber mais:
g.co/ABH
ID: hex-number
Pressione o botão liga/desliga para desligar.
Confirmação de desbloqueio
Mostrar uma tela de confirmação de desbloqueio em resposta ao
comando fastboot flashing unlock
sendo executado pela interface
Fastboot. O foco está inicialmente em Não desbloquear. Se o usuário não
interagir com a tela de aviso em 30 segundos, ela vai desaparecer e
o comando vai falhar.
Texto sugerido:
Se você desbloquear o carregador de inicialização, poderá instalar um software do sistema operacional personalizado nesse smartphone. Um SO personalizado não está sujeito ao mesmo nível de testes do SO original e pode fazer com que o smartphone e os apps instalados parem de funcionar corretamente. A integridade do software não pode ser garantida com um SO personalizado. Portanto, todos os dados armazenados no smartphone enquanto o carregador de inicialização está desbloqueado podem estar em risco.
Para impedir o acesso não autorizado aos seus dados pessoais, o desbloqueio do carregador de inicialização também exclui todos os dados pessoais do smartphone.
Pressione o botão de aumentar/diminuir volume para escolher se quer desbloquear o bootloader e pressione o botão liga/desliga para continuar.
Desbloquear
Desbloquear o carregador de inicialização.
Não desbloquear
Não desbloqueie o carregador de inicialização nem reinicie o smartphone.
Confirmação de bloqueio
Mostrar uma tela de confirmação de bloqueio em resposta ao comando fastboot flashing
lock
sendo executado pela interface do Fastboot. O foco está
inicialmente em Não bloquear. Se o usuário não interagir com a
tela de aviso em 30 segundos, ela vai desaparecer e o comando vai falhar.
Texto:
Se você bloquear o carregador de inicialização, não será possível instalar um software do sistema operacional personalizado neste smartphone. Para impedir o acesso não autorizado aos seus dados pessoais, bloquear o carregador de inicialização também exclui todos os dados pessoais do smartphone.
Pressione o botão de aumentar/diminuir volume para bloquear o carregador de inicialização e o botão liga/desliga para continuar.
Bloquear
Bloquear o carregador de inicialização.
Não bloquear
Não bloquear o carregador de inicialização e reiniciar o smartphone.
Comunicar o estado da Inicialização verificada ao Android
O carregador de inicialização comunica o estado da Inicialização verificada ao Android usando
parâmetros de comando do kernel ou bootconfig do Android 12 em diante.
Ele define a opção androidboot.verifiedbootstate
como um dos seguintes valores:
green
: se o dispositivo forLOCKED
e a raiz de confiança definida pelo usuário não for usadayellow
: se o dispositivo forLOCKED
e a raiz de confiança definida pelo usuário for usadaorange
: se o dispositivo forUNLOCKED
A opção androidboot.veritymode
é definida como eio
ou
restart
, dependendo do estado em que o carregador de inicialização está em relação
ao processamento de erros dm-verity. Para mais detalhes, consulte Como lidar
com erros de verificação.