1 votes

Pourquoi les chargeurs de démarrage sont-ils stockés dans une mémoire réinscriptible ?

J'ai réussi à flasher mon appareil plusieurs fois, mais je suis toujours paranoïaque à propos des briques dures. Je suis sûr que je peux utiliser mon Arduino pour les réparer, mais cela m'a amené à me demander pourquoi les chargeurs d'amorçage sont stockés dans une mémoire réinscriptible. Je sais qu'il y a un PBL et un SBL et tout ça, et que le PBL est en ROM. Dans ce contexte, "stockage réinscriptible" signifie un support de stockage qui peut être réécrit électroniquement (EEPROM, Flash, RAM, etc.) et "ROM" signifie un stockage en lecture seule, pas des distributions Android de seconde main comme Lineage OS.

Résumé : Pourquoi un code nécessaire pour allumer le téléphone, sans parler du démarrage d'Android, serait-il stocké dans un endroit où il peut être réécrit.

2voto

Andy Yan Points 9360

Les chargeurs de démarrage, comme d'autres partitions, peuvent être mis à jour officiellement pour diverses raisons :

  • Passage à une nouvelle configuration de partition (par exemple, un groupe d'appareils plus anciens dont la durée de vie s'étend de Gingerbread à Ice Cream Sandwich, ce dernier nécessitant beaucoup plus d'espace).
  • Mise en œuvre de nouveaux mécanismes de sécurité (par exemple, anciens appareils Xiaomi, ancien bootloader facilement déverrouillable, nouveau bootloader nécessitant une connexion et une vérification avant déverrouillage).
  • S'assurer que vous êtes sur une version voulue par le fabricant, c'est-à-dire empêcher les déclassements (par exemple, Samsung, cela arrêtera la moitié du chemin).

2voto

Andy Brudtkuhl Points 1714

Andy mentionne certains des avantages d'une mise à jour ultérieure sur le terrain, et ce sont de bons points, mais il y a plus que cela. Le chargeur de démarrage ne doit pas seulement démarrer le système d'exploitation principal, mais aussi le "mode de charge", qui est lui-même un noyau Linux intégré. Le chargeur de démarrage doit faire en sorte que le matériel devienne un point d'extrémité USB et qu'il utilise le protocole fastboot, afin de pouvoir recevoir et flasher de nouvelles images de récupération et de système. Il doit également procéder à la validation de la signature de ces images, à l'aide d'un système assez complexe basé sur des blocs, afin que la validation ne ralentisse pas le temps de démarrage.

Et alors ? Pourquoi cette fonctionnalité doit-elle être évolutive ? Parce qu'elle est suffisamment complexe pour contenir des bogues. Le chargeur de démarrage original de la XBox faisait 512 octets et contenait deux erreurs de sécurité critiques, dont l'une permettait d'exécuter du code non signé sur des appareils grand public. Il n'était pas possible de le mettre à jour sur le terrain. Dès lors, leur principal mécanisme de sécurité et de lutte contre le piratage est devenu inutile. Les fabricants de téléphones ne veulent pas de ces bogues. Ils font en sorte que le chargeur de démarrage puisse être mis à jour afin que l'appareil puisse être mis à niveau sur le terrain et qu'il soit plus facile de tester et de développer le chargeur de démarrage par rapport au matériel réel. Il est beaucoup plus difficile de développer et de tester un code qui sera intégré dans une ROM - et cette complexité supplémentaire signifie qu'il y aurait des problèmes de sécurité. plus et que le développement du téléphone serait plus lent, ce qui aurait pour effet de retarder les échéances importantes du lancement.

Le fait d'avoir un bootloader actualisable n'est un problème que si vous essayez de flasher le firmware sur le téléphone et que vous vous plantez. Ce n'est tout simplement pas un problème pour la quasi-totalité du marché des téléphones. Il n'y a que les amateurs fous qui bousillent leurs téléphones de cette manière. Pire encore, le transfert de ce bootloader complexe dans la ROM n'empêcherait pas le bricolage. Il existe encore de nombreuses façons dont un micrologiciel défectueux peut endommager l'appareil : en le surchauffant, en téléchargeant un micrologiciel radio défectueux, en faisant sauter les fusibles dans l'élément sécurisé, etc.

Dans l'ensemble, il est donc très coûteux d'installer des logiciels plus complexes dans un endroit où il est difficile de les tester et de les déboguer, et où il est impossible de les corriger pour ajouter des fonctionnalités ou corriger des bogues. Il n'y a aucun avantage pour la quasi-totalité des utilisateurs, et même ceux qui insistent pour se tirer une balle dans le pied ont d'autres moyens de le faire.

-4voto

robcore Points 1

En y réfléchissant bien, quelle responsabilité stupide avec un tel dispositif, n'est-ce pas ? Ma seule hypothèse est que les OEM sont en mesure de pousser les mises à jour pour les nouvelles versions, afin de corriger les problèmes de sécurité, les problèmes de compatibilité, etc. Il s'agit d'une vulnérabilité gigantesque et d'une faille béante dans le processus, c'est certain.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X