O fluxo de inicialização recomendado para um dispositivo é o seguinte:

Figura 1. Fluxo de inicialização verificada.
Fluxo para dispositivos A/B
Se o dispositivo estiver usando A/B, o fluxo de inicialização será um pouco diferente. O slot a ser
inicializado precisa primeiro ser marcado como SUCCESSFUL
usando o HAL de controle de inicialização antes de atualizar os
metadados de proteção contra rollback.
Se houver uma atualização de plataforma com falha (não marcada como
SUCCESSFUL
), a pilha A/B vai voltar ao outro slot,
que ainda tem a versão anterior do Android. No entanto, se os metadados de proteção contra reversão tivessem sido definidos, a versão anterior não poderia 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, você precisa comunicar esse estado ao usuário. Se o dispositivo não tiver problemas, continue 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
- VERMELHO (eio): tela de aviso para corrupção de dm-verity
- VERMELHO (nenhum SO encontrado): nenhum SO válido encontrado
Dispositivos BLOQUEADOS com raiz de confiança personalizada

Mostrar 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 inicializando. 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 evitar burn-in). Se pressionado novamente, a tela será dispensada e o smartphone continuará a inicialização.
Para o hex-number, use os oito primeiros 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 uma tela LARANJA em cada inicialização se o dispositivo estiver DESBLOQUEADO. A tela LARANJA é dispensada após dez segundos, e o dispositivo continua inicializando. 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 pode diminuir o brilho e/ou desligar a tela, se necessário, para evitar o efeito burn-in ou algo semelhante. Se pressionado novamente, a tela será dispensada e o smartphone continuará inicializando.
Para o hex-number, use os oito primeiros 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 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 VERMELHA eio
se uma versão válida do Android for encontrada e
o dispositivo estiver no modo eio
dm-verity. 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:
Seu 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 será 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 o efeito burn-in e economizar energia.
Para o hex-number, use os oito primeiros 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

Mostra uma tela de confirmação de desbloqueio em resposta à execução do comando
fastboot flashing unlock
pela interface
fastboot. O foco inicial é 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 de sistema operacional personalizado no smartphone. Um SO personalizado não está sujeito ao mesmo nível de testes que o 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 ser expostos a riscos.
Para evitar 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 Aumentar volume/Diminuir volume para selecionar se quer desbloquear o carregador de inicialização e, em seguida, o botão liga/desliga para continuar.
Desbloquear
Desbloqueie o carregador de inicialização.
Não desbloquear
Não desbloqueie o carregador de inicialização e reinicie o smartphone.
Confirmação de bloqueio
Mostra uma tela de confirmação de bloqueio em resposta à execução do comando fastboot flashing
lock
pela interface 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 de sistema operacional personalizado neste smartphone. Para evitar o acesso não autorizado aos seus dados pessoais, o bloqueio do carregador de inicialização também exclui todos os dados pessoais do smartphone.
Pressione Aumentar volume/Diminuir volume para selecionar se quer bloquear o carregador de inicialização e, em seguida, o botão liga/desliga para continuar.
Bloquear
Bloqueie o carregador de inicialização.
Não bloquear
Não bloqueie o carregador de inicialização e reinicie 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 o bootconfig a partir do Android 12.
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 de dm-verity. Para mais detalhes, consulte Como lidar com
erros de verificação.