Inhaltsverzeichnis:
Zu Beginn jedes Monats veröffentlicht Google das monatliche Android Security Bulletin und beginnt, Updates an Pixel-Telefone zu senden. Es ist großartig, dass das Unternehmen transparent ist, was los ist und wie Dinge behoben werden, auch wenn Sie nicht der Typ sind, der den Quellcode gerne liest.
Es gibt eine Menge Arbeit, die in diese Patches fließt, bevor sie veröffentlicht werden, und es gibt noch mehr Arbeit, bevor es zu anderen Telefonen kommt - wenn überhaupt. Schauen wir uns an, wie die Wurst hergestellt wird, und versuchen zu verstehen, warum die Zeitleiste für Sicherheitspatches etwas verschwommen ist.
Zuerst reparierst du Android
Android ist ein kompliziertes Biest. Über 5 Millionen Codezeilen sollen Unternehmen, die mobile Produkte herstellen, dabei helfen, mit einer vollständigen Anwendungsplattform einschließlich Zugriff auf Google Play und andere Dienste einsatzbereit zu sein. Es kann nicht so verwendet werden, wie es ist. Diese Unternehmen verbringen viel Zeit damit, Android so anzupassen, dass es in die andere Software integriert wird, die sie möglicherweise verwenden, um ein ansprechendes, homogenisiertes Betriebssystem zu erstellen.
Google hat einige Regeln, wie dies getan werden soll, wenn ein Unternehmen seine Dienste einbeziehen möchte, aber die Hersteller haben eine lange Leine darüber, wie das Endprodukt hergestellt wird.
In diesem Code wird ein Sicherheitspatch zum Leben erweckt. Jemand, sei es ein Sicherheitsforscher oder nur ein durchschnittlicher Joe, findet einen Fehler in einem Telefon, mit dem die Sicherheitsebene des Geräts verringert werden könnte. Wenn dieser Fehler nicht von einem OEM verursacht wurde, muss das Android-Team herausfinden, was passiert, warum es passiert und wie dies auf die am wenigsten störende Weise behoben werden kann.
Wenn eine Sicherheitslücke gefunden wird und diese Teil des Basis-Android-Codes ist, muss sie von Google behoben und an alle anderen gesendet werden.
Oft kann Google den Fehler nicht beheben. Wie wir hat Google keinen Zugriff auf Firmware von Unternehmen, die Hardware wie Qualcomm oder LG herstellen. Wenn der Fehler auf Hardwareebene behoben werden muss, besteht eine gute Chance, dass das Unternehmen, das einige der verwendeten Komponenten liefert, zuerst Änderungen vornehmen muss. In diesem Fall werden diese Änderungen an Google weitergeleitet, damit angezeigt wird, welche Maßnahmen erforderlich sind, um sie in den Android-Code aufzunehmen.
Diese Änderungen benötigen Zeit, insbesondere wenn ein Hardwarehersteller beteiligt ist. Es gibt Patches und Tests sowie weitere Patches und Tests für jeden einzelnen Fehler, der in einem Patch behoben wurde. Sobald Google sicher ist, dass eine gültige Lösung für eine Sicherheitslücke vorliegt, wird jedem Unternehmen, das Android-Telefone herstellt, ein früher Zugriff gewährt (mindestens 30 Tage, bevor der Patch von Google veröffentlicht wird), damit es mit der Arbeit beginnen kann.
Phase zwei
Hier wird der Großteil der Arbeit erledigt. Google kann Android selbst schreiben und warten, aber die meisten Geräte, die es verwenden, stammen nicht von Google. Diejenigen, die es gibt - Pixel-Telefone -, sind auch hier enthalten. Google-Hardware ist ein Kunde von Android genauso wie Samsung oder Motorola.
Die Samsungs und LGs der Mobilbranche, die viele Änderungen an Android vornehmen, müssen viel arbeiten, wenn es Zeit ist, einen Patch zusammenzuführen.
Alle diese Unternehmen arbeiten an einigen Dingen, sobald sie neuen Code von Google haben. Der erste - und möglicherweise wichtigste - Teil bestimmt, welcher Teil des Patches nicht benötigt wird. Und in jedem Patch gibt es eine Menge Dinge, die ein einzelnes Unternehmen uneingeschränkt ignorieren kann.
Wenn NVIDIA beispielsweise Änderungen vornehmen musste, die in Android zurückgeschrieben wurden, benötigen keine Samsung-Telefone diesen Teil des Patches. Ein extremeres Beispiel wären die Änderungen, die BlackBerry oder Samsung vorgenommen haben und die das Problem bereits auf andere Weise beheben. Herauszufinden, was benötigt wird und was nicht, kann zeitaufwändig sein, insbesondere wenn ein Unternehmen große Änderungen an bestimmten Teilen des Betriebssystems vornimmt. Google untersuchte Vorwürfe, dass OEMs Sicherheitspatches verschickten, die einige Dinge, die sie haben sollten, nicht angesprochen hatten, und stellte dies fest.
Nicht jeder Teil eines Patches wird auf jedem Telefon benötigt.
Sobald dies erledigt ist, muss der Rest des Patches mit dem benutzerdefinierten Android-Code eines Anbieters zusammengeführt, erstellt und getestet werden. Der "gebaute und getestete" Teil kann große Kopfschmerzen bereiten, wenn der Patch nicht einfach angewendet werden kann, weil er Dateien berührt, die von benutzerdefiniertem Code verwendet werden oder von denen er abhängt. Das sehen wir auch sehr. Jedes Mal, wenn Bluetooth oder Wi-Fi gepatcht wird, egal ob es sich um die dahinter stehende Hardware oder Software handelt, wird Code berührt, der von einem großen OEM geändert wurde, der ein schickeres Betriebssystem als "Standard" Android herstellt. Es gibt viele Teile von Android, die ein OEM anfassen kann.
Sobald die Ingenieure von Samsung oder eines anderen Herstellers ein Betriebssystem erhalten, das hochfährt und ausgeführt wird, muss es getestet werden. Und noch mehr getestet. Das Testen kann das Einbeziehen von Netzwerktechnikern von verschiedenen beteiligten Netzbetreibern sowie das Einbeziehen von Google und / oder des Herstellers einer Komponente in den Mix umfassen. Es muss richtig sein. Ein Patch, der an Tausende und Abertausende von Telefonen gesendet wird, kann möglicherweise das Netz eines Netzbetreibers lahm legen, die Datenobergrenze eines jeden Benutzers verschlingen oder sogar dazu führen, dass das Telefon selbst nicht mehr funktioniert. Alles Mögliche ist inakzeptabel und muss gefunden werden, bevor es das Gebäude verlässt.
Der Rollout
Das Unternehmen, von dem Ihr Telefon, Google und möglicherweise Ihr Mobilfunkanbieter stammen, arbeiten zusammen, um ein drahtloses Massenupdate bereitzustellen. Wenn Sie jemals die URL zum Herunterladen eines Patches gesehen haben, werden Sie feststellen, dass die Webadresse "Google" enthält. Das liegt daran, dass die Engine in Ihrem Telefon, die ein OTA-Update abrufen und verarbeiten kann, an einer ganz bestimmten Stelle nach einem Patch sucht. Es muss bekannt sein, dass der Patch zu 100% korrekt und mit der richtigen digitalen Signatur signiert ist. Dies wird erneut überprüft, sobald der Patch vollständig heruntergeladen wurde.
Wenn Sie Ihr Telefon von einem Netzbetreiber gekauft haben, hat es während der gesamten Lebensdauer eines Patches eine Menge Eingaben.
Ihr Netzbetreiber hat möglicherweise einige Regeln, wann und wer einen Patch herunterladen kann, wenn sein Name auf dem Telefon steht. Unternehmen wie Samsung oder LG stellen kundenspezifische Versionen ihrer beliebtesten Modelle für jeden Netzbetreiber her, die viel Einfluss darauf haben, wie die Dinge gemacht werden. Es sollte da sein Name auf der Box steht. Das kann frustrierend sein, macht aber Sinn. Wenn zum Beispiel jeder in Pittsburgh, der über ein Samsung Galaxy S8-Telefon verfügt, versucht, gleichzeitig einen 800-MB-Patch abzurufen, wird das Netzwerk an einigen Stellen zusammenbrechen. Ihr Netzbetreiber wird alles tun, um das Netzwerk am Leben zu erhalten.
Google hält auch die OTA-Rollouts in gewisser Weise zurück. Eine bestimmte Anzahl von Nutzern erhält einen Patch. Nach einer festgelegten Zeit ermittelt Google, ob diese Nutzer gute oder schlechte Erfahrungen gemacht haben. Wenn alles gut geht, erhält eine größere Anzahl von Benutzern den Patch in einer zweiten Welle. Dies wiederholt sich mehrmals, bevor die Schleusen geöffnet werden. Benutzer, die nicht auf diesen endgültigen Test warten möchten, können einen Patch manuell über ihre Geräteeinstellungen herunterladen.
Wenn Sie an der Reihe sind und Ihrem Telefon grünes Licht gegeben haben, um diese Datei abzurufen, wird sie heruntergeladen und dann übernimmt Ihr Telefon die Kontrolle.
In deinen Händen
Ein Patch wird auf Ihr Telefon heruntergeladen und als das Richtige bestätigt. Ältere Versionen von Android verfügen über einen dedizierten Cache. Dies ist ein Teil Ihres Speichers, der für die Aktualisierung einer Datei aufgeteilt wurde. Dinge, die nur vorübergehend am Telefon sind. Telefone, die die nahtlose Update-Funktion von Android verwenden (dies sollten die meisten Telefone sein, auf denen Android Nougat zum Verkauf angeboten wird), "stecken" die heruntergeladenen Dateien in sogenannte Slots. In beiden Fällen benötigen Sie genügend Speicherplatz, damit die OTA-Datei extrahiert und bearbeitet werden kann.
Telefone mit älteren Android-Versionen verfügen möglicherweise über eine dedizierte Cache-Partition, die während eines Updates verwendet wird. Es muss 2, 5-mal größer sein als die heruntergeladene OTA-Datei.
Die OTA-Updater-Software auf Ihrem Telefon ist Teil von Android. Ein Skript in der heruntergeladenen Datei informiert Sie darüber, wie Sie die zu ändernden Dateien finden, und kopiert diese Dateien entweder in den Gerätecache oder in den angegebenen Steckplatz. Anschließend werden die Originaldateien auf Ihrem Telefon mit den heruntergeladenen Dateien verglichen. Bei einigen handelt es sich möglicherweise um einen einfachen Tausch. Nehmen Sie die Datei X vom Telefon und löschen Sie sie. Ersetzen Sie sie dann durch die Datei X aus dem OTA-Download. Andere sind nicht die vollständige Datei und enthalten nur kleine spezifische Änderungen. Die Updater- und Installationssoftware auf Ihrem Telefon weiß, was hier zu tun ist.
Viele Dateien in Android, insbesondere die Anwendungen und Softwarebibliotheken, sind wirklich viele Dateien, die in einem speziellen Archiv komprimiert sind. Sie können eine APK-Datei in eine ZIP-Datei umwandeln und mit Windows öffnen. Manchmal müssen diese Archive geöffnet und Teile davon durch neue Versionen ersetzt werden, die für den Sicherheitspatch heruntergeladen wurden. Aus diesem Grund benötigen Sie diesen Arbeitsbereich in Ihrer Cache-Partition. Dort werden diese Dateien extrahiert.
Viele Dateien auf Ihrem Telefon sind wirklich Archive, die viele Dateien enthalten - einschließlich anderer Dateiarchive. Es ist kompliziert.
Sobald alle Dateien im OTA-Update verarbeitet und Änderungen an Kopien von Systemdateien vorgenommen wurden, ist es Zeit, das System mit ihnen auszuführen. Dies geschieht, wenn das Telefon Sie nach der Verarbeitung des empfangenen OTA zum Neustart auffordert, da häufig Dateien gepatcht werden müssen, die jedoch verwendet werden, während das Telefon ausgeführt wird. Möglicherweise wird auf einem Bildschirm angezeigt, dass während des Neustarts gerade etwas passiert, oder es wird nur das Android-Logo angezeigt. In beiden Fällen werden Dateien überprüft, an ihren Platz verschoben und erneut überprüft. Die alten Dateien werden im Cache gespeichert, falls ein Problem auftritt und Sie nicht mit den neuen Dateien booten können.
Sie müssen lediglich sicherstellen, dass alles noch so ist, wie es Ihnen gefällt, und in den Einstellungen Ihres Telefons haben Sie ein neueres Datum für die Version des Sicherheitspatches. Nun sind Sie bereit für das nächste Update!