Flux de démarrage

Le flux de démarrage recommandé pour un appareil est le suivant:

Flux de démarrage validé

Figure 1 : Flux de démarrage validé.

Flux pour les appareils A/B

Si l'appareil utilise A/B, le processus de démarrage est légèrement différent. L'emplacement de démarrage doit d'abord être marqué comme SUCCESSFUL à l'aide du HAL de contrôle du démarrage avant de mettre à jour les métadonnées de protection contre le rollback.

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 de démarrage validé aux utilisateurs

Après avoir déterminé l'état de démarrage d'un appareil, vous devez communiquer cet état à l'utilisateur. Si l'appareil ne présente aucun problème, poursuivez sans rien afficher. Les problèmes de démarrage validé se répartissent dans les catégories suivantes:

  • JAUNE: Écran d'avertissement pour les appareils VERTUÉS avec une racine de confiance personnalisée définie
  • ORANGE: Écran d'avertissement pour les appareils DÉVERROUILLÉS
  • ROUGE (eio): écran d'avertissement en cas de corruption de dm-verity
  • ROUGE (aucun OS trouvé): aucun OS valide n'a été trouvé

Appareils LOCKÉS avec une racine de confiance personnalisée

Exemple d'écran JAUNE:

Écran d'avertissement jaune concernant l'appareil

Affichez un écran JAUNE à chaque démarrage si l'appareil est VERTU, 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é (bien que l'appareil puisse s'assombrir ou éteindre l'écran pour le protéger contre les brûlures d'écran). Si vous appuyez à 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é:

Votre appareil a chargé un autre système d'exploitation.

Pour en savoir plus, accédez à ce lien sur un autre appareil:

g.co/ABH

ID : hex-number

Appuyer sur le bouton Marche/Arrêt pour mettre en pause

Appareils DÉVERROUILLÉS

Exemple d'écran ORANGE:

Écran d'avertissement orange de l'appareil

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 "Appuyer sur le bouton Marche/Arrêt pour mettre en pause" est remplacé par "Appuyer 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 éviter les brûlures d'écran ou des problèmes similaires). Si vous appuyez de nouveau sur ce 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.

Pour en savoir plus, 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.

Corruption dm-verity

Exemple d'écran eio RED:

Écran d'avertissement rouge de l'appareil eio

Affichez un écran eio rouge si une version valide d'Android est détectée et que l'appareil est actuellement en mode dm-verity eio. L'utilisateur doit cliquer sur le bouton Marche/Arrêt pour continuer. Si l'utilisateur n'a pas confirmé l'écran d'avertissement sous 30 secondes, l'appareil s'éteint (pour protéger l'écran contre les brûlures d'écran et économiser de l'énergie).

Suggestion de texte:

Votre appareil est corrompu. Il n'est pas fiable et risque de ne pas fonctionner correctement.

Pour en savoir plus, accédez à ce lien sur un autre appareil:

g.co/ABH

Appuyez sur le bouton Marche/Arrêt pour continuer.

Aucun OS valide trouvé

Exemple d'écran ROUGE:

Écran rouge d'avertissement indiquant que l'appareil est endommagé

Si aucune version valide d'Android n'est trouvée, un écran rouge s'affiche. L'appareil ne peut pas continuer le démarrage. Si l'utilisateur n'a pas confirmé l'écran d'avertissement sous 30 secondes, l'appareil s'éteint pour protéger l'écran contre l'éblouissement 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.

Suggestion de texte:

Aucun système d'exploitation valide n'a été trouvé. L'appareil ne démarre pas.

Pour en savoir plus, accédez à ce lien sur un autre appareil:

g.co/ABH

ID : hex-number

Appuyez sur le bouton Marche/Arrêt pour l'éteindre.

Confirmation du déverrouillage

Exemple d'écran:

Écran d'avertissement de déverrouillage de l'appareil

Affichez un écran de confirmation de déverrouillage en réponse à la commande fastboot flashing unlock exécutée via l'interface fastboot. Le curseur est initialement sur Ne pas déverrouiller. Si l'utilisateur n'a pas interagi avec l'écran d'avertissement dans les 30 secondes, celui-ci disparaît et la commande échoue.

Suggestion de texte:

Si vous déverrouillez le bootloader, vous pouvez installer un logiciel de système d'exploitation personnalisé sur ce téléphone. Un OS personnalisé n'est pas soumis au même niveau de test que l'OS d'origine et peut entraîner l'arrêt du fonctionnement de votre téléphone et des applications installées. L'intégrité du logiciel ne peut pas être garantie avec un OS personnalisé. Par conséquent, toutes les données stockées sur le téléphone lorsque le bootloader est déverrouillé peuvent être exposées à un risque.

Pour empêcher tout accès non autorisé à vos données à caractère personnel, le déverrouillage du bootloader supprime également toutes les données à caractère personnel de votre téléphone.

Appuyez sur les boutons volume+/volume- pour indiquer si vous souhaitez déverrouiller le bootloader, puis appuyez sur le bouton Marche/Arrêt pour continuer.

Déverrouiller

Déverrouillez le bootloader.

Ne pas déverrouiller

Ne déverrouillez pas le bootloader et ne redémarrez pas le téléphone.

Confirmation du verrouillage

Affichez un écran de confirmation de verrouillage en réponse à l'exécution de la commande fastboot flashing lock via l'interface fastboot. Le curseur est initialement sur Ne pas verrouiller. Si l'utilisateur n'a pas interagi avec l'écran d'avertissement sous 30 secondes, l'écran disparaît et la commande échoue.

Texte:

Si vous verrouillez le bootloader, vous ne pourrez pas installer de logiciel de système d'exploitation personnalisé sur ce téléphone. Pour empêcher tout accès non autorisé à vos données à caractère personnel, le verrouillage du bootloader supprime également toutes les données à caractère personnel de votre téléphone.

Appuyez sur le bouton Volume + ou Volume - pour choisir de verrouiller ou non le bootloader, puis sur le bouton Marche/Arrêt pour continuer.

Verrouiller

Verrouillez le bootloader.

Ne pas verrouiller

Ne verrouillez pas le bootloader et redémarrez le téléphone.

Transmettre l'état du démarrage validé à Android

Exemple d'écran:

Écran d'avertissement de confirmation du verrouillage de l'appareil

Le bootloader communique l'état du démarrage validé à Android via des paramètres de commande du noyau ou via bootconfig à partir d'Android 12. Il définit l'option androidboot.verifiedbootstate sur l'une des valeurs suivantes:

  • green: si l'appareil est LOCKED et que la racine de confiance définie par l'utilisateur n'est pas utilisée
  • yellow: si l'appareil est LOCKED et qu'une racine de confiance configurable par l'utilisateur est utilisée
  • orange: si l'appareil est UNLOCKED

L'option androidboot.veritymode est définie sur eio ou restart en fonction de l'état du bootloader par rapport à la gestion des erreurs dm-verity. Pour en savoir plus, consultez la section Gérer les erreurs de validation.