Estado del dispositivo

El estado del dispositivo indica cómo libremente se puede instalar software en un dispositivo. si la verificación se aplica de manera forzosa. Los estados del dispositivo son LOCKED y UNLOCKED Hay LOCKED dispositivos que no te permiten escribir en la memoria flash nuevas software al dispositivo, mientras que los dispositivos UNLOCKED permiten en caso de que haya modificaciones.

Cuando un dispositivo se enciende, el bootloader primero comprueba si el dispositivo está LOCKED o UNLOCKED. Si un dispositivo es UNLOCKED: el bootloader muestra una advertencia al usuario y, luego, continúa. se inicie, incluso si el SO cargado no está firmado por la raíz de confianza.

Si el dispositivo tiene el estado LOCKED, el bootloader sigue los pasos que se indican en Verificando el inicio para la verificación el software del dispositivo. Los dispositivos LOCKED se inician solo si el SO cargado esté correctamente firmado por la raíz de confianza. Para obtener más detalles, consulta El flujo de inicio:

Cambios en el estado del dispositivo

Para cambiar el estado de un dispositivo, usa el comando fastboot flashing [unlock | lock] Para proteger al usuario datos, todas las transiciones de estado limpian las particiones de datos y solicitan la confirmación antes de que se borren los datos.

Se prevé la transición de UNLOCKED a LOCKED cuando un usuario compra un dispositivo de desarrollo usado. Como resultado del bloqueo del dispositivo, el El usuario debe confiar en que se encuentra en un estado producido por el dispositivo. del fabricante, siempre y cuando no haya ninguna advertencia. De LOCKED a Se espera la transición de UNLOCKED cuando un desarrollador desea inhabilitar en el dispositivo con fines de desarrollo.

Raíz de confianza

La raíz de confianza es la clave criptográfica que se usa para firmar la copia de Android. almacenados en el dispositivo. La parte privada de la raíz de confianza es conocida solo por el fabricante del dispositivo y se usa para firmar todas las versiones de Android destinadas a distribución. La parte pública de la raíz de confianza está incorporada en el dispositivo y se almacena en un lugar para que no se pueda manipular (por lo general, los almacenamiento).

Cuando carga Android, el bootloader usa la raíz de confianza para verificarlo. la autenticidad. Para obtener más detalles sobre este proceso, consulta Inicio verificado. Los dispositivos pueden tener varios cargadores de inicio y, por lo tanto, pueden estar en juego varias claves criptográficas.

Raíz de confianza que el usuario puede configurar

De manera opcional, los dispositivos pueden permitir que el usuario configure la raíz de confianza (para por ejemplo, una clave pública). Los dispositivos pueden usar esta raíz de confianza configurable por el usuario para lo siguiente: el inicio verificado en lugar de la raíz de confianza integrada. Esto permite que el usuario instalar y usar versiones personalizadas de Android sin sacrificar la seguridad mejoras del inicio verificado.

Si se implementa la raíz de confianza que el usuario puede configurar, se debe hacer de una manera que que:

  • Se requiere confirmación física para establecer o borrar la raíz configurable por el usuario de confianza.
  • Solo el usuario final puede establecer la raíz de confianza que puede configurar el usuario. No puede en la fábrica o en cualquier punto intermedio antes de que el usuario dispositivo.
  • La raíz de confianza que el usuario puede configurar se almacena en un almacenamiento de manipulación evidente. Manipulación evidente significa que es posible detectar si Android tiene manipulado los datos, por ejemplo, si se reemplazaron o modificaron.
  • Si se establece una raíz de confianza que el usuario puede configurar, el dispositivo debe permitir una versión de Android firmado con la raíz de confianza integrada o con el encabezado configurable raíz de confianza para arrancar.
  • Cada vez que el dispositivo se inicia con la raíz de confianza configurable por el usuario, el usuario se debe notificar que el dispositivo está cargando una versión personalizada de Android. Para ejemplo, pantallas de advertencia, consulta LOCKED con un conjunto de claves personalizadas.

Una forma de implementar la raíz de confianza que el usuario puede configurar que solo se puede escribir en la memoria flash o borrar cuando el dispositivo está en UNLOCKED. Los dispositivos Google Pixel 2 usan este enfoque y la partición virtual se llama avb_custom_key. El formato de la los datos en esta partición son la salida de la Comando avbtool extract_public_key. Este es un ejemplo de cómo configurar raíz de confianza que el usuario puede configurar:

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

Para borrar la raíz de confianza que configura el usuario, emite el siguiente comando:

fastboot erase avb_custom_key