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
- microG Project
adb shell am start -a android.intent.action.VIEW -d 'https://microg.org/fdroid/repo?fingerprint=9BD06727E62796C0130EB6DAB39B73157451582CBD138E86C468ACC395D14165'
adb shell am start -a android.intent.action.VIEW -d fdroid.app:com.google.android.gms
- The Open GApps Project
- NikGApps - Custom Google Apps Package! | NikGapps Website
Alternativen zu LineageOS
- CarbonROM: Geräteliste
- SlimRoms: Geräteliste
- postmarketOS: Geräteliste
- Liste der Custom-ROMs in der Wikipedia
- 11 Open Source Mobile OS Alternatives To Android in 2020.
- SamMobile: Original-Firmware für Samsung-Geräte
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:
- 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.
- Mit
adb root
den Root-Zugriff mit adb herstellen. - Ü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
- 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.
- Danach das angepasste Image wieder in die Kernel-Partition schreiben:
dd if=/sdcard/Download/magisk_patched-….img of=/dev/block/by-name/boot
- … 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