Flujo de arranque

El flujo de arranque 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 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

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

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

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

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

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

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 .