Da ich mit meinem Galaxy S2 einige Erfahrungen mit dem XDA-Forum gesammelt habe, werde die Images im XDA-Forum jetzt auch mit anderen Geräten verwenden.

Wer noch keine Erfahrung mit einem Custom-ROM (Nicht-Standard-Android) hat, dem empfehle ich, nur in die Liste der Geräte zu schauen, die direkt von LineageOS unterstützt werden. Der große Vorteil sind die automatischen Updates, die über die Update-App von LineageOS geliefert werden. Mit den Images aus dem Forum ist das alles Handarbeit (inkl. regelmäßig ins Forum schauen) und die Images haben zeitweise (noch) nicht alle Komponenten. Wen das aber nicht abschreckt, der solle es gern probieren. Wenn Ihr unsicher seid, schreibt mir einfach und ich helfe Euch, so gut es mir möglich ist, oder fragt im Matrix-Raum #android-de:matrix.org.

Für alte Geräte, die mit einem Android kleiner 8 begonnen haben, wird es von LineageOS keine Unterstützung geben, weil sich mit Android 8 die Aufteilung des internen Speichers verändert hat und bei einem Wechsel alle Daten verloren gehen. Dieses Update automatisch zu verteilen ist auch recht gefährlich, weshalb ich verstehen kann, dass LineageOS dies nicht unterstützt. Aber es gibt im Forum viele engagierte Entwickler, die LineageOS 15 (Android 8) und höher und die entsprechenden Anleitungen dafür anbieten.

Das erst Mal TWRP

Die Samsung-Geräte haben neben dem eigentlichen System noch zwei weitere Modi, die man beim Einschalten mit der Tastenkombination Power+Home+Lauter bzw. Leiser erreichen kann. Als erstes muss man in den ODIN-Modus, indem man Power+Home+Leiser drückt.[^](Es gibt sogar noch einen Factory-Modus, den man mithilfe eines speziellen Steckers (aus dem Internet; der einen bestimmten Widerstand an einem Pin hat) erreichen kann.) Dort erscheint eine große Warnung und mit Lauter muss man bestätigen, dass man das Gerät verändern will.

Auf der Seite vom Team Win Recovery Project muss man sich das Image für sein Gerät aussuchen – der Modellname muss auch exakt passen, sonst funktioniert es nicht. In einigen XDA-Forumsbeiträgen wird auch ein TWRP-Image mitgeliefert, was es leichter macht.

Dieses Image für dem Recovery-Modus überträgt man unter Linux mit dem Programm heimdall (Debian-Paket heimdall-flash) auf das Handy. Wichtig ist es dabei, keinen automatischen Neustart durchzuführen, weil man nach der Übertragung sofort in den Recovery-Modus wechseln muss.

% sudo heimdall flash --no-reboot --RECOVERY twrp-3.5.2_9-0-….img

Nachdem die Anzeige 100 % anzeigt, kann man den USB-Stecker abziehen und am besten den Akku kurz entnehmen, um das Gerät abzuschalten – wider allen Warnungen, die angezeigt werden. Danach muss man mit Power+Home+Lauter in den Recovery-Modus gehen, damit TWRP Anpassungen vornehmen kann, um nicht überschrieben zu werden. Die Standard-Androids prüfen nämlich beim Start die Version des Recovery-Modus' und ersetzen ihn ggf., womit die Änderungen hinfällig wären.

Bei allen folgenden Aktualisierung muss man nicht mehr so kompliziert vorgehen, sondern kann direkt den TWRP-Recovery-Modus aufrufen. Nur die erste »Übernahme« des Handy ist etwas aufwändiger. Bei anderen Geräten habe ich es auch erlebt, dass man sich für die ODIN-Modus (oder auch Fastboot-Modus genannt) einen Freischaltcode vom Hersteller besorgen muss.

Allgemeines zum TWRP

Im TWRP-Recovery-Modus kann man bereits mit adb shell auf das Gerät zugreifen, um Daten vom Gerät zu kopieren oder andere Anpassungen vorzunehmen. Über den TWRP-Recovery-Modus ist es auch möglich alle Daten zu löschen. Wer sein wirklich Bilder, Musik, Kontakte, Apps und Daten löschen will, kann dies mit TWRP erreichen. Und natürlich dient der Recovery-Modus auch dazu, ein neues System auf das Handy zu bringen.

LineageOS installieren

Wenn TWRP einmal eingerichtet ist, lässt sich LineageOS leicht installieren. Wie oben bereits beschrieben, habe ich früher nur die offiziellen Versionen verwendet, aber alle meine Geräte werden nicht mehr unterstützt und ich habe mit meinem S2 seit einem dreiviertel Jahr (seit Nov. 2020) gute Erfahrungen mit dem Image aus dem XDA-Forum gemacht, weshalb auch für andere Geräte die Images von dort nutze.

Zur Übertragung des Images nutze ich meist ADB-Sideload im TWRP-Recovery-Modus und auf dem Computer den Befehl adb sideload lineage-….zip, weil ich dafür keine SD-Karte benötige. Alternativ – oder wenn es keine ZIP gibt – kopiere ich die Dateien mit adb push … /sdcard auf das Gerät (auch im Recovery-Modus möglich) und installiere sie dann über den Menüpunkt Install. Wenn (wie bei meinem S2, der USB-Anschluss defekt ist und somit) adb nicht funktioniert, muss man die Dateien auf eine SD-Karte kopieren und diese Dateien installieren.

Einrichtung von LineageOS

LineageOS ist ein angepasstes Android und sieht daher ähnlich aus wie ein Standard-Android (von dem es auch einen bunten Mix gibt) und lässt sich auch wie ein Standard-Android bedienen. Es gibt einige zusätzliche Einstellungen, die das Standard-Android nicht hat, aber man kann genauso Apps installieren wie mit dem Standard-Android … nur kann man eben mehr tun.

Das Erste, was ist tue, ist den Entwicklermodus und ADB (ggf. auch per WLAN) zu aktivieren. Hierfür muss man in den Einstellungen unter Über das Telefon sieben Mal hintereinander auf die Build-Nummer drücken. Danach gibt es unter dem Punkt System die Entwickleroptionen. Diese lassen sich auch wieder abschalten und danach auch wieder anschalten.

Danach installiere ich F-Droid per adb install oder ich lade die App von der Webseite über den Browser. Über F-Droid installiere ich dann den Aurora Store (App über F-Droid), um auf den Play Store zugreifen zu können.

Genaueres schreibe ich, wenn ich wieder einmal ein Gerät flashe und die Schritte dokumentieren kann. Viele Informationen finden sich noch in den Beiträgen »LineageOS auf Galaxy S2 installieren« und »Mein ›neues‹ Galaxy S2 mit Android 10«.

Google-Apps

Alternativen zu LineageOS

Magisk installieren

Magisk ist ein System, um im Android Root-Rechte zu erlangen, aber diese Fähigkeit auch vor Apps auch verstecken zu können. Viele Apps reagieren allergisch darauf, wenn das Programm su installiert ist, weshalb Magisk für diese Apps eine virtuelle Umgebung aufbauen kann, in der sie glücklich sind. Daneben kann Magisk noch mehr, aber bisher nutze ich allein die Root-Funktion.

Für das Galaxy S2 i9100 gibt es bereits ein ROM, in dem Magisk enthalten ist, aber für das S4mini 9195 nicht. Jedoch ist das Einrichten von Magisk recht einfach, wie sich gezeigt hat:

  1. Die Magisk-App von GitHub holen und installieren; Achtung: Nur die App von GitHub nutzen, viele andere im Internet verfügbare Versionen sind mit Schadcode verseucht![^](Ich habe selbst von einer Webseite, die Magisk im Domainnamen hatte und offiziell aussah, mir Schadcode geholt und konnte diesen nur durch vollständiges Zurücksetzen loswerden.) In der App muss bei Ramdisk und SAR ein Ja angezeigt werden, sonst ist die Installation nicht möglich.
  2. Mit adb root den Root-Zugriff mit adb herstellen.
  3. Über adb shell auf dem Gerät den Inhalt der Kernel-Patition in eine Datei sichern: dd if=/dev/block/by-name/boot of=/sdcard/Download/boot.img
  4. In der App bei Magisk Installieren wählen, bei der Option Eine Datei auswählen und patchen die Datei boot.img vom Speicher auswählen und dann mit Los geht's die Anpassung vornehmen.
  5. Danach das angepasste Image wieder in die Kernel-Partition schreiben: dd if=/sdcard/Download/magisk_patched-….img of=/dev/block/by-name/boot
  6. … und das System neu starten. Danach sollte in der Magisk-App stehen, dass Magisk eingerichtet ist.

Wie oben bereits erwähnt, sollte man die App nur bei GitHub holen. Dazu gibt es auch eine offizielle Seite mit einer Installationsanleitung. Anderen Webseiten – egal wie offiziell sie aussehen – würde ich nicht trauen!

Ein System übertragen

Für meinen Wechsel von meinem S2 zum S4mini habe ich OAndBackupX und Syncthing-Fork verwendet. Mit Syncthing habe ich das Verzeichnis mit den Sicherungen übertragen und mit OAndBackup habe ich die Apps und Daten gesichert.

Neben den von mir installierten Apps habe ich noch von der System-App com.android.launcher3 aka. Trebuchet die Daten gesichert und auf dem S4mini wieder installiert. Danach ist es besser, das Handy neuzustarten, damit die Einstellungen komplett übernommen werden und man nicht in einem Zwischenzustand endet.

Sonstiges

Recovery aus dem System heraus aktualisieren

Man kann auch im normalen System die Partition mit dem Recovery-Modus aktualisieren:

i9100:/ # dd if=/sdcard/TWRP-3.4.0-i9100-Android-10.img of=/dev/block/by-name/RECOVERY bs=1M

Meine Geräte

Samsung Galaxy S2 (i9100)

Technische Daten

Partitionen

i9100:/ # sgdisk --print /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 30777344 sectors, 14.7 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 52444E41-494F-2044-4D4D-43204449534B
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30777310
Partitions will be aligned on 2048-sector boundaries
Total free space is 19389 sectors (9.5 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            8192           49151   20.0 MiB    0700  EFS
   2           49152           51711   1.3 MiB     0700  SBL1
   3           53248           55807   1.3 MiB     0700  SBL2
   4           57344           73727   8.0 MiB     0700  PARAM
   5           73728           90111   8.0 MiB     0700  KERNEL
   6           90112          106495   8.0 MiB     0700  RECOVERY
   7          106496          311295   100.0 MiB   0700  CACHE
   8          311296          344063   16.0 MiB    0700  MODEM
   9          344064         3489791   1.5 GiB     0700  FACTORYFS
  10         3489792        30736383   13.0 GiB    0700  DATAFS
  11        30736384        30752767   8.0 MiB     0700  UMS
  12        30752768        30769151   8.0 MiB     0700  HIDDEN

RAM

i9100:/ # free -m
                total        used        free      shared     buffers
Mem:              778         742          35           0          46
-/+ buffers/cache:            696          82
Swap:             349          74         275

CPU

i9100:/ # cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 1 (v7l)
processor       : 0
BogoMIPS        : 1592.52

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 1

Hardware        : SMDK4210
Revision        : 000e
Serial          : 304d09318143022f

Samstag Galaxy Note 2 (N7105)

Samstag Galaxy S4 mini (i9195)

Technische Daten

Partitionen

serranolte:/ # sgdisk --print /dev/block/mmcblk0
Disk /dev/block/mmcblk0: 15269888 sectors, 7.3 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 98101B32-BBE2-4BF2-A06E-2BB33D000C20
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 15269854
Partitions will be aligned on 16-sector boundaries
Total free space is 8158 sectors (4.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            8192          131071   60.0 MiB    0700  modem
   2          131072          131327   128.0 KiB   A012  sbl1
   3          131328          131839   256.0 KiB   A013  sbl2
   4          131840          132863   512.0 KiB   A014  sbl3
   5          132864          136959   2.0 MiB     A015  aboot
   6          136960          137983   512.0 KiB   A018  rpm
   7          137984          139007   512.0 KiB   A016  tz
   8          139008          164607   12.5 MiB    FFFF  pad
   9          164608          180991   8.0 MiB     8300  param
  10          180992          208895   13.6 MiB    8300  efs
  11          208896          215039   3.0 MiB     A027  modemst1
  12          215040          221183   3.0 MiB     A028  modemst2
  13          221184          241663   10.0 MiB    A036  boot
  14          241664          262143   10.0 MiB    A036  recovery
  15          262144          282623   10.0 MiB    FFFF  fota
  16          282624          296943   7.0 MiB     8300  backup
  17          296944          303087   3.0 MiB     A02A  fsg
  18          303088          303103   8.0 KiB     A02C  ssd
  19          303104          319487   8.0 MiB     8300  persist
  20          319488          344063   12.0 MiB    8300  persdata
  21          344064         3416063   1.5 GiB     8300  system
  22         3416064         3825663   200.0 MiB   8300  cache
  23         3825664         3899391   36.0 MiB    8300  hidden
  24         3899392        15269854   5.4 GiB     8300  userdata

RAM

serranolte:/ # free -m
                total        used        free      shared     buffers
Mem:             1361        1260         100           2          13
-/+ buffers/cache:           1247         113
Swap:               0           0           0

CPU

serranolte:/ # cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 0 (v7l)
processor       : 0
BogoMIPS        : 13.06

processor       : 1
BogoMIPS        : 13.06

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt 
CPU implementer : 0x51
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0x04d
CPU revision    : 0

Hardware        : SAMSUNG SERRANO
Revision        : 0005
Serial          : 0000208300003ff3

Samstag Galaxy S5 mini (G800F)

Technische Daten

Partitionen

~ # fdisk -l /dev/block/mmcblk0
Found valid GPT with protective MBR; using GPT

Disk /dev/block/mmcblk0: 30777344 sectors, 2740M
Logical sector size: 512
Disk identifier (GUID): 52444e41-494f-2044-4d4d-43204449534b
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 30777310

Number  Start (sector)    End (sector)  Size       Code  Name
   1            8192           16383       4096K   0700  BOTA0
   2           16384           24575       4096K   0700  BOTA1
   3           24576           65535       20.0M   0700  EFS
   4           65536           73727       4096K   0700  m9kefs1
   5           73728           81919       4096K   0700  m9kefs2
   6           81920           90111       4096K   0700  m9kefs3
   7           90112           92159       1024K   0700  CARRIER
   8           92160          108543       8192K   0700  PARAM
   9          108544          129023       10.0M   0700  BOOT
  10          129024          153599       12.0M   0700  RECOVERY
  11          153600          169983       8192K   0700  OTA
  12          169984          172031       1024K   0700  CDMA-RADIO
  13          172032          237567       32.0M   0700  RADIO
  14          237568          239615       1024K   0700  TOMBSTONES
  15          239616          241663       1024K   0700  TDATA
  16          241664          266239       12.0M   0700  PERSDATA
  17          266240          268287       1024K   0700  RESERVED2
  18          268288         4978687       2300M   0700  SYSTEM
  19         4978688         5593087        300M   0700  CACHE
  20         5593088         5675007       40.0M   0700  HIDDEN
  21         5675008        30767103       11.9G   0700  USERDATA

RAM

~ # free
             total         used         free       shared      buffers
Mem:       1287004       173524      1113480            0        33052
-/+ buffers:             140472      1146532
Swap:            0            0            0

CPU

~ # cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 3 (v7l)
processor       : 0
BogoMIPS        : 1590.88

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 3

Hardware        : UNIVERSAL3470
Revision        : 0006
Serial          : f802327f520099c8