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 inicializar deve primeiro ser marcado como SUCCESSFUL
usando o Boot Control HAL antes de atualizar os metadados da proteção contra reversão.
Se houver uma atualização de plataforma que falhe (não está marcada com 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 foram definidos, a versão anterior não pode inicializar devido à proteção contra reversão.
Comunicando o estado de 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 exibir nada. Os problemas de inicialização verificada se enquadram nestas categorias:
- AMARELO: Tela de aviso para dispositivos BLOQUEADOS com raiz personalizada de confiança definida
- LARANJA: tela de aviso para dispositivos DESBLOQUEADOS
- RED (eio): tela de aviso para corrupção do dm-verity
- RED (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 é descartada 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" muda para "Pressione o botão liga / desliga para continuar" e a tela nunca é descartada, embora o dispositivo possa escurecer ou desligar a tela para proteger contra burn-in). Se pressionado novamente, a tela é descartada e o telefone continua 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 é descartada 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" muda para "Pressione o botão liga/desliga para continuar" e a tela nunca é descartada (o dispositivo pode escurecer e/ou desligar a tela, se necessário, para proteger contra queimaduras). em ou similar). Se pressionado novamente, a tela é descartada e o telefone continua 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 RED 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 reconhecer 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. 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 SO válido encontrado
Mostrar uma tela VERMELHA é mostrada se nenhuma versão válida do Android puder ser encontrada. O dispositivo não pode continuar inicializando. Se o usuário não reconhecer a tela de aviso em 30 segundos, o dispositivo será desligado para proteger a tela contra burn-in 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 de fastboot flashing unlock
de inicialização rápida sendo executado por meio da interface de inicialização rápida. 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 um software de sistema operacional personalizado neste telefone. Um sistema operacional personalizado não está sujeito ao mesmo nível de teste 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 carregador de inicialização está 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 carregador de inicialização e, em seguida, o botão liga / desliga para continuar.
Desbloquear
Desbloqueie o carregador de inicialização.
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 poderá instalar o 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 verificado para o 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.verifiedstate
para 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 inicialização está em relação ao tratamento de erros dm-verity. Para obter mais detalhes, consulte Tratamento de erros de verificação .