El flujo de arranque recomendado para un dispositivo es el siguiente:
![Flujo de arranque verificado](https://source.android.com/static/security/images/verified-boot-flow.png?authuser=1&hl=es-419)
Flujo para dispositivos A/B
Si el dispositivo usa A/B, el flujo de arranque es ligeramente diferente. La ranura para iniciar debe marcarse primero como SUCCESSFUL
mediante la HAL de control de inicio antes de actualizar los metadatos de la protección contra reversión.
Si hay una actualización de la plataforma que falla (no está marcada como SUCCESSFUL
), la pila A/B vuelve a la otra ranura, que aún tiene la versión anterior de Android. Sin embargo, si se configuraron los metadatos de la protección contra reversión, la versión anterior no puede iniciarse debido a la protección contra reversión.
Comunicar el estado de arranque verificado a los usuarios
Después de determinar el estado de arranque de un dispositivo, debe comunicar ese estado al usuario. Si el dispositivo no tiene ningún problema, continúe sin mostrar nada. Los problemas de arranque verificados se clasifican en estas categorías:
- AMARILLO: pantalla de advertencia para dispositivos BLOQUEADOS con un conjunto personalizado de raíz de confianza
- NARANJA: Pantalla de advertencia para dispositivos DESBLOQUEADOS
- ROJO (eio): pantalla de advertencia de corrupción de dm-verity
- ROJO (no se encontró el sistema operativo): No se encontró ningún sistema operativo válido
Dispositivos BLOQUEADOS con raíz de confianza personalizada
Ejemplo de pantalla AMARILLA:
![Pantalla amarilla de advertencia del dispositivo](https://source.android.com/static/security/images/boot_yellow1.png?authuser=1&hl=es-419)
Muestre una pantalla AMARILLA en cada inicio si el dispositivo está BLOQUEADO, se ha establecido una raíz de confianza personalizada y la imagen se firmó con esta raíz de confianza personalizada. La pantalla AMARILLA desaparece después de diez segundos y el dispositivo continúa arrancando. Si el usuario presiona el botón de encendido, el texto "Presione el botón de encendido para pausar" cambia a "Presione el botón de encendido para continuar" y la pantalla nunca se cierra, aunque el dispositivo puede atenuar o apagar la pantalla para evitar que se queme). Si se presiona nuevamente, la pantalla se cierra y el teléfono continúa arrancando.
Para el hex-number , use los primeros 8 dígitos del sha256 de la representación libavb de la clave pública utilizada para la verificación, por ejemplo, d14a028c
.
Texto sugerido:
Su dispositivo ha cargado un sistema operativo diferente.
Visite este enlace en otro dispositivo para obtener más información:
g.co/ABH
ID: hex-number
Presione el botón de encendido para pausar
Dispositivos DESBLOQUEADOS
Ejemplo de pantalla NARANJA:
![Pantalla de advertencia de dispositivo naranja](https://source.android.com/static/security/images/boot_orange.png?authuser=1&hl=es-419)
Muestra una pantalla NARANJA en cada arranque si el dispositivo está DESBLOQUEADO. La pantalla NARANJA desaparece después de diez segundos y el dispositivo continúa arrancando. Si el usuario presiona el botón de encendido, el texto "Presione el botón de encendido para pausar" cambia a "Presione el botón de encendido para continuar" y la pantalla nunca se cierra (el dispositivo puede atenuar y/o apagar la pantalla si es necesario para protegerse contra quemaduras). en o similar). Si se presiona nuevamente, la pantalla se cierra y el teléfono continúa arrancando.
Para el hex-number , use los primeros 8 dígitos del sha256 de la representación libavb de la clave pública utilizada para la verificación, por ejemplo, d14a028c
.
Texto sugerido:
El gestor de arranque está desbloqueado y no se puede garantizar la integridad del software. Cualquier dato almacenado en el dispositivo puede estar disponible para los atacantes. No almacene ningún dato confidencial en el dispositivo.
Visite este enlace en otro dispositivo para obtener más información:
g.co/ABH
ID: hex-number
Presione el botón de encendido para hacer una pausa.
corrupción dm-verity
Ejemplo de pantalla eio ROJA:
![Pantalla roja de advertencia del dispositivo eio](https://source.android.com/static/security/images/boot_red1.png?authuser=1&hl=es-419)
Muestre una pantalla eio
ROJA si se encuentra una versión válida de Android y el dispositivo se encuentra actualmente en el eio
dm-verity. El usuario debe hacer clic en el botón de encendido para continuar. Si el usuario no ha reconocido la pantalla de advertencia dentro de los 30 segundos, el dispositivo se apaga (para proteger la pantalla contra quemaduras y ahorrar energía).
Texto sugerido:
Su dispositivo está corrupto. No se puede confiar y es posible que no funcione correctamente.
Visite este enlace en otro dispositivo para obtener más información:
g.co/ABH
Presione el botón de encendido para continuar.
No se encontró un sistema operativo válido
Ejemplo de pantalla ROJA:
![Pantalla roja de advertencia de dispositivo corrupto](https://source.android.com/static/security/images/boot_red2.png?authuser=1&hl=es-419)
Mostrar una pantalla ROJA si no se encuentra una versión válida de Android. El dispositivo no puede continuar arrancando. Si el usuario no ha reconocido la pantalla de advertencia dentro de los 30 segundos, el dispositivo se apaga para proteger la pantalla contra quemaduras y ahorrar energía).
Para el hex-number , use los primeros 8 dígitos del sha256 de la representación libavb de la clave pública utilizada para la verificación, por ejemplo, d14a028c
.
Texto sugerido:
No se pudo encontrar ningún sistema operativo válido. El dispositivo no arranca.
Visite este enlace en otro dispositivo para obtener más información:
g.co/ABH
ID: hex-number
Presione el botón de encendido para apagar.
Confirmación de desbloqueo
Pantalla de ejemplo:
![Pantalla de advertencia del dispositivo DESBLOQUEO](https://source.android.com/static/security/images/unlock-confirmation.png?authuser=1&hl=es-419)
Muestre una pantalla de confirmación de desbloqueo en respuesta al comando de fastboot flashing unlock
que se ejecuta a través de la interfaz de fastboot. El foco está inicialmente en No desbloquear . Si el usuario no ha interactuado con la pantalla de advertencia en 30 segundos, la pantalla desaparece y el comando falla.
Texto sugerido:
Si desbloquea el gestor de arranque, podrá instalar un software de sistema operativo personalizado en este teléfono. Un sistema operativo personalizado no está sujeto al mismo nivel de pruebas que el sistema operativo original y puede hacer que su teléfono y las aplicaciones instaladas dejen de funcionar correctamente. La integridad del software no se puede garantizar con un sistema operativo personalizado, por lo que cualquier dato almacenado en el teléfono mientras el cargador de arranque está desbloqueado puede estar en riesgo.
Para evitar el acceso no autorizado a sus datos personales, al desbloquear el gestor de arranque también se eliminarán todos los datos personales de su teléfono.
Presione Subir volumen / Bajar volumen para seleccionar si desea desbloquear el cargador de arranque, luego el botón de encendido para continuar.
desbloquear
Desbloquear el bootloader.
no desbloquear
No desbloquee el gestor de arranque y reinicie el teléfono.
Confirmación de bloqueo
Muestre una pantalla de confirmación de bloqueo en respuesta al comando de fastboot flashing lock
que se ejecuta a través de la interfaz de fastboot. El foco está inicialmente en No bloquear . Si el usuario no ha interactuado con la pantalla de advertencia en 30 segundos, la pantalla desaparece y el comando falla.
Texto:
Si bloquea el gestor de arranque, no podrá instalar el software del sistema operativo personalizado en este teléfono. Para evitar el acceso no autorizado a sus datos personales, al bloquear el gestor de arranque también se eliminarán todos los datos personales de su teléfono.
Presione Subir volumen / Bajar volumen para seleccionar si desea bloquear el gestor de arranque, luego presione el botón de encendido para continuar.
Cerrar
Bloquear cargador de arranque.
no bloquear
No bloquee el gestor de arranque y reinicie el teléfono.
Comunicar el estado de arranque verificado a Android
Pantalla de ejemplo:
![Pantalla de advertencia del dispositivo de confirmación de BLOQUEO](https://source.android.com/static/security/images/lock-confirmation.png?authuser=1&hl=es-419)
El cargador de arranque comunica el estado de arranque verificado a Android a través de los parámetros de comando del kernel o a través de bootconfig a partir de Android 12. Establece la opción androidboot.verifiedstate
en uno de los siguientes valores:
-
green
: si el dispositivo estáLOCKED
y no se utiliza la raíz de confianza configurable por el usuario -
yellow
: si el dispositivo estáLOCKED
y se utiliza la raíz de confianza configurable por el usuario -
orange
: si el dispositivo estáUNLOCKED
La opción androidboot.veritymode
se establece en eio
o se restart
según el estado en el que se encuentre el cargador de arranque con respecto al manejo de errores de dm-verity. Para obtener más detalles, consulte Manejo de errores de verificación .