Flujo de arranque

El flujo de inicio recomendado para un dispositivo es el siguiente:

Flujo de arranque verificado
Figura 1 . Flujo de arranque verificado

Flujo para dispositivos A/B

Si el dispositivo utiliza A/B, el flujo de inicio es ligeramente diferente. La ranura para iniciar primero debe marcarse como SUCCESSFUL usando Boot Control HAL antes de actualizar los metadatos de Rollback Protection.

Si hay una actualización de la plataforma que falla (no está marcada SUCCESSFUL ), la pila A/B vuelve a la otra ranura, que todavía tiene la versión anterior de Android. Sin embargo, si se han configurado los metadatos de Rollback Protection, la versión anterior no puede iniciarse debido a Rollback Protection.

Comunicar el estado de arranque verificado a los usuarios

Después de determinar el estado de inicio 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 raíz de confianza personalizada configurada
  • NARANJA: Pantalla de advertencia para dispositivos DESBLOQUEADOS
  • ROJO (eio): Pantalla de advertencia sobre corrupción de dm-verity
  • ROJO (no se encontró ningún 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

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 iniciando. 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 protegerla contra quemaduras). Si se presiona nuevamente, la pantalla desaparece y el teléfono continúa iniciando.

Para el hex-number , utilice 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 del dispositivo naranja

Muestra una pantalla NARANJA en cada inicio si el dispositivo está DESBLOQUEADO. La pantalla NARANJA desaparece después de diez segundos y el dispositivo continúa iniciando. 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 desaparece y el teléfono continúa iniciando.

Para el hex-number , utilice 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 pausar.

dm-verdad corrupción

Ejemplo de pantalla RED eio:

Pantalla de advertencia del dispositivo eio roja

Muestra una pantalla RED eio si se encuentra una versión válida de Android y el dispositivo se encuentra actualmente en el modo 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:

Tu dispositivo está corrupto. No se puede confiar en él 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ó ningún sistema operativo válido

Ejemplo de pantalla ROJA:

Pantalla roja de advertencia de dispositivo corrupto

Mostrar Se muestra una pantalla ROJA si no se puede encontrar 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 , utilice 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:

DESBLOQUEAR pantalla de advertencia del dispositivo

Muestra una pantalla de confirmación de desbloqueo en respuesta al comando fastboot flashing unlock que se ejecuta a través de la interfaz fastboot. Inicialmente, la atención se centra 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. No se puede garantizar la integridad del software con un sistema operativo personalizado, por lo que cualquier dato almacenado en el teléfono mientras el gestor 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/Bajar volumen para seleccionar si desea desbloquear el gestor 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

Muestra una pantalla de confirmación de bloqueo en respuesta al comando fastboot flashing lock que se ejecuta a través de la interfaz fastboot. Inicialmente, la atención se centra 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 software de sistema operativo personalizado en este teléfono. Para evitar el acceso no autorizado a sus datos personales, bloquear el gestor de arranque también eliminará todos los datos personales de su teléfono.

Presione Subir/Bajar volumen para seleccionar si desea bloquear el gestor de arranque, luego el botón de encendido para continuar.

Cerrar

Bloquear el gestor 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

El gestor de arranque comunica el estado de arranque verificado a Android a través de parámetros de comando del kernel o mediante bootconfig a partir de Android 12. Establece la opción androidboot.verifiedbootstate 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 está configurada en eio o 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 .