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