Le flux de démarrage recommandé pour un appareil est décrit sur cette page et illustré dans la figure 1 :

Figure 1. Flux de démarrage validé.
Flux pour les appareils A/B
Si l'appareil utilise A/B, le flux de démarrage est légèrement différent. L'emplacement à partir duquel démarrer doit d'abord être marqué comme SUCCESSFUL à l'aide de la HAL Boot Control avant de mettre à jour les métadonnées de protection contre la restauration.
Si une mise à jour de la plate-forme échoue (n'est pas marquée comme SUCCESSFUL), la pile A/B revient à l'autre emplacement, qui contient toujours la version précédente d'Android. Toutefois, si les métadonnées de protection contre le rollback ont été définies, la version précédente ne peut pas démarrer en raison de la protection contre le rollback.
Communiquer l'état du démarrage validé aux utilisateurs
Après avoir déterminé l'état de démarrage d'un appareil, communiquez cet état à l'utilisateur. Si l'appareil ne présente aucun problème, poursuivez sans rien afficher. Les problèmes liés au démarrage validé se répartissent dans les catégories suivantes :
- JAUNE : écran d'avertissement pour les appareils VERROUILLÉS avec une racine de confiance personnalisée définie
- ORANGE : écran d'avertissement pour les appareils DÉVERROUILLÉS
- RED (
eio) : écran d'avertissement en cas de corruption de dm-verity - ROUGE (aucun OS trouvé) : aucun OS valide trouvé
Appareils VERROUILLÉS avec une racine de confiance personnalisée
Afficher un écran JAUNE à chaque démarrage si l'appareil est VERROUILLÉ, qu'une racine de confiance personnalisée a été définie et que l'image a été signée avec cette racine de confiance personnalisée. L'écran JAUNE disparaît au bout de dix secondes et l'appareil continue de démarrer. Si l'utilisateur appuie sur le bouton Marche/Arrêt, le texte "Appuyez sur le bouton Marche/Arrêt pour mettre en pause" devient "Appuyez sur le bouton Marche/Arrêt pour continuer" et l'écran n'est jamais fermé (l'appareil peut baisser la luminosité ou éteindre l'écran pour le protéger contre le burn-in). Si vous appuyez à nouveau sur le bouton, l'écran disparaît et le téléphone continue de démarrer.
Pour hex-number, utilisez les huit premiers chiffres du sha256 de la représentation libavb de la clé publique utilisée pour la validation, par exemple d14a028c.
Texte suggéré :
Votre appareil charge un autre système d'exploitation.
Accédez à ce lien sur un autre appareil :
g.co/ABH
Empreinte de l'OS : hex-number
Appuyez sur le bouton Marche/Arrêt pour mettre en pause

Figure 2 : Exemple d'écran JAUNE.
Appareils DÉVERROUILLÉS
Afficher un écran ORANGE à chaque démarrage si l'appareil est DÉVERROUILLÉ. L'écran ORANGE disparaît au bout de dix secondes et l'appareil continue de démarrer. Si l'utilisateur appuie sur le bouton Marche/Arrêt, le texte "Appuyez sur le bouton Marche/Arrêt pour mettre en pause" devient "Appuyez sur le bouton Marche/Arrêt pour continuer" et l'écran n'est jamais fermé (l'appareil peut réduire la luminosité et/ou éteindre l'écran si nécessaire pour le protéger contre le burn-in ou autre). Si vous appuyez de nouveau sur le bouton, l'écran se ferme et le téléphone continue de démarrer.
Pour hex-number, utilisez les huit premiers chiffres du sha256 de la représentation libavb de la clé publique utilisée pour la validation, par exemple d14a028c.
Texte suggéré :
Le bootloader est déverrouillé et l'intégrité du logiciel ne peut pas être garantie. Il est possible que les données stockées sur l'appareil soient accessibles aux pirates informatiques. Ne stockez aucune donnée sensible sur l'appareil.
Accédez à ce lien sur un autre appareil :
g.co/ABH
ID : hex-number
Appuyez sur le bouton Marche/Arrêt pour mettre en pause.

Figure 3. Exemple d'écran ORANGE.
Corruption de dm-verity
Afficher un écran ROUGE eio si une version valide d'Android est détectée et que l'appareil est en mode eio dm-verity. L'utilisateur doit appuyer sur le bouton Marche/Arrêt pour continuer. Si l'utilisateur n'a pas confirmé l'écran d'avertissement dans les 30 secondes, l'appareil s'éteint (pour protéger l'écran contre la brûlure et économiser de l'énergie).
Texte suggéré :
Votre appareil est corrompu. Il n'est pas fiable et risque de ne pas fonctionner correctement.
Accédez à ce lien sur un autre appareil :
g.co/ABH
Appuyez sur le bouton Marche/Arrêt pour continuer.

Figure 4. Exemple d'écran RED eio.
Aucun système d'exploitation valide trouvé
Afficher un écran ROUGE si aucune version valide d'Android n'est trouvée. L'appareil ne peut pas continuer à démarrer. Si l'utilisateur n'a pas confirmé l'écran d'avertissement dans les 30 secondes, l'appareil s'éteint pour protéger l'écran contre le burn-in et économiser de l'énergie.
Pour hex-number, utilisez les huit premiers chiffres du sha256 de la représentation libavb de la clé publique utilisée pour la validation, par exemple d14a028c.
Texte suggéré :
Aucun système d'exploitation valide n'a été trouvé. L'appareil ne démarre pas.
Accédez à ce lien sur un autre appareil :
g.co/ABH
ID : hex-number
Appuyez sur le bouton Marche/Arrêt pour éteindre l'appareil.

Figure 5 : Exemple d'écran RED.
Confirmation du déverrouillage
Affichez un écran de confirmation du déverrouillage en réponse à l'exécution de la commande fastboot flashing unlock via l'interface fastboot. Le curseur est initialement placé sur Ne pas déverrouiller. Si l'utilisateur n'a pas interagi avec l'écran d'avertissement dans les 30 secondes, l'écran disparaît et la commande échoue.
Texte suggéré :
En déverrouillant le bootloader, vous pourrez installer un système d'exploitation personnalisé sur ce téléphone. Un OS personnalisé n'est pas soumis au même niveau de tests que l'OS d'origine. Il peut entraîner un dysfonctionnement de votre téléphone et des applications installées.
L'intégrité du logiciel ne peut pas être garantie avec un OS personnalisé. Toute donnée stockée sur le téléphone alors que le bootloader est déverrouillé peut donc être exposée à un risque.
Pour empêcher tout accès non autorisé à vos données personnelles, le déverrouillage du bootloader supprime également toutes les données personnelles de votre téléphone.
Appuyez sur les touches de volume pour sélectionner si vous souhaitez déverrouiller le bootloader, puis sur le bouton Marche/Arrêt pour continuer.
Ne déverrouillez pas le bootloader et redémarrez le téléphone.
Déverrouillez le bootloader.

Figure 6 : Exemple d'écran de confirmation du déverrouillage.
Confirmation du verrouillage
Affichez un écran de confirmation du verrouillage en réponse à l'exécution de la commande fastboot flashing
lock via l'interface fastboot. La mise au point est initialement définie sur Ne pas verrouiller. Si l'utilisateur n'interagit pas avec l'écran d'avertissement dans les 30 secondes, l'écran disparaît et la commande échoue.
Text:
Si vous verrouillez le bootloader, vous ne pourrez pas installer de système d'exploitation personnalisé sur ce téléphone.
Pour empêcher tout accès non autorisé à vos données personnelles, le verrouillage du bootloader supprimera également toutes les données personnelles de votre téléphone.
Appuyez sur les touches de volume pour sélectionner si vous souhaitez verrouiller le bootloader, puis sur le bouton Marche/Arrêt pour continuer.
Ne verrouillez pas le bootloader et redémarrez le téléphone.
Verrouillez le bootloader.

Figure 7 : Écran d'avertissement de verrouillage de l'appareil.
Communiquer l'état du démarrage validé à Android
Le bootloader communique l'état de démarrage vérifié à Android via des paramètres de commande du noyau ou via bootconfig sous Android 12 et versions ultérieures.
Le bootloader définit l'option androidboot.verifiedbootstate sur l'une des valeurs suivantes :
greensi l'appareil estLOCKEDet que la racine de confiance configurable par l'utilisateur n'est pas utiliséeyellowsi l'appareil estLOCKEDet que la racine de confiance configurable par l'utilisateur est utiliséeorangesi l'appareil estUNLOCKED
L'option androidboot.veritymode est définie sur eio ou restart, selon l'état du bootloader par rapport à la gestion des erreurs dm-verity. Pour en savoir plus, consultez Gérer les erreurs de validation.