Da saß ich dann mal eines Tages mit einem Pixel 3a und Android 10, welches ich am liebsten gerootet und mit XPosed versehen hätte, weil halt auch ein flexibles Android nicht ganz so flexibel ist, wenn es nicht gerootet ist.

Achtung: Sollte der Bootloader noch nicht entsperrt sein, wird das Telefon im 2. Schritt automatisch auf Werkseinstellungen zurückgesetzt!

Ich habe alles erfolgreich an einem Pixel 3a XL durchgeführt. Bei Telefonen anderer Hersteller kann zumindest der Vorgang des Bootloader-Entsperrens abweichen oder absolut unmöglich sein.
Auf jeden Fall wird für den hier dargestellten Weg (es gibt auch andere, auf die ich hier nicht eingehe) ein original Boot-Image des Handys benötigt. Im Falle von Nexus- und Pixel-Geräten einfach zu besorgen, im Falle von anderen Geräten müsst ihr selbst googeln.

Hier kann man noch ein bisschen was über die Grundvoraussetzungen für die durchgeführte Root-Methode erfahren.

Ich beschreibe hier den Weg für Systeme mit vorhandener A/B-Partition und system-as-root.
Eine extra Recovery wie TWRP wird für diesen Weg nicht benötigt.

Was machen wir hier genau?
Wir besorgen uns das original Android-Boot-Image und patchen es mit Hilfe eines Programmes.
Danach tauschen wir das Image auf dem Handy gegen das gepatchte aus, Installieren den Magisk-Manager und schon ist das Handy gerootet (IMHO auch ohne Magisk-Manager...aber praktisch ist der sowieso).

Root mit Magisk

1. Vorher herunterladen...

1. Benötigt wird für diesen Vorgang ein Computer mit ADB-Tools (Download für Mac).
Falls an einem PC durchgeführt, müssen auch noch passende Treiber installiert werden (sorry, Windows-User, die Links dazu müsst ihr euch wo anders besorgen...dies ist Apfel-Z! 😉 )
An sich brauchen wir nur die fastboot-Binary aus dem heruntergeladenen Verzeichnis.

Bild 1
Bild 2
2. Das passende Android-Stock-Boot-Image. Im Falle von Nexus- und Pixel-Geräten kann man sich dieses von Google herunterladen.
Zuerst müsst ihr allerdings wissen, welches genaue Android-Build derzeit installiert ist. Denn wir brauchen genau dasselbe Boot-Image!
Dafür die Benachrichtingsleiste 2x herunter ziehen, dann solltet ihr bei den Schnelleinstellungen links unten die Build-Version sehen (Bild 1). Ansonsten in den Einstellungen > Über das Telefon > Build-Nummer (ganz unten; Bild 2)
 
Nun auf dieser Seite das "Factory Image" für euer spezifisches Google-Gerät und euer spezifisches Build herunterladen.
Bild 3
Ich habe ein Pixel 3a XL und derzeit Build QP1A.191005.007 installiert , also lade ich mir in der Sektion "bonito" das Image für 10.0.0 (QP1A.191005.007, Oct 2019) herunter.
Bild 4
Dieses Image ist ziemlich groß, wir benötigen allerdings nur einen kleinen Teil davon: Nach erfolgreichem Download die ZIP-Datei entpacken und die darin befindliche ZIP-Datei image--.zip ebenfalls entpacken.
Von den ganzen 1.6GB, die wir heruntergeladen haben, benötigen wir nur das 67MB große boot.img (Bild 4)
Dieses an einen Ort legen, an den man via Kommandozeile gut ran kommt.
 

3. Sowohl Magisk wie auch Magisk Manager von der zugehörigen GitHub-Seite.
Ab Version 20 ist Magisk Android-10-kompatibel.

2. Entwickler-Menü freischalten

Um das Telefon rooten zu können, muss der Bootloader entsperrt sein, um diesen entsperren zu können, muss man eine Option im Entwickler-Menü setzen, welches standardmäßig ausgeblendet ist. Kompliziert!

Bild 1
Unter Einstellungen > Über das Telefon so lange auf den untersten Menüpunkt "Build-Nummer" tippen, bis die Toast-Meldung erscheint, dass man nun ein Entwickler ist.
 
Bild 2
Bild 3
Danach findet man unter Einstellungen > System > Erweitert einen weiteren Menüpunkt Entwickleroptionen (Bild 2)
Dort die "OEM-Entsperrung" zulassen (Bild 3) und die Warnung akzeptieren.

(Dieser Weg ist vermutlich nur bei Google-Geräten notwendig)

 
Bild 4
Wenn wir schon hier sind, auch gleich noch weiter unten die Automatischen System-Updates de-aktivieren (Bild 4). USB-Debugging aktiviert schadet auch nie.

Wenn wir das System mit Hilfe von Magisk gerootet haben, müssen wir Systemupdates zukünftig manuell durchführen.

 

3. Bootloader entsperren

Telefon ausschalten und im Fastboot-Modus starten, indem man die Lautstärke-runter-Taste zusammen mit der Einschalttaste festhält.

Es sollte ein überwiegend schwarzer Bildschirm erscheinen mit rotem Warndreieck und der Info, dass wir uns im Fastboot-Modus befinden.
Weiter unten steht vermutlich die Info "Device state: locked". Steht hier schon "unlocked", können wir die restlichen Schritte dieses Kapitels überspringen 😉

Am Computer ein Terminal-Fenster öffnen und in den Ordner der ADB-Tools/Platform-Tools springen, die wir vorhin heruntergeladen haben.
Außerdem wird es Zeit, das Handy über USB mit dem Computer zu verbinden.

Zuerst prüfen wir, ob der Computer das angeschlossene Handy findet.

./fastboot devices

Es sollte ein Gerät mit Device-ID aufgelistet werden. Ansonsten stimmt etwas nicht...fehlende Treiber, ungeeignetes USB-Kabel, zu alte ADB-Tools,...

Den Bootloader zu entsperren, geht auf einem Pixel-Gerät nun ganz einfach:

./fastboot flashing unlock

Nun erscheint eine Warnmeldung auf dem Handy.
Mit den Lautstärke-Tasten so lange nach oben/unten navigieren, bis darüber "Unlock the bootloader" erscheint. Mit der Einschalttaste bestätigen.

In diesem Schritt wird der gesamte Telefoninhalt gelöscht!
(System bleibt natürlich vorhanden, ist aber wieder jungfräulich).
Außerdem bekommen wir ab jetzt bei jedem Neustart eine hässliche Warnmeldung, dass der Bootloader entsperrt ist, was ja ganz unsicher ist. Achtung! Vorsicht!!1!

Das Handy startet nochmals neu in den Fastboot-Modus.
Mit einem Druck auf die Einschalttaste startet es dann wieder in den normalen Modus.

4. Magisk installieren und boot.img patchen

Handy und normalem System wieder neu gestartet und noch via USB mit dem Computer verbunden? Gut!

Wir übertragen nun die boot.img-Datei, die Magisk-ZIP-Datei und die Magisk Manager-apk auf den Telefonspeicher, indem wir die Daten-Verbindung via USB-Kabel nutzen.
Das Programm FileTransfer auf dem Computer könnte hierfür hilfreich sein, sollte man es noch nicht besitzen.

Über die Dateien-App installieren wir den Magisk Manager und öffnen jenen.

Wir sollten einen Bildschirm sehen, der anzeigt, dass der Magisk Manager up to date, aber Magisk nicht installiert ist. Auf "INSTALL" klicken und die Nachfrage bestätigen.

Im Folgenden wird die boot.img-Datei gepatcht:
"Select and patch file" auswählen und das zuvor übertragene boot.img auswählen.
Das Image wird gepatcht und unter dem Namen magisk_patched.img im Download-Ordner des Handys abgelegt.

5. boot.img flashen

Das Patchen passierte auf dem Handy, ins System flashen müssen wir es allerdings wieder vom Computer aus.

Die Datei magisk_patched.img aus dem Download-Ordner wieder zurück auf den Computer übertragen.

Ich empfehle, sowohl das original boot.img wie auch magisk_patched.img aufzubewahren. Ich konnte mit den beiden Dateien mein Handy schonmal aus einem Bootloop zurückholen, nachdem die Installation eines XPosed-Moduls fehlschlug!

Handy ausschalten, wieder im Fastboot-Modus starten (Lautstärke-runter und Einschalttaste zusammen fest halten) und – falls nicht mehr verbunden – wieder per USB mit dem Computer verbinden.

Ich gehe davon aus, dass wir uns im Terminal noch immer im Verzeichnis mit den ADB-/Platform-Tools befinden.

Findet der Computer das Handy?

./fastboot devices

Es sollte ein Gerät mit Device-ID aufgelistet werden. Ansonsten stimmt etwas nicht...fehlende Treiber, ungeeignetes USB-Kabel, zu alte ADB-Tools,...

Nun das gepatchte Boot-Image auf das Handy flashen:

./fastboot flash boot /pfad/zu/magisk_patched.img

(Auf dem Computer lokaler Pfad zur Datei magisk_patched.img, welche wir uns vorhin vom Handy rüberkopiert hatten)

Sollte dies erfolgreich verlaufen sein, Handy mit Hilfe des folgenden Kommandos neu starten, falls nicht...ohje!

./fastboot reboot

So, das Handy sollte hoffentlich erfolgreich starten und gerootet sein. Den Root-Status kann man im Magisk Manager einsehen.

Achtung: Bitte nochmals prüfen, ob in den Einstellungen > Entwickleroptionen die Automatischen System-Updates de-aktiviert sind!
Wenn wir das System mit Hilfe von Magisk gerootet haben, müssen wir Systemupdates zukünftig manuell durchführen.

Zwar wird ein automatisches OTA-Update sehr wahrscheinlich sowieso nicht funktionieren, wenn Android den Root entdeckt, aber sicher ist sicher...

Magisk und Root entfernen

Der Magisk Manager bietet einen Button "Deinstallieren" > "Komplette Deinstallation", um Magisk und Root zu entfernen.
Was da genau vor sich geht, ob nun dasselbe wie im vorhergehenden Kapitel oder noch ein bisschen mehr, weiß ich nicht. Wenn man "Restore Images" statt "Komplette Deinstallation" wählt, wird wahrscheinlich nur das original boot.img wieder hergestellt.

Falls man eine Custom Recovery wie etwa TWRP hat, kann man sich auf der GitHub-Seite von Magisk auch einen Uninstaller herunterladen, auf's Handy übertragen und dann in der Recovery flashen.

 

Android-System-Update

Durch den Root via Magisk funktionieren die automatischen OTA-Updates leider nicht mehr. Bzw. wollen wir dies überhaupt nicht, weil sonst der Root verloren geht und wir dann wieder anfangen müssen, das korrekte boot.img irgendwo in den Tiefen des Internets zu suchen.

Dank dem A/B-Partitions-System, welches zumindest die neueren Pixel-Geräte haben, ist das Update inklusive Erhaltung von Root auch ohne installierte Custom Recovery keine große Sache.
Bevor man fortfährt, sollte man allerdings ersteinmal sicher gehen, dass man überhaupt ein Gerät mit A/B-Partitions-System vorliegen hat. Siehe hier.

1. Original boot.img wieder herstellen und Systemupdate ausführen

Im Magisk Manager auf "Deinstallieren" klicken und "Images wiederherstellen" (nicht "Komplette Deinstallation"!) wählen.

Jetzt aber auf keinen Fall das Handy neustarten! ...sonst fangen wir komplett bei Null an.

Nun sollte sich das System-Update über Einstellungen > System > Erweitert > Systemupdate herunterladen und installieren lassen (ggf. auf "Erneut versuchen" tippen).

 
Und wieder: Auf keinen Fall das Handy neustarten!, auch wenn Android nach erfolgtem Download/Update darum bittet.
 

2. Magisk im System-Update installieren

Nun kommt der Vorteil von Androids A/B-Partitions-System ins Spiel:
Aktuell befinden wir uns auf der laufenden A-Partition; das eben installierte System-Update wurde auf der B-Partition installiert.
Wenn wir das Handy nun neu starten, wird die B-Partition zur aktiven Partition und wir haben sofort wieder ein lauffähiges System (im Gegensatz zu früher, wo erst beim Neustart die Installation angestoßen wurde und man 15-30 Minuten warten musste, bis das Handy endlich gestartet ist...ob das die Gigabyte an Speicher, die dadurch verloren gehen, rechtfertigt, ist eine andere Frage. Und warten muss man in unserem Fall nun trotzdem genau so lange, bis man die folgenden Schritte ausführen kann).

Durch das A/B-Partitions-Schema kann das System also im Hintergrund upgedatet werden und wir können nun auch einfach das upgedatete System auf der B-Partition patchen, bevor es nach einem Neustart aktiv wird.

Im Magisk Manager auf "Installieren" klicken (auch wenn da "...ist auf dem neusten Stand" steht) und bestätigen.
 
"Installiere in inaktiven Slot (Nach OTA)" auswählen und bestätigen. Das Handy wird nach dem Patchen nun wirklich neu gestartet und sollte mit einem upgedateten und weiterhin gerooteten Android aufwarten.
 

Evtl Backup

Ich speichere mir das originale (ungepatchte) System-boot.img sicherheitshalber lieber nochmals auf dem Computer ab. Sollte mit Magisk etwas schief gehen und ich in einer Bootloop landen, dann kann ich das Orignal boot.img drüberflashen.
Das ganz am Anfang heruntergeladene boot.img kann man nach dem Android-Update nicht mehr verwenden!

Das boot.img findet man mit einem FileExplorer im Stammververzeichnis > data ganz unten in einem der magisk-backup-Ordner (die leider ziemlich blöd benannt sind...man muss schon jeden Ordner öffnen und schauen, welches Änderungsdatum die boot.img-Datei hat).
Sollten sch hier mehrere Dateien befinden (nach mehreren Updates), lässt sich über das Dateidatum die neuste Datei herausfinden.

 

Probleme mit Magisk Modulen

Manchmal können Magisk-Module, die man installiert hat, Probleme verursachen. Da das Handy im schlimmsten Fall nicht mehr startet, wäre dann die Frage, wie man diese Module wieder de-installiert bekommt.

Folgende Tipps sind rein theoretisch, da ich bisher zum Glück noch keine solchen Probleme hatte.

Root/Magisk entfernen mit Standard-boot.img

Wie eingangs erwähnt, ließ sich bei mir das System mal nicht mehr hoch fahren, weil ich ein problematisches XPosed-Modul installiert hatte (XPosed wiederum funktioniert nur in Abhängigkeit zu einem Magisk-Modul).
Ich bekam das Handy relativ unkompliziert wieder zum Laufen, indem ich das Original-Boot-Image drauf geflash hatte (das boot.img aus der Factory-ZIP-Datei von Google), das Handy erfolgreich neu gestartet (nun nicht mehr gerootet) und die apk-Datei des XPosed-Moduls über die Einstellungen > Apps deinstalliert hatte.
Danach konnte ich wieder das gepatchte magisk_patched.img flashen und hatte den Status Quo zurück.

Achtung: Gab es zwischenzeitlich ein Android-Update, bitte das boot.img von der ersten Magisk-Installation nicht mehr verwenden, sonst ist das System komplett zerschossen.
Es lohnt sich, immer ein Backup des ungepatchten boot.img auf einem Computer zu backupen (siehe weiter oben "Android-System-Update " > "Evtl Backup").

Alle Magisk-Module via ADB deinstallieren

Sofern USB-Debugging aktiviert ist (siehe "Entwickler-Menü freischalten", Bild 4) gibt es ein adb-Kommando, um sämtliche Magisk-Module vom Fastboot-Modus aus zu deinstallieren (ab Magisk 19.4).
Dafür benötgen wir auf einem Computer die ADB-/Platform-Tools (siehe ganz oben "Vorher herunterladen..."), das Handy ist selbstverständlich per USB mit dem Computer verbunden und wird mit Lautstärke-runter-Taste zusammen mit der Einschalttaste eingeschaltet.

Danach auf dem Computer im Terminal zum Verzeichnis mit der adb-Binary wechseln und folgenden Befehl eingeben:

./adb wait-for-device shell magisk --remove-modules

Es werden alle Magisk-Module entfernt.

Module bei Speicherzugriff manuell entfernen

Hier kommt man, sofern das System nicht mehr startet, wahrscheinlich nur ran, wenn man eine Custom Recovery á la TWRP installiert hat.

Im Stammverzeichnis /data/adb/modules befinden sich alle installierten Magisk-Module. Um ein Modul hiervon zu deaktivieren, lege man eine leere Datei namens "disable" in das Modul-Verzeichnis, um ein Modul zu de-installieren, lege man eine leere Datei namens "remove" in das Modul-Verzeichnis.
Magisk sollte das jeweilige Modul beim nächsten Systemstart deaktivieren/de-installieren.

Die etwas unsaubere Methode wäre, den Modul-Ordner einfach zu löschen. Allerdings werden hier keine Uninstall-Skripte ausgeführt, die das Modul eventuell haben könnte.

Core Only Mode

Im Magisk Manager lässt sich ein "Magisk Core Only Mode" aktivieren, bei dem keine Module geladen werden und Magisk nur den Standard-Funktionsumfang "Root und MagiskHide" bietet.

Startet das System nicht und man hat immerhin Zugriff auf den Speicher, so lege man eine leere Datei namens .disable_magisk in das Verzeichnis /cache oder /data/cache, so wird der Core-Only-Modus beim nächsten Start automatisch aktiviert und man könnte nach einem erfolgreichen Booten die Module über den Magisk-Manager deinstallieren.

Artikel, die mir geholfen hatten

https://www.thecustomdroid.com/install-ota-update-rooted-android-device-guide/

https://www.thecustomdroid.com/root-google-pixel-3a-xl-guide/

https://www.didgeridoohan.com/magisk/Magisk