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

Flujo para dispositivos A / B
Si el dispositivo usa A / B, el flujo de arranque es ligeramente diferente. La ranura para arrancar debe marcarse primero como SUCCESSFUL
utilizando el control de arranque HAL antes de actualizar los metadatos de protección contra la 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 todavía tiene la versión anterior de Android. Sin embargo, si se establecieron los metadatos de Rollback Protection, la versión anterior no se puede iniciar debido a Rollback Protection.
Comunicación del estado de inicio 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 incluyen en estas categorías:
- AMARILLO: pantalla de advertencia para dispositivos BLOQUEADOS con raíz personalizada de confianza establecida
- NARANJA: Pantalla de advertencia para dispositivos DESBLOQUEADOS
- ROJO (eio): pantalla de advertencia por 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:

Muestre una pantalla AMARILLA en cada inicio si el dispositivo está BLOQUEADO, se configuró una raíz de confianza personalizada y la imagen se firmó con esta raíz de confianza personalizada. La pantalla AMARILLA se cierra 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 protegerse contra quemaduras). Si se presiona nuevamente, la pantalla se cierra y el teléfono continúa arrancando.
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:

Muestra una pantalla NARANJA en cada arranque si el dispositivo está DESBLOQUEADO. La pantalla NARANJA se cierra 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 atenuarse 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 , 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 cargador 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 datos sensibles 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.
corrupción dm-verity
Ejemplo de pantalla RED eio:

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 en 30 segundos, el dispositivo se apaga (para proteger la pantalla contra quemaduras y ahorrar energía).
Texto sugerido:
Tu dispositivo está dañado. 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 SO válido
Ejemplo de pantalla ROJA:

Mostrar una pantalla ROJA se muestra 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 en 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:

Muestra una pantalla de confirmación de desbloqueo en respuesta al comando de fastboot flashing unlock
se ejecuta a través de la interfaz 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 cargador de arranque, podrá instalar el software del 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, desbloquear el cargador de arranque también eliminará 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 cargador 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
se ejecuta a través de la interfaz 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 cargador 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 cargador de arranque también eliminará todos los datos personales de su teléfono.
Presione Subir volumen / Bajar volumen para seleccionar si desea bloquear el cargador de arranque, luego el botón de encendido para continuar.
Bloquear
Bloquear el cargador de arranque.
No bloquee
No bloquee el cargador de arranque y reinicie el teléfono.
Comunicar el estado de arranque verificado a Android
Pantalla de ejemplo:

El cargador de arranque comunica el estado de arranque verificado a Android a través de las opciones de comando del kernel. 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 usa 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 dm-verity. Para obtener más detalles, consulte Manejo de errores de verificación .