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 de Boot Control HAL avant de mettre à jour les métadonnées de la protection anti-retour.

Si une mise à jour de 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 la protection anti-retour ont été définies, la version précédente ne peut pas démarrer en raison de la protection anti-retour.

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 rencontre aucun problème, continuez sans rien afficher. Les problèmes de démarrage vérifié entrent dans ces catégories :

  • 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
  • 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 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 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" devient "Appuyez sur le bouton d'alimentation pour continuer" et l'écran n'est jamais fermé, bien que l'appareil puisse assombrir ou éteindre l'écran pour se protéger contre le rodage). 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É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 d'alimentation, le texte « Appuyez sur le bouton d'alimentation pour mettre en pause » devient « Appuyez sur le bouton d'alimentation pour continuer » et l'écran n'est jamais fermé (l'appareil peut assombrir et/ou éteindre l'écran si nécessaire pour 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 de l'appareil eio

Affiche 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 le rodage et économiser de l'énergie).

Texte suggéré :

Votre appareil est corrompu. Il n'est pas fiable et peut ne pas fonctionner 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 rouge d'avertissement de périphérique corrompu

Afficher un écran ROUGE s'affiche si aucune version valide d'Android ne peut être 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 le rodage 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 :

DÉVERROUILLER l'écran d'avertissement de l'appareil

Affichez un écran de confirmation de déverrouillage en réponse à la commande fastboot flashing unlock en cours d'exécution 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 test 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é, de sorte que toutes les données stockées sur le téléphone pendant que le chargeur de démarrage est déverrouillé peuvent être à risque.

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 sélectionner si vous souhaitez déverrouiller le chargeur de démarrage, puis sur le bouton d'alimentation pour continuer.

Ouvrir

Déverrouillez le chargeur de démarrage.

Ne pas déverrouiller

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

Confirmation de verrouillage

Afficher un écran de confirmation de verrouillage en réponse à l'exécution de la commande fastboot flashing lock 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 bootloader supprimera également toutes les données personnelles de votre téléphone.

Appuyez sur Volume haut/Volume bas pour sélectionner si vous souhaitez verrouiller le chargeur de démarrage, puis sur le bouton d'alimentation pour continuer.

Verrouillage

Verrouillez le chargeur de démarrage.

Ne verrouillez pas

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

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

Exemple d'écran :

Écran d'avertissement de l'appareil de confirmation LOCK

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.verifiedstate sur l'une des valeurs suivantes :

  • green : si l'appareil est LOCKED et que la racine de confiance configurable par l'utilisateur n'est pas utilisée
  • yellow : si l'appareil est LOCKED et que la 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 dans lequel se trouve le chargeur de démarrage en ce qui concerne la gestion des erreurs dm-verity. Pour plus de détails, voir Gérer les erreurs de vérification .