Welches Root für LineageOS – SuperSU, su-Addon oder Magisk

Magisk Logo

LineageOS unterstützt offiziell 190 verschiedene Geräte (dazu kommen viele weitere mit inoffizieller Unterstützung) und ist aktuell auf über 1,8 Millionen Geräten installiert. Durch die zunehmende Popularität gibt es auch immer mehr Fragen bezüglich Root-Zugriff. Werfen wir also einen Blick auf die verfügbaren Optionen.

Früher war SuperSU eine gute Wahl, wenn es um Root-Zugriff ging. Mittlerweile aber nicht mehr. Vor rund einem Jahr hat Chainfire, der Entwickler von SuperSU, bekannt gegeben, dass er sich zurückziehen und SuperSU an die Firma CCMT übergeben wird. Seitdem ist quasi nichts passiert und SuperSU steht immer noch in Version 2.82 zum Download. SuperSU gehört also einer ominösen Firma und die Entwicklung ist faktisch eingestellt. Damit ist klar, dass SuperSU heutzutage nicht mehr verwendet werden sollte.

Als Alternative bietet LineageOS ein eigenes su-Addon zum Download an. Diese Root-Variante wird unter LineageOS offiziell supported und kann schnell und einfach per TWRP geflasht werden. In der Regel ist das su-Addon aber nur zweite Wahl, da Magisk viele Vorteile bietet.

Die derzeit beste Methode für einen Root-Zugriff ist Magisk. Diese Android-Modifikation bietet viele Vorteile gegenüber anderen Methoden und kann mit zusätzlichen Features aufwarten. Zunächst handelt es sich bei Magisk um eine systemless Root-Methode, d.h. es werden keine Veränderungen an der /system-Partition durchgeführt. Stattdessen integriert sich Magisk in das Boot-Image. Diese Vorgehensweise hat unter anderem folgende Vorteile:

  • Alle Änderungen können ohne Probleme rückgängig gemacht werden (“Unroot”).
  • SafetyNet Integritätstest wird bestanden.
  • OTA-Updates bei Stock-ROMs trotz Root möglich.

Darüber hinaus kann der Root-Zugriff vor bestimmten Apps versteckt werden, die unter Root nicht funktionieren (Google Pay, Banking-Apps, usw.). Außerdem bietet die Magisk Manager App eine Modulverwaltung an, mit der sich bestimmte Erweiterungen oder Apps ganz einfach nachinstallieren lassen. Ich nutze diese Funktion z.B. für YouTube Vanced, welches unter anderem Werbung in Videos entfernt und Videos / Musik auch im Hintergrund abspielen kann. Ebenso erwähnenswert: Magisk ist zu 100% Open Source und wird aktiv weiterentwickelt, es bleiben also kaum Wünsche offen.

Weitere Infos zu Magisk findet ihr im entsprechenden xda-Thread, der Download ist bei Github gehostet.

Magisk nach LineageOS OTA-Update automatisch flashen

Bei LineageOS OTA-Updates wird das Boot-Image erneuert und Magisk damit entfernt. Nach einem OTA-Update muss Magisk also per Hand neu geflasht werden. Wem das zu umständlich ist, kann dies auch automatisch erledigen lassen. Hierzu muss das “99-flashafterupdate.sh addon.d script” aus dem xda-Thread unter folgendem Pfad abgelegt werden:

/system/addon.d/

Achtet darauf, dass die Datei ausführbar ist (CHMOD 755). Der Inhalt sieht folgendermaßen aus:

#!/sbin/sh
#
# /system/addon.d/99-flashafterupdate.sh
# For ROMs that don't have "Flash After Update" support built-in.
#
# During an upgrade, this script will flash zips in /sdcard/FlashAfterUpdate
# after all other addon.d backup/restore actions have completed.
#
# Create a file named "verbose" in the above directory to see all output from flashed zips.
# Create a file named "silent" in the above directory to hide all script output.
#
# osm0sis @ xda-developers

. /tmp/backuptool.functions

# define working paths
sdzipdir=/sdcard/FlashAfterUpdate;
tmpzipdir=/tmp/flashafterupd;

case "$1" in
  backup)
    # Stub
  ;;
  restore)
    # Stub
  ;;
  pre-backup)
    # Stub
  ;;
  post-backup)
    # Stub
  ;;
  pre-restore)
    # Stub
  ;;
  post-restore)
    # set up sdcard directory if it does not yet exist
    if [ ! -d "$sdzipdir" ]; then
      mkdir "$sdzipdir";
      chown 1023:1023 "$sdzipdir";
      chmod 775 "$sdzipdir";
      chcon u:object_r:media_rw_data_file:s0 "$sdzipdir";
    fi;

    # determine parent output fd
    FD=1;
    if [ ! -f "$sdzipdir/silent" ]; then
      OUTFD=`ps | grep -v "grep" | grep -oE "update(.*)" | cut -d" " -f3`;
      test -f "$sdzipdir/verbose" && FD=$OUTFD;
      ui_print() { until [ ! "$1" ]; do echo -e "ui_print $1\nui_print" >> /proc/self/fd/$OUTFD; shift; done; }
    else
      ui_print() { echo "$1"; }
    fi;

    # wait out any post-addon.d zip actions (flashing boot.img, etc.)
    while sleep 6; do
      # wait out Magisk's addon.d script which also uses this method
      while [ -d /sbin_tmp ]; do
        sleep 1;
      done;
      ui_print " " "FlashAfterUpdate by osm0sis @ xda-developers";
      if [ ! "$(ls "$sdzipdir" | grep -vE 'verbose|silent')" ]; then
        ui_print " " "No files found in '$sdzipdir' to flash!";
        exit;
      fi;
      # read zips from sdcard directory and unpack then run update-binary/script
      metadir=META-INF/com/google/android;
      for i in "$sdzipdir"/*; do
        case "$i" in *silent|*verbose) continue;; esac;
        ui_print " " "--- Flashing '$i'...";
        mkdir -p "$tmpzipdir";
        unzip "$i" -d "$tmpzipdir" "$metadir/*";
        chmod 755 "$tmpzipdir/$metadir/update-binary";
        # update-binary   
        "$tmpzipdir/$metadir/update-binary" 3 $FD "$i";
        ret=$?;
        test $ret != 0 && ui_print "...Failed! Exit code: $ret" || ui_print "...Succeeded!";
        rm -rf "$tmpzipdir";
      done;
      ui_print " ";
      test -f "$sdzipdir/silent" || sleep 10;
      exit;
    done&
  ;;
esac;

Anschließend müsst ihr unter “/sdcard/FlashAfterUpdate” nur noch eure Magisk-Version platzieren. Nach einem OTA-Update wird Magisk nun automatisch installiert.

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter und Facebook folgt.

9 Antworten

  1. blu.italia sagt:

    Hallo Tobi,

    seit Magisk 17.0/17.1 übersteht dieser auch ein LineageOS OTA-Update:

    – [General] Bring back install to inactive slot for OTAs on A/B devices

    Gruß
    blu.italia

    • Tobi sagt:

      Nein diese Methode funktioniert nur bei bestimmten A/B-Geräten. Bei Xiaomi sind dies soweit ich weiß derzeit nur Xiaomi A1 und A2.

  2. tux. sagt:

    Ein Script, das zu einem Großteil nichts macht, weil die “cases” leer sind. Toll, danke, wertvolle Ergänzung. Wo hastn das rauskopiert? Weil: direkt verstanden hastes nicht, sonst hätteste es angepasst.

    • Tobi sagt:

      Ist eine ältere Version vom “99-flashafterupdate.sh addon.d script” aus dem xda-Thread.

      Aber hast recht, es funktioniert nicht. Nich unbedingt weil das Skript falsch ist… ich werde den Artikel anpassen.

  3. Martin sagt:

    Muss – oder sollte man – zunächst das su-Addon vom LineageOS mit dem su removal entfernen, wenn man auf Magisk wechseln möchte?

  4. Leo sagt:

    Hi Tobi
    Wie sieht es aus im 2021? lineage os supportet kein eigenes su addon mehr..? magisk ist wohl auch keine alternative mehr..? wie soll ich mein redmi note 7 rooten.. ?
    lg Leo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert