Gibt es einen Vorteil, wenn Sie Level-basierte vs. dateibasierte Software-Updates blockieren

285
stflow

Ich sehe, dass es zwei Möglichkeiten gibt, um Software-Updates durchzuführen. Regelmäßige Linux-Updates enthalten dateibasierte Updates, während Android auf blockbasierte Updates umgestellt wurde. Gibt es da einen Vorteil?

Wie führt ein Update auf Blockebene differenzielle Updates durch, die auf Dateiebene definiert sind?

1

1 Antwort auf die Frage

1
davidgo

Aktualisierungen auf Blockebene sind einfacher zu kontrollieren und (aus Sicht des Herstellers) sicherer - obwohl ein gewisser Teil dieser Sicherheit durch die Einschränkung der Kontrolle der Gerätebesitzer durch ihr System entsteht. Ein Teil davon kommt von der Signierung des Bildes und der Einschränkung der Anzahl der Zeichner von Bildern sowie der Ausführung nicht signierter Bilder.

Auf der anderen Seite schränkt dies den Umfang der Software stark ein, da zwischen dem Image und der genauen Hardware enge Verbindungen bestehen.

In mancher Hinsicht ist GNU Linux tatsächlich sehr ähnlich zu Aktualisierungen auf Blockebene, die normalerweise auf einem "initrd" basieren, einem komprimierten Dateisystem, das dann einen Tag lang zur Distribution benötigt wird. Der Unterschied besteht darin, dass dieser Block nach Bedarf neu erstellt / neu gepackt und entworfen wird leichtgewichtig sein und frühzeitig die Kontrolle abgeben. Natürlich ist das Sichern des Boot-Prozesses unter GNU Linux sehr schwierig - und Distris scheinen das nicht zu tun (während dies bei Android die Norm ist).

Aktualisierungen auf Blockebene erfordern, dass die Root-Dateien schreibgeschützt sind. Wenn sich dies ändert, sind die Dateispeicherorte nicht mehr garantiert und differenzielle Aktualisierungen können nicht durchgeführt werden, und die Hash-Prüfung schlägt hoffentlich auch fehl. stflow vor 6 Jahren 0