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 para inicialização deve primeiro 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 atualização de plataforma que falha (não está marcada como SUCCESSFUL
), a pilha A/B volta para o outro slot, que ainda contém a versão anterior do Android. No entanto, se os metadados da proteção contra reversão tiverem sido definidos, a versão anterior não poderá inicializar devido à proteção contra reversão.
Comunicação do estado de inicialização verificada aos usuários
Após determinar o estado de inicialização de um dispositivo, você precisa comunicar esse estado ao usuário. Se o dispositivo não apresentar problemas, prossiga sem exibir nada. Os problemas de inicialização verificados 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 do dm-verity
- VERMELHO (nenhum sistema operacional encontrado): Nenhum sistema operacional 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 desaparece 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" mudará para "Pressione o botão liga/desliga para continuar" e a tela nunca será descartada, embora o dispositivo possa escurecer ou desligar a tela para proteger contra queimaduras). Se pressionado novamente, a tela será descartada e o telefone continuará inicializando.
Para o 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.
Visite 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 desaparece 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" mudará para "Pressione o botão liga/desliga para continuar" e a tela nunca será descartada (o dispositivo poderá escurecer e/ou desligar a tela se necessário para proteger contra queimaduras). em ou similar). Se pressionado novamente, a tela será descartada e o telefone continuará inicializando.
Para o 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 a integridade do software não pode ser garantida. Quaisquer dados armazenados no dispositivo podem estar disponíveis para invasores. Não armazene dados confidenciais no dispositivo.
Visite este link em outro dispositivo para saber mais:
g.co/ABH
ID: hex-number
Pressione o botão liga/desliga para pausar.
corrupção dm-verity
Mostre uma tela VERMELHA eio
se uma versão válida do Android for encontrada e o dispositivo estiver atualmente 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 queimaduras e economizar energia).
Texto sugerido:
Seu dispositivo está corrompido. Não é confiável e pode não funcionar corretamente.
Visite este link em outro dispositivo para saber mais:
g.co/ABH
Pressione o botão liga / desliga para continuar.
Nenhum sistema operacional válido encontrado
Mostrar uma tela VERMELHA é mostrado 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 queimaduras e economizar energia).
Para o 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:
Nenhum sistema operacional válido foi encontrado. O dispositivo não inicializa.
Visite 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 por meio da interface do fastboot. O foco está inicialmente em Não desbloquear . Se o usuário não interagir com a tela de aviso em 30 segundos, a tela desaparecerá e o comando falhará.
Texto sugerido:
Se você desbloquear o bootloader, poderá instalar software de sistema operacional personalizado neste telefone. Um sistema operacional personalizado não está sujeito ao mesmo nível de testes que o sistema operacional original e pode fazer com que o telefone e os aplicativos instalados parem de funcionar corretamente. A integridade do software não pode ser garantida com um sistema operacional personalizado, portanto, quaisquer dados armazenados no telefone enquanto o bootloader estiver desbloqueado podem estar em risco.
Para evitar o acesso não autorizado aos seus dados pessoais, desbloquear o bootloader também excluirá todos os dados pessoais do seu telefone.
Pressione Aumentar/Diminuir volume para selecionar se deseja desbloquear o bootloader e, em seguida, o botão liga / desliga para continuar.
Desbloquear
Desbloqueie o bootloader.
Não desbloqueie
Não desbloqueie o bootloader e reinicie o telefone.
Confirmação de bloqueio
Mostrar uma tela de confirmação de bloqueio em resposta ao comando fastboot flashing lock
sendo executado por meio da 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, a tela desaparecerá e o comando falhará.
Texto:
Se você bloquear o bootloader, não será possível instalar software de sistema operacional personalizado neste telefone. Para evitar o acesso não autorizado aos seus dados pessoais, bloquear o bootloader também excluirá todos os dados pessoais do seu telefone.
Pressione Aumentar/Diminuir volume para selecionar se deseja bloquear o bootloader e, em seguida, o botão liga / desliga para continuar.
Trancar
Bloqueie o carregador de inicialização.
Não bloqueie
Não bloqueie o bootloader e reinicie o telefone.
Comunicando o estado de inicialização verificada ao Android
O bootloader comunica o estado de inicialização verificada ao Android por meio de parâmetros de comando do kernel ou por meio de bootconfig a partir do Android 12. Ele define a opção androidboot.verifiedbootstate
como um dos seguintes valores:
-
green
: se o dispositivo estiverLOCKED
e a raiz de confiança configurável pelo usuário não for usada -
yellow
: se o dispositivo estiverLOCKED
e a raiz de confiança configurável pelo usuário for usada -
orange
: se o dispositivo estiverUNLOCKED
A opção androidboot.veritymode
é definida como eio
ou restart
dependendo do estado em que o carregador de boot está em relação ao tratamento de erros de dm-verity. Para obter mais detalhes, consulte Tratamento de erros de verificação .