O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Estado do dispositivo

O estado do dispositivo indica quão livremente o software pode ser transferido para um dispositivo e se a verificação é aplicada. Os estados do dispositivo são LOCKED e UNLOCKED . Dispositivos LOCKED evitam que você atualize o novo software para o dispositivo, enquanto dispositivos UNLOCKED permitem modificações.

Quando um dispositivo é ligado, o carregador de inicialização primeiro verifica se um dispositivo está LOCKED ou UNLOCKED . Se um dispositivo estiver UNLOCKED , o bootloader mostra ao usuário um aviso e então prossegue com a inicialização, mesmo se o SO carregado não for assinado pela raiz de confiança.

Se o dispositivo estiver LOCKED , o carregador de inicialização seguirá as etapas em Verificando a inicialização para verificar o software do dispositivo. LOCKED dispositivos LOCKED inicializam apenas se o SO carregado estiver devidamente assinado pela raiz de confiança. Para obter mais detalhes, consulte O fluxo de inicialização .

Alterando o estado do dispositivo

Para alterar o estado de um dispositivo , use o fastboot flashing [unlock | lock] comando fastboot flashing [unlock | lock] . Para proteger os dados do usuário, todas as transições de estado apagam as partições de dados e solicitam a confirmação do usuário antes que os dados sejam excluídos.

A transição de UNLOCKED para LOCKED é antecipada quando um usuário compra um dispositivo de desenvolvimento usado. Como resultado do bloqueio do dispositivo, o usuário deve ter certeza de que ele está em um estado produzido pelo fabricante do dispositivo, desde que não haja nenhum aviso. A transição LOCKED para UNLOCKED é esperada quando um desenvolvedor deseja desabilitar a verificação no dispositivo para fins de desenvolvimento.

Raiz de confiança

A raiz de confiança é a chave criptográfica usada para assinar a cópia do Android armazenada no dispositivo. A parte privada da raiz de confiança é conhecida apenas pelo fabricante do dispositivo e é usada para assinar todas as versões do Android destinadas à distribuição. A parte pública da raiz de confiança está embutida no dispositivo e é armazenada em um local para que não possa ser violada (normalmente armazenamento somente leitura).

Ao carregar o Android, o bootloader usa a raiz de confiança para verificar a autenticidade. Para obter mais detalhes sobre esse processo, consulte Verificando a inicialização . Os dispositivos podem ter vários carregadores de inicialização e, como tal, várias chaves criptográficas podem estar em jogo.

Raiz de confiança definida pelo usuário

Os dispositivos podem, opcionalmente, permitir que o usuário configure a raiz de confiança (por exemplo, uma chave pública). Os dispositivos podem usar essa raiz de confiança definida pelo usuário para inicialização verificada em vez da raiz de confiança embutida. Isso permite que o usuário instale e use versões personalizadas do Android sem sacrificar as melhorias de segurança da inicialização verificada.

Se a raiz de confiança definida pelo usuário for implementada, isso deve ser feito de forma que:

  • A confirmação física é necessária para definir / limpar a raiz de confiança definida pelo usuário.
  • A raiz de confiança definida pelo usuário só pode ser definida pelo usuário final. Não pode ser definido na fábrica ou em qualquer ponto intermediário antes de o usuário final obter o dispositivo.
  • A raiz de confiança definida pelo usuário é armazenada em um armazenamento à prova de violação. Evidente de adulteração significa que é possível detectar se o Android adulterou os dados, por exemplo, se eles foram substituídos ou alterados.
  • Se uma raiz de confiança definida pelo usuário for definida, o dispositivo deve permitir a inicialização de uma versão do Android assinada com a raiz de confiança integrada ou a raiz de confiança definida pelo usuário.
  • Cada vez que o dispositivo inicializa usando a raiz de confiança definida pelo usuário, o usuário deve ser notificado de que o dispositivo está carregando uma versão personalizada do Android. Por exemplo, telas de aviso, consulte Dispositivos LOCKED com conjunto de chave personalizado .

Uma maneira de implementar a raiz de confiança definida pelo usuário é ter uma partição virtual que só possa ser atualizada ou limpa quando o dispositivo estiver no estado UNLOCKED . Os dispositivos Google Pixel 2 usam essa abordagem e a partição virtual é chamada avb_custom_key . O formato dos dados nesta partição é a saída do comando avbtool extract_public_key . Aqui está um exemplo de como definir a raiz de confiança definida pelo usuário:

avbtool extract_public_key --key key.pem --output pkmd.bin
fastboot flash avb_custom_key pkmd.bin

A raiz de confiança definida pelo usuário pode ser apagada emitindo:

fastboot erase avb_custom_key