Flux de démarrage

Le flux de démarrage recommandé pour un périphérique est le suivant :

Flux de démarrage vérifié
Figure 1 . Flux de démarrage vérifié

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 à démarrer doit d'abord être marqué comme SUCCESSFUL à l'aide du HAL de contrôle de démarrage avant de mettre à jour les métadonnées de la protection contre la restauration.

Si une mise à jour de la plate-forme échoue (n'est pas marquée SUCCESSFUL ), la pile A/B revient à l'autre emplacement, qui contient toujours la version précédente d'Android. Cependant, si les métadonnées de protection contre la restauration ont été définies, la version précédente ne peut pas démarrer en raison de la protection contre la restauration.

Communication de l'état de démarrage vérifié aux utilisateurs

Après avoir déterminé l'état de démarrage d'un périphérique, vous devez communiquer cet état à l'utilisateur. Si l'appareil ne présente aucun problème, continuez sans rien afficher. Les problèmes de démarrage vérifié appartiennent à ces catégories :

  • JAUNE : écran d'avertissement pour les appareils VERROUILLÉS avec un ensemble de racine de confiance personnalisé
  • ORANGE : écran d'avertissement pour les appareils DÉVERROUILLÉS
  • ROUGE (eio) : écran d'avertissement pour la corruption de dm-verity
  • ROUGE (aucun système d'exploitation trouvé) : aucun système d'exploitation valide trouvé

Appareils VERROUILLÉS avec racine de confiance personnalisée

Exemple d'écran JAUNE :

Écran d'avertissement jaune de l'appareil

Afficher un écran JAUNE à chaque démarrage si le périphérique 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 après dix secondes et l'appareil continue de démarrer. Si l'utilisateur appuie sur le bouton d'alimentation, le texte « Appuyez sur le bouton d'alimentation pour mettre en pause » se transforme en « Appuyez sur le bouton d'alimentation pour continuer » et l'écran n'est jamais éteint, bien que l'appareil puisse s'assombrir ou éteindre l'écran pour se protéger contre les brûlures). Si vous appuyez à nouveau, l'écran disparaît et le téléphone continue de démarrer.

Pour le hex-number , utilisez les 8 premiers chiffres du sha256 de la représentation libavb de la clé publique utilisée pour la vérification, par exemple d14a028c .

Texte suggéré :

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

Visitez ce lien sur un autre appareil pour en savoir plus :

g.co/ABH

ID : hex-number

Appuyez sur le bouton d'alimentation pour mettre en pause

Appareils DÉBLOQUÉ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 après dix secondes et l'appareil continue de démarrer. Si l'utilisateur appuie sur le bouton d'alimentation, le texte « Appuyez sur le bouton d'alimentation pour mettre en pause » se transforme en « Appuyez sur le bouton d'alimentation pour continuer » et l'écran n'est jamais éteint (l'appareil peut s'assombrir et/ou éteindre l'écran si nécessaire pour se protéger contre les brûlures. dans ou similaire). Si vous appuyez à nouveau, l'écran disparaît et le téléphone continue de démarrer.

Pour le hex-number , utilisez les 8 premiers chiffres du sha256 de la représentation libavb de la clé publique utilisée pour la vérification, par exemple d14a028c .

Texte suggéré :

Le chargeur de démarrage est déverrouillé et l'intégrité du logiciel ne peut pas être garantie. Toutes les données stockées sur l'appareil peuvent être accessibles aux attaquants. Ne stockez aucune donnée sensible sur l’appareil.

Visitez ce lien sur un autre appareil pour en savoir plus :

g.co/ABH

ID : hex-number

Appuyez sur le bouton d'alimentation pour mettre en pause.

corruption dm-vérité

Exemple d'écran RED eio :

Écran d'avertissement rouge du périphérique eio

Afficher un écran eio ROUGE si une version valide d'Android est trouvée et que l'appareil est actuellement en mode eio dm-verity. L'utilisateur doit cliquer sur le bouton d'alimentation pour continuer. Si l'utilisateur n'a pas reconnu l'écran d'avertissement dans les 30 secondes, l'appareil s'éteint (pour protéger l'écran contre les brûlures et économiser de l'énergie).

Texte suggéré :

Votre appareil est corrompu. On ne peut pas lui faire confiance et il se peut qu'il ne fonctionne pas correctement.

Visitez ce lien sur un autre appareil pour en savoir plus :

g.co/ABH

Appuyez sur le bouton d'alimentation pour continuer.

Aucun système d'exploitation valide trouvé

Exemple d'écran ROUGE :

Écran d'avertissement de périphérique corrompu rouge

Afficher un écran ROUGE s'affiche si aucune version valide d'Android n'est trouvée. L'appareil ne peut pas continuer à démarrer. Si l'utilisateur n'a pas reconnu l'écran d'avertissement dans les 30 secondes, l'appareil s'éteint pour protéger l'écran contre les brûlures et économiser de l'énergie).

Pour le hex-number , utilisez les 8 premiers chiffres du sha256 de la représentation libavb de la clé publique utilisée pour la vérification, par exemple d14a028c .

Texte suggéré :

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

Visitez ce lien sur un autre appareil pour en savoir plus :

g.co/ABH

ID : hex-number

Appuyez sur le bouton d'alimentation pour éteindre.

Confirmation de déverrouillage

Exemple d'écran :

Écran d’avertissement de DÉVERROUILLAGE de l’appareil

Afficher un écran de confirmation de déverrouillage en réponse à la commande fastboot flashing unlock exécutée via l'interface fastboot. L'accent est initialement mis 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é :

Si vous déverrouillez le chargeur de démarrage, vous pourrez installer un logiciel de système d'exploitation personnalisé sur ce téléphone. Un système d'exploitation personnalisé n'est pas soumis au même niveau de tests que le système d'exploitation d'origine et peut empêcher votre téléphone et les applications installées de fonctionner correctement. L'intégrité du logiciel ne peut pas être garantie avec un système d'exploitation personnalisé, donc toutes les données stockées sur le téléphone pendant que le chargeur de démarrage est déverrouillé peuvent être menacées.

Pour empêcher tout accès non autorisé à vos données personnelles, le déverrouillage du chargeur de démarrage supprimera également toutes les données personnelles de votre téléphone.

Appuyez sur Volume haut/Volume bas pour choisir de déverrouiller ou non le chargeur de démarrage, puis sur le bouton d'alimentation pour continuer.

Ouvrir

Déverrouillez le chargeur de démarrage.

Ne pas débloquer

Ne déverrouillez pas le chargeur de démarrage et ne redémarrez pas le téléphone.

Confirmation du verrouillage

Afficher un écran de confirmation de verrouillage en réponse à la commande fastboot flashing lock exécutée via l'interface fastboot. L'accent est initialement mis sur Ne pas 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:

Si vous verrouillez le chargeur de démarrage, 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 personnelles, le verrouillage du chargeur de démarrage supprimera également toutes les données personnelles de votre téléphone.

Appuyez sur Volume haut/Volume bas pour choisir de verrouiller ou non le chargeur de démarrage, puis sur le bouton d'alimentation pour continuer.

Verrouillage

Verrouillez le chargeur de démarrage.

Ne verrouille pas

Ne verrouillez pas le chargeur de démarrage et ne redémarrez pas le téléphone.

Communication de l'état de démarrage vérifié à Android

Exemple d'écran :

Écran d’avertissement du dispositif de confirmation de VERROUILLAGE

Le chargeur de démarrage communique l'état de démarrage vérifié à Android via les 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 que la racine de confiance définie 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 dans lequel se trouve le chargeur de démarrage en ce qui concerne la gestion des erreurs dm-verity. Pour plus de détails, consultez Gestion des erreurs de vérification .