Fluxo de inicialização

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

Fluxo de Inicialização verificada
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 para a inicialização precisa ser marcada como SUCCESSFUL usando a HAL de controle de inicialização antes de atualizar o Metadados da proteção contra reversão.

Se houver falha em uma atualização da plataforma (não marcada SUCCESSFUL), a pilha A/B volta ao outro slot, que ainda contém a versão anterior do Android. No entanto, se se os metadados da proteção contra reversão tiverem sido configurados, a versão anterior não poderá por causa da proteção contra reversão.

Como comunicar a Inicialização verificada o estado aos usuários

Depois de determinar o estado de inicialização de um dispositivo, é preciso comunicar que ao usuário. Se o dispositivo não tiver problemas, prossiga sem exibir nada. Os problemas de Inicialização verificada se enquadram nas seguintes categorias:

  • AMARELO: tela de aviso para dispositivos BLOQUEADOS com a raiz de confiança personalizada definida
  • LARANJA: tela de aviso para dispositivos DESBLOQUEADOS
  • VERMELHO (eio): tela de aviso de corrupção de DM-verity
  • VERMELHO (nenhum SO encontrado): nenhum SO válido foi encontrado

Dispositivos BLOQUEADOS com personalização raiz de confiança

Exemplo de tela AMARELA:

Tela de aviso de dispositivo amarelo

Mostra uma tela AMARELO em cada inicialização se o dispositivo estiver BLOQUEADO, uma raiz personalizada de confiança foi definida e a imagem foi assinada com essa raiz de confiança personalizada. A tela AMARELO é dispensada após dez segundos e o dispositivo continua inicializando. Se o usuário pressionar o botão liga/desliga, a mensagem "Pressione o botão liga/desliga para pausar" o texto muda para "Pressione o botão liga/desliga para continuar" e a tela nunca fica dispensado (embora o dispositivo possa escurecer ou desligar a tela para proteção contra burn-in). Se pressionado de novo, a tela é dispensada e o smartphone continua inicializando.

Para o hex-number, use os primeiros oito dígitos do sha256 de a 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

Exemplo de tela LARANJA:

Tela de aviso do dispositivo laranja

Mostrar a tela LARANJA em cada inicialização se o dispositivo estiver DESBLOQUEADO. A tela LARANJA é dispensado após dez segundos e o dispositivo continua a inicialização. Se o usuário pressiona o botão liga/desliga, "Pressione o botão liga/desliga para pausar" o texto muda para "Pressione botão liga/desliga para continuar" e a tela nunca é dispensada (o dispositivo pode escurecer e/ou desligue a tela, se necessário, para proteção contra burn-in ou similar). Se pressionado novamente, a tela é dispensada e o telefone continua a inicialização.

Para o hex-number, use os primeiros oito dígitos do sha256 do libavb representação 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. Qualquer um os dados armazenados no dispositivo podem ficar disponíveis para invasores. Não armazenar nenhum dados confidenciais 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 dm-verity

Exemplo de tela RED EIO:

Tela de aviso vermelha do dispositivo Eio

Mostra uma tela eio VERMELHA se uma versão válida do Android for encontrada e o dispositivo está no modo dm-verity eio. O usuário precisa para clicar no botão liga/desliga e continuar. Se o usuário não tiver confirmado a tela de aviso em 30 segundos, o dispositivo é desligado (para proteger a tela contra burn-in e economia de 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 foi encontrado

Exemplo de tela VERMELHA:

Tela de aviso de dispositivo corrompido vermelha

Uma tela VERMELHA será mostrada se nenhuma versão válida do Android for encontrada. O não consegue continuar a inicialização. Se o usuário não tiver confirmado o aviso tela em 30 segundos, o dispositivo desliga para protegê-la contra com burn-in e economia de energia).

Para o hex-number, use os primeiros oito dígitos do sha256 de a 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.

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

Exemplo de tela:

DESBLOQUEAR tela de aviso do dispositivo

Mostre uma tela de confirmação de desbloqueio em resposta ao Comando fastboot flashing unlock sendo executado por meio do fastboot interface gráfica do usuário. Inicialmente, o foco está em Não desbloquear. Se o usuário não interagiu com a tela de aviso em 30 segundos, a tela desaparece e o comando vai falhar.

Texto sugerido:

Se você desbloquear o carregador de inicialização, poderá instalar sistemas operacionais personalizados neste smartphone. Um SO personalizado não está sujeito ao mesmo nível de teste como o sistema operacional original e pode fazer com que seu telefone e os aplicativos instalados deixem de funcionar corretamente. A integridade do software não pode ser garantida OS. Assim, todos os dados armazenados no telefone enquanto o carregador de inicialização está desbloqueado podem ter risco.

Para impedir o acesso não autorizado aos seus dados pessoais, desbloqueie o carregador de inicialização também excluirá todos os dados pessoais no seu telefone.

Pressione as teclas de aumentar/diminuir volume para 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 do bloqueio

Mostre uma tela de confirmação de bloqueio em resposta ao comando fastboot flashing lock que está sendo executado pela interface fastboot. O foco é inicialmente em Não bloquear. Se o usuário não tiver interagido com o de aviso dentro de 30 segundos, a tela desaparecerá e o comando falhará.

Texto:

Se você bloquear o carregador de inicialização, não poderá instalar sistemas operacionais neste smartphone. Para impedir o acesso não autorizado aos seus dados, bloquear o carregador de inicialização também excluirá todos os dados pessoais do smartphone.

Pressione as teclas de aumentar/diminuir volume para selecionar se deseja bloquear o carregador de inicialização e, em seguida, o botão liga/desliga para continuar.

Bloquear

Bloquear o carregador de inicialização.

Não bloquear

Não bloqueie o carregador de inicialização e reinicie o smartphone.

Comunicação verificada Estado de inicialização para o Android

Exemplo de tela:

Bloqueia a tela de aviso do dispositivo de confirmação

O carregador de inicialização comunica o estado da Inicialização verificada ao Android por meio de kernel-command ou pelo bootconfig do Android 12 em diante. Ele define a opção androidboot.verifiedbootstate como um dos seguintes valores:

  • green: se o dispositivo é LOCKED e pode ser configurado pelo usuário a raiz de confiança não é usada
  • yellow: se o dispositivo é LOCKED e pode ser configurado pelo usuário a raiz de confiança é usada.
  • orange: se o dispositivo for UNLOCKED

A opção androidboot.veritymode é definida como eio ou restart, dependendo do estado do carregador de inicialização para lidar com erros dm-verity. Para mais detalhes, consulte Como lidar com erros de verificação.