Flujo de inicio

En esta página, se describe el flujo de arranque recomendado para un dispositivo y se ilustra en la Figura 1:

Flujo de inicio verificado

Figura 1: Flujo de inicio verificado.

Flujo para dispositivos A/B

Si el dispositivo usa A/B, el flujo de inicio es ligeramente diferente. La ranura desde la que se debe iniciar el sistema primero debe marcarse como SUCCESSFUL con el HAL de Boot Control antes de actualizar los metadatos de protección contra reversión.

Si hay una actualización de la plataforma que falla (no se marca como SUCCESSFUL), la pila de 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 arrancar 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, comunícaselo 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 raíz de confianza personalizada

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 (es posible que el dispositivo atenúe o apague 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 ocho dígitos del sha256 de la representación de libavb de la clave pública que se usó para la verificación, por ejemplo, d14a028c.

Texto sugerido:

Tu dispositivo está cargando un sistema operativo diferente.

Visita este vínculo en otro dispositivo:

g.co/ABH

Huella digital del SO: hex-number

Presiona el botón de encendido para pausar

Ejemplo de una pantalla AMARILLA
Figura 2: Ejemplo de una pantalla AMARILLA.

Dispositivos DESBLOQUEADOS

Mostrar una pantalla NARANJA en cada inicio si el dispositivo está DESBLOQUEADO La pantalla NARANJA se cierra 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 ocho dígitos del sha256 de la representación de libavb de la clave pública que se usó 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. Te recomendamos que no almacenes datos sensibles en él.

Visita este vínculo en otro dispositivo:

g.co/ABH

ID: hex-number

Presiona el botón de encendido para pausar.

Ejemplo de una pantalla NARANJA
Figura 3. Ejemplo de una pantalla NARANJA.

Corrupción de dm-verity

Mostrar una pantalla eio ROJA si se encuentra una versión válida de Android y el dispositivo está en el modo eio dm-verity El usuario debe presionar 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 baterí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:

g.co/ABH

Presiona el botón de encendido para continuar.

Ejemplo de una pantalla de EIO de RED
Figura 4: Ejemplo de una pantalla de EIO de RED.

No se encontró un SO válido

Mostrar una pantalla ROJA si no se encuentra una versión válida de Android El dispositivo no puede seguir con el arranque. 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 ocho dígitos del sha256 de la representación de libavb de la clave pública que se usó para la verificación, por ejemplo, d14a028c.

Texto sugerido:

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

Visita este vínculo en otro dispositivo:

g.co/ABH

ID: hex-number

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

Ejemplo de una pantalla RED
Figura 5: Ejemplo de una pantalla RED.

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. Inicialmente, el enfoque está 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, podrás instalar software de sistemas operativos personalizados 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 aplicaciones 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 mientras el bootloader esté desbloqueado.

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 las teclas de volumen para seleccionar si quieres desbloquear el bootloader y, luego, presiona el botón de encendido para continuar.

No desbloquees el bootloader y reinicia el teléfono.

Desbloquea el bootloader.

Ejemplo de una pantalla de confirmación de desbloqueo
Figura 6: Ejemplo de una pantalla de confirmación de desbloqueo.

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 establece 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 sistemas operativos personalizados en este teléfono.

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

Presiona las teclas de volumen para seleccionar si quieres bloquear el cargador de arranque y, luego, presiona el botón de encendido para continuar.

No bloquees el bootloader y reinicia el teléfono.

Bloquea el bootloader.

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

Comunica el estado de inicio verificado a Android

El bootloader comunica el estado del Arranque Verificado a Android a través de parámetros de kernel-command o a través de bootconfig en Android 12 y versiones posteriores. El cargador de inicio 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 establece en 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 errores de verificación.