Flujo de inicio

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

Flujo de inicio verificado

Figura 1: Flujo de inicio verificado.

Flujo para dispositivos A/B

Si el dispositivo usa A/B, el flujo de arranque es ligeramente diferente. Primero, la ranura de arranque debe marcarse como SUCCESSFUL con el HAL de Boot Control antes de actualizar los metadatos de Rollback Protection.

Si hay una actualización de la plataforma que falla (no está marcada como SUCCESSFUL), la pila A/B recurre a la otra ranura, que aún tiene la versión anterior de Android. Sin embargo, si se hubieran establecido los metadatos de protección contra reversiones, la versión anterior no podría iniciarse debido a la protección contra reversiones.

Comunica el estado de inicio verificado a los usuarios

Después de determinar el estado de inicio de un dispositivo, debes comunicarle ese estado al usuario. Si el dispositivo no tiene problemas, continúa sin mostrar nada. Los problemas de inicio verificado se clasifican en las siguientes categorías:

  • AMARILLO: Pantalla de advertencia para dispositivos BLOQUEADOS con una raíz de confianza personalizada establecida
  • NARANJA: Pantalla de advertencia para dispositivos DESBLOQUEADOS
  • RED (eio): Pantalla de advertencia por corrupción de dm-verity
  • RED (no se encontró SO): No se encontró un SO válido

Dispositivos BLOQUEADOS con una raíz de confianza personalizada

Pantalla de advertencia amarilla del dispositivo
Figura 2: Ejemplo de una pantalla amarilla

Mostrar 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 con el arranque. Si el usuario presiona el botón de encendido, el texto "Presiona el botón de encendido para pausar" cambia a "Presiona el botón de encendido para continuar" y la pantalla nunca se descarta (aunque el dispositivo puede atenuar o apagar la pantalla para protegerla contra el quemado). Si se vuelve a presionar, se descarta la pantalla y el teléfono continúa con el arranque.

Para hex-number, usa los primeros 8 dígitos del sha256 de la representación de libavb de la clave pública que se usa para la verificación, por ejemplo, d14a028c.

Texto sugerido:

Tu dispositivo cargó un sistema operativo diferente.

Visita este vínculo en otro dispositivo para obtener más información:

g.co/ABH

ID: hex-number

Presiona el botón de encendido para pausar.

Dispositivos DESBLOQUEADOS

Pantalla de advertencia naranja del dispositivo
Figura 3: Ejemplo de una pantalla naranja

Mostrar una pantalla NARANJA en cada inicio si el dispositivo está DESBLOQUEADO La pantalla NARANJA se descarta después de diez segundos y el dispositivo continúa con el inicio. Si el usuario presiona el botón de encendido, el texto "Presiona el botón de encendido para pausar" cambia a "Presiona el botón de encendido para continuar" y la pantalla nunca se descarta (es posible que el dispositivo atenúe o apague la pantalla si es necesario para protegerla contra el quemado o problemas similares). Si se vuelve a presionar, se cierra la pantalla y el teléfono continúa con el inicio.

Para hex-number, usa los primeros 8 dígitos del hash sha256 de la representación de libavb de la clave pública que se usa para la verificación, por ejemplo, d14a028c.

Texto sugerido:

El bootloader está desbloqueado y no se puede garantizar la integridad del software. Los atacantes podrían acceder a la información almacenada en el dispositivo. No almacenes datos sensibles en el dispositivo.

Visita este vínculo en otro dispositivo para obtener más información:

g.co/ABH

ID: hex-number

Presiona el botón de encendido para pausar.

Corrupción de dm-verity

Pantalla de advertencia roja del dispositivo EIO
Figura 4: Ejemplo de una pantalla de EIO roja

Mostrar una pantalla ROJA eio si se encuentra una versión válida de Android y el dispositivo está actualmente en el modo eio dm-verity El usuario debe hacer clic en el botón de encendido para continuar. Si el usuario no confirma la pantalla de advertencia en un plazo de 30 segundos, el dispositivo se apaga (para proteger la pantalla contra el quemado y ahorrar energía).

Texto sugerido:

Tu dispositivo está dañado. No se puede confiar en él y es posible que no funcione correctamente.

Visita este vínculo en otro dispositivo para obtener más información:

g.co/ABH

Presiona el botón de encendido para continuar.

No se encontró un SO válido

Pantalla de advertencia roja de dispositivo dañado
Figura 5: Ejemplo de una pantalla roja

Se muestra una pantalla ROJA si no se encuentra una versión válida de Android. El dispositivo no puede seguir con el inicio. Si el usuario no confirma la pantalla de advertencia en un plazo de 30 segundos, el dispositivo se apaga para proteger la pantalla contra el quemado y ahorrar energía.

Para hex-number, usa los primeros 8 dígitos del sha256 de la representación de libavb de la clave pública que se usa para la verificación, por ejemplo, d14a028c.

Texto sugerido:

No se pudo encontrar un sistema operativo válido. El dispositivo no arranca.

Visita este vínculo en otro dispositivo para obtener más información:

g.co/ABH

ID: hex-number

Presiona el botón de encendido para apagar el dispositivo.

Confirmación de desbloqueo

DESBLOQUEA la pantalla de advertencia del dispositivo
Figura 6: Ejemplo de una pantalla de confirmación de desbloqueo

Muestra una pantalla de confirmación de desbloqueo en respuesta al comando fastboot flashing unlock que se ejecuta a través de la interfaz de fastboot. El enfoque se encuentra inicialmente en No desbloquear. Si el usuario no interactúa con la pantalla de advertencia en un plazo de 30 segundos, la pantalla desaparece y el comando falla.

Texto sugerido:

Si desbloqueas el bootloader, puedes instalar software de sistema operativo personalizado en este teléfono. Un SO personalizado no se somete al mismo nivel de pruebas que el SO original y puede hacer que el teléfono y las apps instaladas dejen de funcionar correctamente. No se puede garantizar la integridad del software con un SO personalizado, por lo que los datos almacenados en el teléfono podrían estar en riesgo durante el desbloqueo del bootloader.

Para evitar el acceso no autorizado a tus datos personales, desbloquear el bootloader también borra todos los datos personales de tu teléfono.

Presiona el botón para subir o bajar el volumen para seleccionar si quieres desbloquear el bootloader y, luego, el botón de encendido para continuar.

Desbloquear

Desbloquea el bootloader.

No desbloquear

No desbloquear el bootloader y reiniciar 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 de fastboot. El enfoque se encuentra inicialmente en No bloquear. Si el usuario no interactúa con la pantalla de advertencia en un plazo de 30 segundos, esta desaparece y el comando falla.

Texto:

Si bloqueas el bootloader, no podrás instalar software de sistema operativo personalizado en este teléfono. Para evitar el acceso no autorizado a tus datos personales, bloquear el bootloader también borra todos los datos personales de tu teléfono.

Presiona el botón para subir o bajar el volumen para seleccionar si quieres bloquear el bootloader y, luego, el botón de encendido para continuar.

Bloquear

Bloquea el bootloader.

No bloquear

No bloquees el bootloader y reinicia el teléfono.

Comunica el estado de inicio verificado a Android

Pantalla de advertencia del dispositivo de confirmación de CIERRE
Figura 7: Pantalla de advertencia del dispositivo de confirmación de bloqueo

El bootloader comunica el estado del inicio verificado a Android a través de parámetros de la línea de comandos del kernel o a través de bootconfig a partir de Android 12. Establece la opción androidboot.verifiedbootstate en uno de los siguientes valores:

  • green: Si el dispositivo es LOCKED y no se usa la raíz de confianza establecida por el usuario
  • yellow: Si el dispositivo es LOCKED y se usa la raíz de confianza establecida por el usuario
  • orange: Si el dispositivo es UNLOCKED

La opción androidboot.veritymode se configura como eio o restart según el estado en el que se encuentre el cargador de arranque con respecto al control de errores de dm-verity. Para obtener más detalles, consulta Cómo controlar los errores de verificación.