Was versteht man unter gesperrtem Bootloader?

Jeder beschwert sich über gesperrte Bootloader auf Telefonen. Aus dem Lesen des Bootloaders scheint Code auf der Partition gespeichert zu sein, die /boot gemountet ist. Wenn das Telefon einmal gerootet ist, warum kann man nicht einfach löschen, was sich auf /boot befindet, und seine eigenen Sachen dort ablegen? Wenn Sie ein OTA machen und es den Bootloader aktualisieren, nehme ich an, dass es nur Dateien auf diese Partition schreibt.

In einer Linux-Distribution kann ich grub, das im Boot gespeichert ist, durch LILO oder was auch immer ersetzen, indem ich einfach die Dateien in /boot ersetze und den PBR in den Kopf dieser Partition schreibe, um dann in LILO zu booten. Wenn der PC hochfährt, sieht er sich den MBR an, der ihm sagt, er soll sich die aktive Partitin ansehen (wahrscheinlich die mit /boot), sie verketten und den LILO-Code am Kopf lesen, der dann mit allen anderen Dateien in /boot arbeitet .

Wie booten Android-Geräte anders, was das verhindert?

@KaranRajBaruah - Danke, das habe ich vor einer Weile gelesen. Ich verstehe immer noch nicht, warum Sie die /boot-Partition nicht ersetzen können, wenn Sie ein gerootetes Gerät haben. Der Bootloader ist nicht fest in das Telefon eingebrannt. Ich glaube nicht, dass es mit dem Umschreiben des BIOS vergleichbar ist, eher vergleichbar mit dem Umschreiben, was sich auf dieser montierbaren Partition befindet.

Antworten (1)

Der Bootloader befindet sich im Allgemeinen nicht auf der /bootPartition, sondern auf einer separaten Partition, obwohl dies nicht wirklich der Kern des Problems ist.

Das Problem tritt auf, wenn der Bootloader kryptografisch signiert ist, was verhindern soll, dass Sie ihn durch Ihren eigenen ersetzen. Das Gerät überprüft beim Start die Signatur des Bootloaders und weigert sich, einen mit einer ungültigen Signatur zu booten. Danach überprüft der Bootloader die Signatur von allem, was in ist , und weigert sich, das/boot zu booten , wenn es nicht gültig signiert ist. Daher können Sie keine der beiden Partitionen überschreiben, ohne das Gerät nicht mehr bootfähig zu machen.

Wenn ein Bootloader entsperrt ist, überprüft er nicht die Signatur der anderen Partitionsabbilder, weshalb Sie benutzerdefinierte ROMs installieren können. Dies bedeutet, dass Sie den Bootloader nicht ersetzen müssen, um zu ändern /boot, sondern ihn nur entsperren müssen, damit er die Signaturprüfung auf überspringt /boot. Wenn der Bootloader gesperrt und signiert ist, stecken Sie im Grunde fest, abgesehen von einem Exploit, mit dem Sie einen der Schritte zur Signaturüberprüfung umgehen können.

Dies bedeutet auch, dass gesperrte Bootloader an und für sich nicht unbedingt ein Problem darstellen. Das eigentliche Problem sind signierte Bootloader, die keinen Entsperrmechanismus bieten.

Der Prozess ist (mehr oder weniger) analog zu UEFI Secure boot , obwohl es wahrscheinlich nicht genau dieselbe architektonische Implementierung ist. Übrigens, wenn Sie mit Ihrem Beispiel von Linux gehen, ist einer der Hauptkritikpunkte an UEFI Secure Boot, dass es möglicherweise verwendet werden könnte, um die Installation alternativer Betriebssysteme auf herkömmlichen PCs über dasselbe Signaturprüfschema zu verhindern.

Nehmen wir die GS4. Es ist etwas fest in das Telefon eingebrannt. Dies ist ähnlich wie EFI oder BIOS und kann NICHT geändert werden. Es ist fest codiert, die Signatur auf BL zu überprüfen. Zuerst war Samsung cool und stellte eine (signierte?) BL zur Verfügung, die sich nicht darum kümmerte, welches ROM sie auf /boot (entsperrt) lud. Da Samsung die Schlüssel hat, können sie BL aktualisieren und signieren. Sie beschlossen, das BL OTA zu aktualisieren und die Signaturprüfung auf dem ROM zu erzwingen. Dadurch wurde der Bootloader im Wesentlichen gesperrt. Gesperrt oder entsperrt, was auch immer sich in der BL-Partition befindet, muss mit einer Codesignatur versehen werden, da das Telefon zur Überprüfung fest codiert ist und nicht deaktiviert werden kann
Ist das korrekt? Wenn ja, warum kann man nicht einfach den alten, entsperrten Code in die BL-Partition einfügen? Es ist auch möglich, das Laden des BL zu ändern, ähnlich wie beim Flashen des BIOS, oder es ist direkt in die Platine fest codiert. Danke für die informative Antwort btw.
Theoretisch wäre ein Downgrading eine Option, und dies ist der Blickwinkel, den die meisten Modder wahrscheinlich untersuchen würden. In der Praxis ist dies möglicherweise nicht ganz einfach. Ich kenne Samsung nicht speziell, aber andere Hersteller haben Softwareeinschränkungen implementiert, um zu verhindern, dass Sie Ihren Bootloader auf normale Weise herunterstufen. Dies kann auch in Ihrem Beispiel der Fehler sein und müsste einen Weg finden, den Bootloader außerhalb der unterstützten Methoden zu schreiben.
In Bezug auf die Änderung der Stufe vor dem Bootloader: Auch dies ist theoretisch möglich. Der Kindle Fire hatte einen First Stage Loader, der beschreibbar war. Der Code für einen solchen Loader ist jedoch möglicherweise nicht öffentlich verfügbar (die meisten Bootloader sind in dieser Hinsicht proprietär), sodass das Ändern der ersten Stufe wahrscheinlich schwierig wäre. Ich bin mir auch nicht sicher, ob alle Telefone einen First-Stage-Loader auf die gleiche Weise verwenden oder ob er auf denen, die dies tun, schreibgeschützt ist. Es wäre wahrscheinlich vernünftig, wenn es im Nur-Lese-Speicher leben würde, da es unwahrscheinlich wäre, dass es aktualisiert werden müsste.
Wie wäre die BL nicht beschreibbar? Sind das nicht nur Partitionen auf dem internen Flash (eine verherrlichte interne SD-Karte)
Sie sind, aber ohne Root-Berechtigung können Sie es nicht mounten. Wenn Sie root erhalten könnten und Zugriff auf einen älteren, entsperrten (aber immer noch signierten) Bootloader hätten, könnten Sie es wahrscheinlich irgendwie schaffen, ihn herunterzustufen. Wie ich schon sagte, ich bin nicht besonders an der S4-Situation interessiert, daher weiß ich nicht, ob dort möglicherweise andere Faktoren eine Rolle spielen.