Android Treble Grundlagen – Non-A/B vs. A/B seamless OTA-Firmware-Update

Mit Project Treble arbeitet Google zwar an einer Lösung für das Problem der Fragmentierung unterschiedlichster Android-Versionen, und erleichtert mutmaßlich auch die Entwicklung neuer, plattformübergreifender, Custom ROMs, aber es ziehen auch neue Begrifflichkeiten in Android ein. Zwei zentrale Begriffe sind dabei etwa das sogenannte unterbrechungslose A/B und das Non-A/B (oft auch als A-only) OTA Update. Was der Unterschied zwischen den beiden Varianten ist, will ich Euch heute erklären, damit ihr Euch im Project Treble Dschungel möglichst schnell und reibungslos zurechtfinden könnt.

Was bedeutet der Begriff A/B?

A/B bezieht sich auf Partitionsnamen. A ist eine Partition und B ist eine andere Partition.

treble_20180216_ablayout.jpg
Android Treble Partitionslayout bei vollständiger Implementierung der A/B Partitionen

Was ist ein Non-A/B-(A-only)-Update

Android-Geräte ohne A/B-Partitionen, wie beispielsweise das HTC U11+, haben vereinfacht gesprochen folgendes Partitionslayout:

„boot, system, vendor, userdata, cache, recovery, misc“.

Werfen wir daher noch einmal einen Blick auf den Lebenszyklus des Non-A/B-System-Updates.

  1. Geräte führen Prüfungen mit OTA-Servern durch und werden über die Verfügbarkeit eines Updates informiert.
  2. Lädt OTA-Pakete in einen Cache oder eine Datenpartition herunter.
  3. Die kryptographische Signatur wird gegen die Zertifikate in /system/etc/security verifiziert. Wenn alles gut aussieht, wird der Benutzer aufgefordert, das Update zu installieren.
  4. Das Gerät startet neu in den Recovery-Modus.
  5. Die Recovery überprüft die kryptographische Signatur des Pakets gegen die öffentlichen Schlüssel in /res/keys(Teil der RAM-Disk, die in der Recovery-Partition enthalten ist).
  6. Extrahiert das Paket, um die Boot-, System- und/oder Herstellerpartitionen bei Bedarf zu aktualisieren.
  7. Die Systempartition enthält den Inhalt der neuen Wiederherstellungspartition (optional).
  8. Das Gerät startet normal neu:
    • Die neu aktualisierte Boot-Partition wird geladen, und sie mountet und startet die Ausführung von Binärdateien in der neu aktualisierten Systempartition.
    • Im Rahmen des normalen Startvorgangs prüft das System den Inhalt der Wiederherstellungspartition gegen den gewünschten Inhalt (der zuvor als Datei in /system gespeichert wurde). Sie unterscheiden sich voneinander, so dass die Wiederherstellungspartition mit dem gewünschten Inhalt der Systempartition neu geflasht wird. (Bei nachfolgenden Bootvorgängen enthält die Wiederherstellungspartition bereits den neuen Inhalt, so dass kein Re-Flash erforderlich ist.

Das System-Update ist abgeschlossen! Wenn Nicht-A/B-Geräte die obigen 8 Schritte für ein OTA-Upgrade durchführen, ändern sich ihre aktiven Partitionen oder Boot-Partitionen wie in der Abbildung unten gezeigt.

treble_20180216_non-abota.png
Treble mit unterbrochenem A-only-/Non-A/B-Update

Was ist ein nahtloses (seamless) A/B-Update?

A/B-System-Updates, auch als nahtlose Updates bekannt, gewährleisten ein bootfähiges System und minimale Ausfallzeiten bei der Durchführung eines OTA-Updates.

Nahtlose Updates funktionieren, indem zwei verschiedene Systempartitionen auf einem Gerät vorhanden sind. Wenn Sie ein Gerät verwenden, das nahtlose Updates durchführen kann, wird die gesamte Übertragung durchgeführt, während eine der beiden Systempartition weiterhin ausgeführt wird, da Dinge kopiert und in die zweite Partition verschoben werden. Die Art und Weise, wie Android in einzelne Partitionen aufgeteilt ist, bedeutet, dass der Datenteil, in dem alle Informationen, die Sie über eine App eingegeben haben, wie Adressbücher, Einstellungen oder Spielverlauf, an einem separaten Ort außerhalb des Systems gespeichert werden. Das ist gut für die Systemsicherheit (die Datenpartition kann eigene Datei- und Ordnerrechte haben) und es macht die Dinge ziemlich bequem für nahtlose Updates.

Sobald alles erledigt ist, können Sie das System neu starten und die neue Systempartition verwenden. Dies geschieht, ohne die Partitionen zu verschieben oder umzubenennen, da sie nummeriert sind. Eine Konfigurationsdatei, die während des Bootvorgangs verwendet wird, wird gelesen, die dem Kernel und dem Bootprozess mitteilt, wo jede Partition beginnt und endet. Diese Datei wird so geändert, dass sie auf die neue Systempartition zeigt, anstatt auf die Aktuelle (wird inaktiv). Beim nächsten Update wird die andere Systempartition gelöscht und verwendet. Sie wechseln nahtlos hin und her.

treble_20180216_abota.png
Treble mit nahtlosem A/B-Update

Nahtlose Updates sind keine Voraussetzung für Hersteller. Ihre vorhandenen Gerätepartitionen sind möglicherweise nicht A/B-partitioniert und können keine nahtlosen Updates durchführen. A/B OTA-Updates verbrauchen zudem wesentlich mehr Platz auf dem internen Speicher Ihres Geräts, da sie eine komplette zweite Systempartition verwenden.

Ein schneller Vergleich von A/B- und Non-A/B-Update:

Komponenten A/B-Updates Non-A/B-Updates
Recovery Partition verfügbar Nein Ja
OS Partition A und Partition B Nur Partition A
Downtime Minimal Hoch
Speicheranforderung Hoch Mittel
Bootloader Änderung Ja Ja
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

Nach oben ↑

%d Bloggern gefällt das: