Wie sich A/B-Partitionen und nahtlose Updates auf die benutzerdefinierte Entwicklung auf XDA auswirken

click fraud protection

Möglicherweise haben Sie schon einmal von Seamless Updates gehört. Dabei handelt es sich um sogenannte „A/B-Partitionen“. Was ist das und wie wirkt es sich auf die benutzerdefinierte Entwicklung auf XDA aus?

Als Android Nougat veröffentlicht wurde, sorgte es für Gesprächsstoff allerlei neue Funktionen. Wir haben für den Anfang eine neu aktualisierte Benutzeroberfläche zusammen mit lang erwarteten Multiwindow-Funktionen und Vulkan Graphics API-Unterstützung erhalten. Aber eine unter der Haube verborgene Ergänzung ging den meisten Benutzern über den Kopf. Android Nougat führte „Seamless Updates“ auf Geräten ein, die A/B-Partitionen unterstützen. Die überwiegende Mehrheit der vorhandenen Android-Geräte (mit Ausnahme des neuen Google Pixel und Google Pixel XL) verfügten zu diesem Zeitpunkt nicht über A/B-Partitionen und konnten daher nicht von nahtlosen Updates profitieren. Die Grundvoraussetzung dieser Funktion besteht darin, dass das Gerät über einen zweiten Satz der System-, Boot-, Hersteller- und anderer wichtiger Partitionen verfügt, und wenn Sie einen OTA erhalten Das Update erfolgt im Hintergrund, während der zweite Satz Partitionen gepatcht wird, sodass Sie nahtlos mit einem aktualisierten Software-Build neu starten können. Wenn ein Update fehlschlägt, werden Sie auf einen funktionierenden Build zurückgesetzt, was bedeutet, dass Unternehmen weniger Probleme haben und Verbraucher besser geschützt sind.

Im Gegensatz zu Project Treble ist die Unterstützung nahtloser Updates für kein neues Android-Gerät eine Voraussetzung. Daher unterstützt die überwiegende Mehrheit der neuen Android-Geräte diese Funktion nicht. Wir haben bisher eine Liste aller unterstützten Geräte geführt, und es ist klar, dass diese Funktion nicht allgemein unterstützt wird. Das ist schade, denn A/B-Partitionen bringen sowohl für normale Benutzer als auch für Power-User viele Vorteile. Allerdings hat die Funktion in der Enthusiasten-Community einen etwas schlechten Ruf, da sie den Eindruck erweckt, dass sie die Android-Entwicklung und das Flashen benutzerdefinierter Modifikationen erschwert. Da dies jedoch nicht der Fall ist, wollten wir nahtlose Updates entmystifizieren und erklären, wie sich A/B-Partitionen auf die benutzerdefinierte Entwicklung auf XDA auswirken.

Vielen Dank an XDA Senior Member npjohnson, A Mitwirkender in LineageOS und Betreuer der Motorola Moto Z2 Force, der uns beim Faktencheck dieses Artikels geholfen hat.


Partitionen auf einem Android-Gerät

Eine Partition ist einfach ein diskreter Abschnitt im internen Speicher des Telefons, in dem Daten gespeichert werden. Welche Art von Daten auf jeder Partition gespeichert werden, hängt von der Hardware, dem Betriebssystem und vielen anderen Faktoren ab. Der Bootloader wird einen haben, das System (Android OS) wird einen haben, die Benutzerdaten werden einen haben... und so weiter und so fort. Wenn Leute über „/system“ und „/cache“ sprechen, beziehen sie sich auf die Vornamen dieser Partitionen. Das OnePlus 6 zum Beispiel hat 72 Partitionen. Das klingt nach viel, aber das OnePlus 6 ist eines der Geräte, das nahtlose Updates unterstützt, was bedeutet, dass viele dieser Partitionen einfach Duplikate voneinander sind.

Teilweise Ausgabe der Partitionen auf dem OnePlus 6. Einige A/B-Partitionen sind zu Demonstrationszwecken unterstrichen.

Es gibt viele Partitionen auf einem Gerät, um die Sie sich als Benutzer nie kümmern müssen. Viele dieser Partitionen werden beim Flashen von benutzerdefinierten ROMs, Kerneln, Wiederherstellungen oder Modifikationen wie Magisk oder Xposed nie geändert. Viele dieser Partitionen bleiben entweder für unsere Zwecke ungenutzt oder sind zu gefährlich, um sie zu berühren, es sei denn, Sie wissen, was Sie tun (XLOADER und OEMINFO auf Huawei/Honor Geräte fallen mir ein.) Für die überwiegende Mehrheit der Android-Benutzer sind die Partitionen, mit denen wir uns hauptsächlich befassen, System, Boot, Wiederherstellung, Benutzerdaten und neuerdings Hersteller und vbmeta. Hier ist eine kurze Erklärung des Zwecks jeder Partition:

  • System – enthält das Android-Betriebssystem, Systembibliotheken, System-Apps und andere Systemmedien wie Bootanimationen, Hintergrundbilder, Klingeltöne usw.
  • boot – enthält den Kernel, die Ramdisk und auf A/B-Geräten auch die Wiederherstellung
  • Wiederherstellung – enthält die Wiederherstellung, wobei TWRP am häufigsten auf Nur-A-Geräten geflasht wird (A/B-Geräte haben keine dedizierte Wiederherstellungspartition).
  • Benutzerdaten – enthält alle Ihre App-, System- und internen Speicherdaten
  • Anbieter – enthält plattform- und gerätespezifische HALs, die Dateien, die das Android-Betriebssystem für die Kommunikation mit der zugrunde liegenden Hardware benötigt
  • vbmeta – die Partition für Android Verified Boot 2.0, die die Integrität des Startvorgangs überprüft

Geräte-OEMs können ihre Partitionsschemata ändern, um das gewünschte Layout zu verwenden. Huawei teilt beispielsweise die Boot-Partition in ramdisk_recovery und kernel auf. Es gibt auch viele zusätzliche Partitionen, die andere Systemanwendungen wie „cust“, „product“, „oem“ und „while“ enthalten können Diese können sicher geändert werden. Dies wird im Allgemeinen nicht empfohlen, wenn Sie sich die Rückkehr zum Lagerbestand erleichtern möchten. Wo spielen A/B-Partitionen eine Rolle?


Das A/B-Partitionsschema

So funktionieren Updates auf Geräten mit nahtlosen Updates

Das sehr einfache Bild, das ich unten erstellt habe, zeigt, wie ein Update auf einem Gerät mit A/B-Partitionsunterstützung durchgeführt wird. Die abgebildete Partition ist die Systempartition, obwohl auch andere Partitionen wie Boot und Vendor mit einem beliebigen OTA-Update eines OEM aktualisiert werden können. Dieser Aktualisierungsvorgang erfolgt nicht nur bei größeren Android-Versionsaktualisierungen, sondern auch bei Sicherheitspatch-Aktualisierungen.

  1. Wir beginnen mit zwei Systempartitionen, system_a und system_b, beide auf derselben Android-Version.
  2. Vorausgesetzt, dass system_a aktiv ist, patcht das OTA-Update system_b, die inaktive Partition, im Hintergrund.
  3. system_a wird auf inaktiv gesetzt und system_b wird dann aktiv, sobald der Benutzer neu startet.
  4. Die jetzt inaktive Partition system_a wird aktualisiert, wenn das nächste OTA-Update veröffentlicht wird.

Welche Vorteile bietet dieser Update-Prozess?

  1. Wenn ein Update fehlschlägt, wird das Gerät auf den funktionierenden Build auf dem anderen Steckplatz zurückgesetzt.
  2. Ihre Daten bleiben vollkommen intakt, auch wenn das Update unterbrochen wird, da es nur eine Partition (Benutzerdaten) gibt, die Ihre Daten speichert.
  3. Update-Streaming: Wenn Ihre Datenpartition voll ist, kann das Update heruntergeladen und an den inaktiven Steckplatz gestreamt werden. Das ist eine ziemlich nette Funktion und bedeutet, dass Sie keinen temporären Speicher für Ihre Updates verschwenden müssen. Aus diesem Grund gibt es auf A/B-Geräten keine Cache-Partition, da diese nicht mehr benötigt werden.

Welche Auswirkungen hat das A/B-Partitionierungsschema auf den Speicher eines Geräts?

Bedeutet die Tatsache, dass nahtlose Updates zu einer Menge duplizierter Partitionen führen, dass Sie eine Menge Speicherplatz verlieren? Gar nicht. Google sagt, dass Geräte mit nahtloser Update-Unterstützung dank der Entfernung der /cache- und /recovery-Partitionen nur etwa ein paar hundert Megabyte ausfallen dürften. Durch das Entfernen beider Partitionen werden die Kosten für das Hinzufügen eines zweiten Satzes von Partitionen ausgeglichen. Laut Google ist das A/B-Systembild des Pixels halb so groß wie das Nur-A-Systembild. Der größte Teil der zusätzlichen Speichernutzung entsteht tatsächlich durch das Hinzufügen einer zweiten Herstellerpartition. Das macht Sinn, da die Herstellerpartition alle proprietären Binärdateien enthält, die von OEMs verwendet werden (Teil von Project Treble), sodass erwartet wird, dass sie ziemlich viel Platz einnimmt. Während Google die A/B-Partitionierung auf Geräten mit 4 GB Speicher nicht empfiehlt (da dies fast 10 % des gesamten verfügbaren Speichers ausmacht), wird sie auf Geräten mit 8 GB und mehr empfohlen.

Hier ist eine Aufschlüsselung des auf einem Google Pixel genutzten Speicherplatzes mit und ohne A/B-Partitionen.

Partitionsgrößen

A/B

Nur A

Bootloader

50 MB*2

50 MB

Stiefel

32 MB*2

32 MB

Erholung

32 MB

Zwischenspeicher

100 MB

Radio

70 MB*2

70 MB

Verkäufer

300 MB*2

300 MB

System

2048 MB*2

4096 MB

Gesamt

5000 MB

4680 MB

Was ist mit der Wiederherstellungspartition passiert?

Der zugrunde liegende Linux-Kernel auf Android-Geräten ermöglicht es Android, die Hardware auf einem Smartphone zu erkennen und richtig zu nutzen. Auf A-only-Android-Geräten verfügen Sie im Allgemeinen über zwei Versionen des Kernels: Eine ist in der Wiederherstellungspartition gepackt, während sich die andere in der Boot-Partition befindet. Auf A/B-Geräten, die nahtlose Updates unterstützen, erfolgt die Wiederherstellung jetzt zusammen mit dem Kernel im Boot-Image. Die Hauptfunktion der Wiederherstellung bestand darin, Updates zu installieren, da dies jedoch vom System selbst erledigt wird (update_engine) Während Android hochgefahren wird, wird die dedizierte Wiederherstellungspartition nicht mehr benötigt.

Um eine benutzerdefinierte Wiederherstellung auf A/B-Geräten zu installieren, müssen wir daher die Startpartition ändern und die Standardwiederherstellung durch unsere eigene ersetzen. Aus diesem Grund müssen Sie zur Installation von TWRP zunächst einen Fastboot-Befehl verwenden, um ein benutzerdefiniertes Boot-Image zu starten Dann Flashen Sie das TWRP-Installationsskript, da Fastboot keine Partitionen patchen kann, sondern nur vollständig über sie flashen kann. Technisch gesehen könnten Sie Ihr vorhandenes Boot-Image mit TWRP vorab patchen und es dann per Fastboot flashen, aber das ist mehr Aufwand als es wert ist. Das TWRP-Installationsskript patcht sowohl die boot_a- als auch die boot_b-Partitionen, um TWRP zu installieren.

Interessante Tatsache: Die Android update_engine, die nahtlose Updates verwaltet, wurde im Grunde direkt von Chrome OS kopiert. Erst vor kurzem Es wurden Zeichenfolgen mit „Chrome OS“ aus dem Protokoll von update_engine entfernt, um Verwirrung für jeden zu vermeiden, der zufällig Logcat überprüft.

Unterstützt mein Android-Smartphone A/B-Partitionen für nahtlose Updates?

Während wir Führen Sie eine Liste aller Geräte die es unterstützen, Sie können dies auch ganz einfach selbst überprüfen.


Wie wirken sich nahtlose Updates auf die benutzerdefinierte Entwicklung aus?

Benutzerwahrnehmung von A/B-Partitionen

Nahtlose Updates werden von vielen Benutzern als Hindernis für die Entwicklung individueller Software angesehen, sind für Entwickler jedoch tatsächlich ein Segen. Der Grund dafür, dass A/B-Geräten eine schlechte Entwicklungsunterstützung zugeschrieben wird, liegt im Preis der ersten A/B-Geräte. Schließlich gehörten die Google Pixel-Geräte zu den ersten, die nahtlose Updates unterstützten, und im Vergleich zu den Nexus-Smartphones von damals waren sie relativ teuer. Darüber hinaus hat Google dank der unzähligen Verbesserungen, die Google am Android-Betriebssystem vorgenommen hat, benutzerdefinierte ROMs erstellt und Trotz der auf Google-Geräten weniger beliebten Modifikationen haben sich die Google-Pixel-Smartphones in unseren Foren nicht annähernd so gut durchgesetzt wie das Nexus Smartphones. Eine Kombination externer Faktoren führte zu einem Rückgang der benutzerdefinierten Entwicklung auf den Google Pixel-Smartphones, obwohl die meisten Benutzer stattdessen die A/B-Partitionsunterstützung dafür verantwortlich machten. Vergleichen Sie die Verfügbarkeit benutzerdefinierter Entwicklung auf Geräten wie dem Google Pixel mit Geräten wie dem Xiaomi Mi A1 in unseren Foren.

Darüber hinaus führte mangelndes Verständnis darüber, wie A/B-Partitionen die Art und Weise veränderten, wie Benutzer benutzerdefinierte ROMs, Kernel, Wiederherstellungen und Modifikationen installieren müssen, dazu, dass die Unterstützung von A/B-Partitionen unbeliebt war. Da sich die Wiederherstellung nun im Boot-Image befindet, kann das Flashen von Änderungen in der falschen Reihenfolge wie Magisk oder Xposed zu Konflikten führen und zu einem Bootloop führen. Die Reihenfolge, in der Sie diese Mods flashen, kann wichtig sein. Bei benutzerdefinierten ROMs sollten Sie sich jedoch keine Gedanken darüber machen müssen, in welchen Steckplatz Sie flashen. Entgegen der landläufigen Meinung flasht das Installationsskript für die meisten benutzerdefinierten ROMs nicht auf beide Steckplätze. Darüber müssen Sie sich in den meisten Fällen keine Sorgen machen, da Sie die Slots nicht manuell austauschen müssen.

Wie Entwickler A/B-Partitionen sehen

Beim Erstellen eines ROM können Entwickler beide Partitionen nutzen, um separate Builds zu testen. Wenn eines nicht funktioniert, können sie einfach zur Arbeitspartition zurückkehren und ihr ROM neu erstellen. Entwickler können auch Regressionen testen, indem sie einfach ein Update installieren, die aktive Partition wechseln und die beiden vergleichen, ohne Daten löschen zu müssen. So sieht das LineageOS-Team die A/B-Partitionsunterstützung:

„Viele in der Android-Community haben A/B als ‚schwer zu unterstützen‘ und ‚nicht entwicklerfreundlich‘ bezeichnet, obwohl dies bei richtiger Implementierung tatsächlich der Fall ist.“ einfacher zu unterstützen und genauso entwicklerfreundlich.“ – jrizzoli, LineageOS-Änderungsprotokoll 19

Die anfängliche Schwierigkeit bei der A/B-Unterstützung für Entwickler bestand darin, ihre vorhandenen Tools so zu modifizieren, dass sie diese Geräte unterstützen. Der Entwickler von Magisk, topjohnwu, fügte ein Jahr nach seiner Veröffentlichung die offizielle Unterstützung für Google Pixel hinzu veröffentlicht – nicht weil es schwierig war, sondern weil er ein Jahr brauchte, um das Gerät tatsächlich zu bekommen daran arbeiten. TWRP-Unterstützung kam ziemlich schnell auf A/B-Geräten, nachdem der Hauptentwickler Dees_Troy einen Versuch unternommen hatte. LineageOS 15.1 unterstützt jetzt A/B-Geräte, nachdem Freiwillige Zeit gefunden hatten, ihr addon.d-Skript zu reparieren.

So aktualisieren Sie ein A/B-Gerät, das über eine benutzerdefinierte Wiederherstellung, einen Kernel oder andere Mods verfügt

Benutzerdefinierte ROMs

Das Flashen von Updates auf einem Gerät mit einem benutzerdefinierten ROM bedeutet, dass Sie auch vorsichtig sein müssen, welchen Steckplatz Sie flashen, oder? Nicht ganz. TWRP übernimmt tatsächlich einen Großteil davon für Sie und verwendet standardmäßig den inaktiven Steckplatz zum Flashen eines benutzerdefinierten ROM. Wenn Ihr aktiver Steckplatz A ist und Sie ein benutzerdefiniertes ROM flashen, flashen Sie tatsächlich auf Steckplatz B. Beim Neustart ist der aktive Steckplatz jetzt B. Entwickler können das Installationsskript ändern und auf beide Steckplätze flashen, um es für den Endbenutzer einfacher zu machen, obwohl die meisten benutzerdefinierten ROM-Installationsskripte derzeit nur auf einen einzelnen Steckplatz flashen. Schließlich können benutzerdefinierte ROMs einen A/B-Updater in ihrem ROM implementieren, sodass Benutzer sich nicht einmal damit herumschlagen müssen Manuelles Flashen von Updates – das neueste LineageOS 15.1 enthält ein Lineage Updater-Tool und XDA Senior Member USA-RedDragon machte ein generischer A/B-Updater die andere Entwickler nutzen können.

Standard-ROMs

Aber ist es nicht problematisch, wenn auf Ihrem Gerät das Standard-ROM mit verschiedenen Modifikationen läuft und Sie ein Update installieren möchten, ohne alle diese Mods zu verlieren? Dies kann der Fall sein, wenn Sie die richtigen Schritte zur Installation eines Updates nicht kennen. Auf dem OnePlus 6 können Sie beispielsweise keinen inkrementellen OTA auf Ihrem modifizierten Gerät flashen, da der inkrementelle OTA versuchen wird, Ihr modifiziertes Boot-Image zu patchen. Daher wird es wahrscheinlich zu einem Bootloop kommen, weshalb Sie das vollständige ROM-Update flashen müssen, um Ihr geändertes Boot-Image vollständig zu überschreiben. Hier sind die allgemeinen Schritte, die Sie ausführen müssen, um ein OxygenOS-Update auf Ihrem OnePlus 6 zu installieren und dabei weiterhin TWRP, Magisk und optional einen benutzerdefinierten Kernel beizubehalten.

  1. Habe die neueste Version heruntergeladen volles ROM Reißverschluss
  2. Flashen Sie die vollständige ROM-Zip-Datei bei der Wiederherstellung
  3. (Optional) Benutzerdefinierter Flash-Kernel
  4. Flash TWRP-Installationsprogramm
  5. Starten Sie direkt neu und kehren Sie zur Wiederherstellung zurück
  6. Flash-Magisk

Auf den Google Pixel-Geräten ist dies möglich Flashen Sie das Werksabbild, ohne Daten zu löschen, dann TWRP booten, TWRP über das Installationsskript installieren, dann Magisk installieren.

Extrahieren eines Updates zum Flashen einzelner Partitionsimages

Die Aktualisierungsdateien für viele A/B-Geräte unterscheiden sich geringfügig von denen für reine A-Geräte. Sie sind nicht mehr nur eine ZIP-Datei mit vielen Bildern (mit Ausnahme der Werksbilder von Google und Razer), sondern liegen in Form einer payload.bin-Datei vor. Sie können diese Datei extrahieren und jedes Teil manuell flashen, hierfür ist jedoch ein spezielles Tool erforderlich. Wenn Sie erfahren möchten, wie das auf dem OnePlus 6, dem Xiaomi Mi A1 und vielen anderen A/B-Geräten funktioniert, lesen Sie weiter.

Einrichten zum Extrahieren von payload.bin

  1. Stellen Sie sicher, dass Sie Python 3.6 haben Eingerichtet.
  2. Laden Sie payload_dumper.py und update_metadata_pb2.py herunter Hier.
  3. Extrahieren Sie Ihre OTA-ZIP-Datei und platzieren Sie payload.bin im selben Ordner wie diese Dateien.
  4. Öffnen Sie je nach Betriebssystem PowerShell, Eingabeaufforderung oder Terminal.
  5. Geben Sie den folgenden Befehl ein: python -m pip install protobuf
  6. Wenn das erledigt ist, geben Sie diesen Befehl ein: python payload_dumper.py payload.bin
  7. Dadurch wird mit dem Extrahieren der Bilder in der Datei „payload.bin“ in den aktuellen Ordner begonnen, in dem Sie sich befinden.

Wenn Sie möchten, können Sie jetzt jedes dieser Images einzeln per Fastboot flashen. Der nächste Abschnitt zeigt Ihnen, wie das geht.

Verwenden von Fastboot zum Flashen von Images auf einem Gerät, das nahtlose Updates unterstützt

Es gibt eine Reihe von Befehlen, die ausschließlich für A/B-Partitionssystemgeräte gelten. Sie können Ihren aktiven Steckplatz und Flash auf bestimmte Steckplätze ändern. Wenn Sie ein Projekt Treble-kompatibles Gerät und möchte lernen, wie es geht generische Systembilder flashen, sollten Sie mit diesen Befehlen vertraut sein. Schauen Sie sich die Tabelle unten an.

Fastboot-Befehle

Befehl

Holen Sie sich den aktuellen aktiven Slot

fastboot getvar all | grep „current-slot“Wenn Sie einen Windows-PC verwenden, funktioniert der Befehl „grep“ nicht.

Anderen Steckplatz als aktiv festlegen

fastboot set_active andere

Den angegebenen Steckplatz als aktiv festlegen

fastboot set_active $ORfastboot --set-active=_$slotwobei $ entweder a oder b ist

Flash-Image auf die angegebene Partition im aktuellen Steckplatz

Fastboot-Flash-Partition partition.img

Flash-Image auf die angegebene Partition im angegebenen Steckplatz

Fastboot Flash-Partition_a Partition.imgFastboot Flash-Partition_b Partition.img

(Hinweis: Auf A/B-Geräten können Sie entweder eine Partition in einem bestimmten Steckplatz angeben, auf die geflasht werden soll, oder Sie können das Steckplatzsuffix weglassen und es wird auf den aktuell aktiven Steckplatz geflasht. Beispielsweise können Sie „partition“ im Flash-Befehl durch „system“, „system_a“ oder „system_b“ ersetzen.)

Auf Windows-PCs können Sie grep nicht verwenden, also entfernen Sie einfach diesen Teil und suchen Sie nach „current-slot“.

Ein Wort zu Project Treble und nahtlosen Updates

Ein häufiges Missverständnis besteht darin, dass die Unterstützung von Project Treble und die Unterstützung von A/B-Partitionen miteinander zusammenhängen, aber das ist nicht wirklich der Fall. Das eine zu haben bedeutet nicht das andere. Das Motorola Moto Z2 Force verwendet ein A/B-Partitionierungsschema, unterstützt jedoch kein Treble. Andererseits unterstützt das Honor 9 Lite Project Treble, ist aber ein A-only-Gerät.

Das Honor 9 Lite unterstützt Project Treble, jedoch keine nahtlosen Updates

Häufig gestellte Fragen/Zusammenfassung

  • Welche Vorteile bietet die A/B-Partitionierung?
    • Mit der A/B-Partitionierung können Sie Ihr Android-Smartphone während der Nutzung aktualisieren und einfach einen Neustart durchführen, wenn Sie bereit sind, die neue Version zu starten. Es dient auch als Schutz vor Bricks – wenn das Update fehlschlägt, kehren Sie zur funktionierenden Installation zurück.
  • Behindert die A/B-Partitionierung die Entwicklung?
    • Obwohl die Anpassung der Entwickler etwas Zeit in Anspruch nahm, lautet die Antwort so ziemlich nein. Tatsächlich kann es Entwicklern helfen, da sie ihr benutzerdefiniertes ROM mit der alten Version und einer neuen Testversion dual booten können, um auf Regressionen zu prüfen.
  • Wie wirken sich A/B-Partitionen auf Mods wie benutzerdefinierte Kernel, Magisk oder Xposed aus?
    • Bei der Installation muss man vorsichtig sein, derzeit gibt es aber keine Probleme. Magisk unterstützt offiziell Geräte mit nahtlosen Updates, und solange Sie die Dinge in der richtigen Reihenfolge flashen, sollten Sie keine Probleme haben. Stellen Sie sicher, dass Sie den benutzerdefinierten Kernel flashen, bevor Sie Ihre anderen Mods flashen, und schon kann es losgehen.
  • Kann ich auf jeder Partition zwei verschiedene ROMs flashen und dual booten?
    • Theoretisch ja. Aufgrund der gemeinsam genutzten Datenpartition treten jedoch Probleme auf, daher wird dies nicht empfohlen.
  • Bedeutet ein A/B-Partitionsschema, dass ich weniger Speicherplatz habe?
    • Nein! Laut Google opfern Geräte, die nahtlose Updates unterstützen, nur ein paar Hundert Megabyte Speicher, um dies zu unterstützen. Die Vorteile überwiegen diese Kosten.
  • Mein Gerät unterstützt A/B-Partitionen. Bedeutet das, dass ich ein Project Treble Generic System Image verwenden kann?
    • Nicht unbedingt. Project Treble und A/B-Unterstützung haben nichts miteinander zu tun. Das Motorola Moto Z2 Force unterstützt Project Treble nicht, es unterstützt jedoch das A/B-Partitionsschema.
  • Mein Gerät unterstützt Project Treble. Bedeutet das, dass ich ein A/B-Partitionsschema habe?
    • Dies ist nicht immer der Fall. Das Honor 9 Lite ist ein Paradebeispiel, da es Project Treble unterstützt, aber kein A/B-Partitionsschema hat.
  • Warum muss ich TWRP zuerst mit Fastboot booten und dann flashen?
    • Dies liegt an der Funktionsweise von Fastboot und an der Tatsache, dass die Wiederherstellungspartition nicht mehr vorhanden ist. Die Wiederherstellung wird innerhalb der Boot-Partition platziert, daher müssen wir sowohl boot_a als auch boot_b ändern. Sie können eine Partition im Fastboot nicht patchen, sondern nur darüber flashen. Theoretisch könnten Sie ein vorab gepatchtes Boot-Image erstellen und dieses dann stattdessen flashen.
  • Gibt es Gefahren bei A/B-Partitionen? Wie wirkt sich der Rollback-Schutz aus?
    • Google hat sein Bestes gegeben, damit dies kein Problem darstellt, aber im Fall des Motorola Moto Z2 Force, es gab bekannte Fälle, in denen ein Gerät nach dem Upgrade auf Android den älteren Slot reaktivierte Oreo. Dies bedeutete, dass der Rollback-Schutz einsetzte und Gerätebesitzer ihr Smartphone nur mit der EDL-Wiederherstellung retten konnten. Laut Google greift der Rollback-Schutz jedoch erst nach dem ersten Start, sodass der Steckplatz nach einem Update voll funktionsfähig sein muss, bevor ein Downgrade nicht mehr möglich ist.