Bitte warten...

LineageOS 14.1 auf dem Sony Xperia SP installieren

Das Sony Xperia SP wird von LineageOS nicht mehr unterstützt. Daher ist diese Anleitung lediglich von historischer Bedeutung.

Vor dem Versuch einer Installation von LineageOS ist unbedingt zu prüfen, ob das Gerät das Entsperren des Bootloaders unterstützt!

Dazu startet man über die Telefon-App des Gerätes zunächst das Service-Menü, indem man dort den Code *#*#7378423#*#* eingibt. Dann navigiert man durch die Optionen Service info ► Configuration. Unter der Überschrift Rooting status muss die Angabe Bootloader unlock allowed: Yes angezeigt werden, ansonsten ist das Entsperren des Bootloaders nicht möglich.

Die Installation von LineageOS wird hier schrittweise am Beispiel des Sony Xperia SP (2013; C5303; Codename: huashan; Android 4.3 Jelly Bean; Build-Nummer 12.1.A.1.205) beschrieben, wobei das Gerät für Teile dieses Vorgangs an einen PC mit Linux Mint angeschlossen wird. Diese Anleitung sollte daher auch mit anderen, auf Debian basierenden Linux-Distributionen funktionieren (wie beispielsweise Ubuntu). Die Installation mit Hilfe von Windows oder macOS wird hier nicht beschrieben. Je nach verwendetem Gerät können einzelne Schritte von diesen Beispielen abweichen, über die man sich an anderen Stellen im Internet informieren muss.

Übersichtsseite von LineageOS zum Sony Xperia SP
Offizielle Installationsanleitung von LineageOS

Es ist sehr empfehlenswert, diese Anleitung zunächst komplett durchzulesen und zu verstehen, bevor man mit der Installation der Firmware beginnt, um Datenverlust vorzubeugen und die Gefahr zu umgehen, sein Gerät unbrauchbar zu machen!

Für die hier beschriebenen Vorgänge sollte das betreffende Gerät voll aufgeladen sein und über einen Internetzugang verfügen. Eine SIM-Karte ist nicht notwendig.

Für einzelne Schritte dieser Anleitung werden die Shell-Befehle adb und fastboot benötigt, die in der Regel auf dem Desktop-Rechner zunächst nachinstalliert werden müssen (s. auch ADB und Fastboot):

sudo apt-get install android-tools-adb android-tools-fastboot

Installation per apturl symbol: question

Um diese Befehle verwenden zu können, müssen die USB-Treiber auf dem Smartphone installiert sein. Nun muss man auf dem Gerät die Entwickleroptionen aktivieren: Einstellungen ► Über das Telefon, dann 7× auf die Option Build-Nummer tippen. Anschließend unter Einstellungen ► Entwickleroptionen die Option USB-Debugging aktivieren.

Smartphone mit TowelRoot rooten

Um von der vorhandenen Android-Installation ein Backup machen und ein alternatives Betriebssystem installieren zu können, benötigen wir einen Zugriff auf das Dateisystem des Smartphones. Dazu muss dieses Gerät zunächst gerootet werden. Für diesen Eingriff existieren keine offiziellen Werkzeuge, weshalb man auf Software von Drittanbietern angewiesen ist. Welche Software für das eigene Gerät geeignet ist und welcher man vertrauen kann, muss man durch Recherche selbst herausfinden (z. B. bei rootwiki.net). Dabei sollte man sich bewusst sein, dass man das Gerät durch das Rooten sehr weit für Angriffe von außen öffnet, weshalb dieser Eingriff grundsätzlich ein Sicherheitsrisiko darstellt. Weiterhin kann das Gerät durch unsachgemäß durchgeführtes Rooten auf Soft- und/oder Hardware-Ebene beschädigt werden (soft brick / hard brick), weshalb man einen solchen Eingriff nur durchführen sollte, wenn man weiß, was man tut.

Durch das Rooten erlischt in der Regel die Gewährleistung bzw. Garantie des Herstellers für das betroffene Gerät, weshalb es unter Umständen angezeigt sein könnte, die angestrebten Veränderungen erst nach Ablauf der entsprechenden Zeiträume vorzunehmen.

Im Smartphone erlaubt man nun über das Menü Einstellungen ► Sicherheit ► Unbekannte Herkunft das Ausführen von Drittanbieter-Software (die nicht über den Google-Play-Store installiert werden soll).

Dann ruft man im Browser des Smartphones die Seite towelroot.com auf, tippt dort auf das große λ-Symbol, wodurch die Datei tr.apk, die die App TowelRoot enthält, heruntergeladen wird. Anschließend öffnet man die Benachrichtigungsliste des Smartphones, in der der soeben erfolgte Download aufgeführt ist, und startet über diesen Punkt die Installation der App (eine Sicherheitswarnung von Android kann ignoriert werden).

Wenn die App gestartet ist, klickt man auf den Button make it ra1n. Das erfolgreiche Rooten des Smartphones wird durch die Mitteilung „Successful“ angezeigt und kann zusätzlich mit der App Root Checker überprüft werden.

Quellen: rootwiki.net, droidviews.com

Backup der TA-Partition (optional)

Die TA-Partition (trim area) des Xperia enthält proprietäre Daten wie beispielsweise DRM-Schlüssel, die für diverse Sony-spezifische Funktionen des Gerätes notwendig sind (z. B. Bravia-Engine), und beim Entsperren des Bootloaders (nächster Schritt) verloren gehen. Um diese Partition bei Bedarf wieder herstellen zu können, sollte sie daher zunächst gesichert werden!

Um das Backup speichern zu können, muss eine separate microSD-Karte in dem Gerät eingelegt sein.

Nun verbindet man das Smartphone über das USB-Kabel mit dem Desktop-Rechner, startet auf dem Desktop-Rechner das Terminal und gibt dort den Befehl adb devices ein. Auf dem Smartphone muss man jetzt in der Regel einen Dialog bestätigen, um das USB-Debugging zu erlauben:Screenshot: Debugging erlauben Wird das Smartphone erkannt, erhält man eine ähnliche Ausgabe wie diese und kann fortfahren:

Code kopieren
List of devices attached 
YT910NPHQ0	device

Steht hier statt device das Schlüsselwort unauthorized, wurde der Dialog zum Erlauben des USB-Debuggings noch nicht bestätigt.

Mit dem Befehl adb shell startet man nun eine Shell-Session auf dem Smartphone. Alle folgenden Befehle werden nun auf dem Smartphone ausgeführt. Mit dem Befehl ls -l kann man sich jetzt alle Objekte im Wurzelverzeichnis des Dateisystems anzeigen lassen. Von Bedeutung wäre hier die Information der Datei sdcard1, die auf den Ort /storage/removable/sdcard1 verweist. Dies ist die separate SD-Karte, auf der das Backup gespeichert werden soll.

Den Ort der TA-Partition ermittelt man über folgenden Befehl:

ls -al /dev/block/platform/msm_sdcc.1/by-name

Hier erhält man eine Ausgabe ähnlich dieser:

Code kopieren
lrwxrwxrwx root     root              1970-03-08 23:00 Boot -> /dev/block/mmcblk0p2
lrwxrwxrwx root     root              1970-03-08 23:00 Boot2 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              1970-03-08 23:00 Cache -> /dev/block/mmcblk0p14
lrwxrwxrwx root     root              1970-03-08 23:00 FOTAKernel -> /dev/block/mmcblk0p11
lrwxrwxrwx root     root              1970-03-08 23:00 Kernel -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              1970-03-08 23:00 LTALabel -> /dev/block/mmcblk0p12
lrwxrwxrwx root     root              1970-03-08 23:00 System -> /dev/block/mmcblk0p13
lrwxrwxrwx root     root              1970-03-08 23:00 TA -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              1970-03-08 23:00 TZ -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              1970-03-08 23:00 Userdata -> /dev/block/mmcblk0p15
lrwxrwxrwx root     root              1970-03-08 23:00 apps_log -> /dev/block/mmcblk0p10
lrwxrwxrwx root     root              1970-03-08 23:00 fsg -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              1970-03-08 23:00 modemst1 -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              1970-03-08 23:00 modemst2 -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              1970-03-08 23:00 ramdump -> /dev/block/mmcblk0p9

Hier sehen wir den Pfad zur TA-Partition: /dev/block/mmcblk0p1

Jetzt können wir mit dem dd-Befehl die Partition auf die SD-Karte kopieren. Sollten der Pfad der TA-Partition oder der SD-Karte von diesem Beispiel abweichen, ist der dd-Befehl entsprechend anzupassen:

su (Root-Session starten)
dd if=/dev/block/mmcblk0p1 of=/sdcard1/ta-backup.img
oder
dd if=/dev/block/mmcblk0p1 of=/storage/removable/sdcard1/ta-backup.img

Auf der SD-Karte befindet sich nun das ca. 2,1 MB große Backup der TA-Partition, was mit folgenden Befehlen geprüft werden kann:

cd sdcard1 (Wechsel zum Verzeichnis der SD-Karte)
ls -l (Objekte auflisten)

Mit exit wird dann zunächst die Root-Session (su) beendet und mit einem weiteren exit schließlich die ADB-Shell.

Möchte man die TA-Partition mit Hilfe dieses Backups wiederherstellen, so verwendet man folgenden Befehl:

dd if=/sdcard1/ta-backup.img of=/dev/block/mmcblk0p1

Auf diese Weise können bei Bedarf auch weitere Partitionen gesichert werden.

Das Backup der TA-Partition sollte man nun von der SD-Karte auf den Desktop-PC kopieren.

Bootloader entsperren

Bei diesem Vorgang wird das Gerät auf den Auslieferungszustand zurückgesetzt, wobei alle gespeicherten Apps und Daten verloren gehen. Diese müssen daher bei Bedarf zunächst gesichert werden!

Außerdem ist davon auszugehen, dass die Gewährleistung für das Gerät mit diesem Vorgang erlischt.

Das Gerät bleibt weiterhin gerootet.

Die alternative Firmware wird mit dem Tool Team Win Recovery Project (TWRP) auf das Gerät geflasht. TWRP wird durch einen besonderen Bootvorgang geladen. Dazu muss der Bootloader des Gerätes entsperrt sein (unlocked), was herstellerseitig in der Regel nicht der Fall ist und daher manuell nachgeholt werden muss, wenn dies vom Gerät zugelassen ist. Lautet der Rooting-Status des Gerätes Bootloader unlock allowed: Yes (s. oben), kann der Bootloader entsperrt werden. Dieser Vorgang wird von Gerät zu Gerät unterschiedlich sein. Für das Sony Xperia SP geht man folgendermaßen vor:

Auf der Sony-Seite Unlock your boot loader wählt man in der Liste unten zunächst das eigene Gerät und klickt dann auf Continue. Im folgenden Schritt gibt man eine gültige E-Mail-Adresse an, an die Sony einem einen Link schicken kann, über den man den Code zum Entsperren des Bootloaders erhält. Durch Klick auf Submit wird die E-Mail-Adresse abgeschickt.

Als nächstes ermittelt man die IMEI-Nummer des Smartphones. Entweder man gibt in der Telefon-App den Code *#06# ein, oder man wählt im Menü Einstellungen ► Über das Telefon ► Status und scrollt dann zu dem IMEI-Eintrag. Diese Nummer sollte man sich nun notieren.

In der Antwort-Mail von Sony ist dann ein Link auf eine Seite enthalten, auf der man die IMEI-Nummer eingibt, aus der anschließend der 16-stellige Entsperr-Code berechnet wird. Dieser wird dann mittels fastboot an das Smartphone übergeben:

Das Smartphone wird ausgeschaltet und das USB-Kabel mit dem Desktop-Rechner verbunden. Bei gedrückter Lautstärke ▴-Taste wird das USB-Kabel nun mit dem Smartphone verbunden. Die LED am Gerät beginnt blau zu leuchten, was den Fastboot-Modus anzeigt. Auf dem Desktop-Rechner gibt man dann im Terminal den Befehl sudo fastboot devices ein. Wird das Smartphone erkannt, erhält man eine ähnliche Ausgabe wie diese und kann fortfahren:

Code kopieren
PSDN:YT910HEXXZ&ZLP	fastboot

Wurde das Smartphone erkannt, gibt man folgenden Befehl zum Entsperren des Bootloaders ein, wobei die Zeichenfolge ABCDEFGH12345678 durch den eigenen Entsperr-Code zu ersetzen ist:

sudo fastboot -i 0x0fce oem unlock 0xABCDEFGH12345678

Nach einigen Sekunden ist der Bootloader entsperrt und das Terminal kann geschlossen werden. Nun zieht man das USB-Kabel wieder ab und bootet das Smartphone normal. Das erste Booten kann einige Minuten dauern, da das Gerät vollständig zurückgesetzt wird. Der neue Rooting-Status sollte nun Bootloader unlocked: Yes lauten.

Dann schaltet man das Smartphone wieder aus.

TWRP installieren

Achtung! Der Download von TWRP darf nicht mit Shell-Befehlen wie wget erfolgen, da der Download-Server das verbietet (s. hier). Stattdessen wird hier der Download über den Webbrowser beschrieben. Es existiert auch eine APP für den Download direkt vom Smartphone aus (s. hier).

Offizielle Installationsanleitung von TWRP

TWRP (Team Win Recovery Project) ist eine alternative Recovery-Software, mit der LineageOS auf das Smartphone geflasht werden kann. Außerdem lässt sich mit diesem Tool ein Backup des vorhandenen Android-Systems erstellen, um es bei Bedarf wiederherstellen zu können.

Da beim Entsperren des Bootloaders das Smartphone zurückgesetzt wurde, muss jetzt als erstes das USB-Debugging erneut aktiviert werden (s. oben). Außerdem müssen die USB-Treiber neu installiert werden.

Dann lädt man sich von der TWRP-Website eine aktuelle Version des Tools (ca. 12 MB) sowie dessen digitale Signatur herunter und verschiebt diese in die oberste Ebene des Benutzerordners (Versionsnummer ggf. anpassen; die Dateien werden hier der Einfachheit halber gleich umbenannt):

cp ~/Downloads/twrp-3.2.1-0-huashan.img ~/twrp.img
cp ~/Downloads/twrp-3.2.1-0-huashan.img.asc ~/twrp.img.asc

Um die Signatur prüfen zu können, wird außerdem noch der öffentliche Schlüssel benötigt:

gpg --keyserver pool.sks-keyservers.net --recv-keys 891A43DF

Nun kann die TWRP-Datei geprüft werden:

gpg --verify twrp.img.asc twrp.img

Die Ausgabe sollte folgendermaßen aussehen, wenn die TWRP-Datei eine korrekte Signatur aufweist. Die Warnung besagt lediglich, dass der Fingerabdruck des öffentlichen Schlüssels nicht verifiziert wurde (s. hier).

Code kopieren
gpg: Unterschrift vom So 10 Dez 2017 21:57:35 CET mittels RSA-Schlüssel ID 891A43DF
gpg: Korrekte Unterschrift von »TeamWin <admin@teamw.in>«
gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!
gpg:          Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.
Haupt-Fingerabdruck  = 9570 7D42 307C 9D41 D09B  F709 1D85 97D7 891A 43DF

Anschließend kann man eine MD5-Prüfsumme der Datei erzeugen. Diese muss mit dieser übereinstimmen, ansonsten war der Download fehlerhaft:

md5sum twrp.img

TWRP wird in diesem Schritt in die Boot-Partition installiert, da das Xperia SP keine Recovery-Partition besitzt. Durch das anschließende Flashen von LineageOS wird die Boot-Partition mit der Firmware wieder überschrieben, weshalb TWRP dann nicht mehr zur Verfügung steht, um später eventuell weitere Anpassungen vorzunehmen. Möchte man TWRP später dennoch benutzen, kann man es auch in die FOTA-Partition installieren (s. unten).

Jetzt bootet man das Smartphone wieder in den Fastboot-Modus (bei gedrückter Lautstärke ▴-Taste das am Desktop-Rechner angeschlossene USB-Kabel mit dem Smartphone verbinden), prüft die Verbindung mit sudo fastboot devices und flasht TWRP in die Boot-Partition des Gerätes (Die offizielle Anleitung beschreibt das übliche Flashen in die Recovery-Partition, die beim Xperia SP allerdings nicht existiert.):

sudo fastboot flash boot twrp.img

Dann entfernt man das USB-Kabel. Wird das Smartphone nun wieder angeschaltet, bootet es automatisch mit TWRP.

TWRP in die FOTA-Partition installieren

Alternativ kann man TWRP auch in die FOTA-Partition installieren. Dazu schließt man das Smartphone per USB-Kabel an den Desktop-Rechner an und prüft mit adb devices die ADB-Verbindung. Im Terminal gibt man dann folgende Befehle ein (Quellpfad für push eventuell anpassen):

adb root
adb wait-for-device
adb push ~/twrp.img /tmp/twrp.img
adb shell dd if=/tmp/twrp.img of=/dev/block/platform/msm_sdcc.1/by-name/FOTAKernel
adb reboot recovery (optional, bootet automatisch nach TWRP)

Man kann das Gerät nun auch ausschalten. Wenn man es dann wieder normal einschaltet und beim Sony-Logo (Status-LED leuchtet grün/rot/grün) die Lautstärke ▴-Taste drückt, wird TWRP gebootet.

Nachteil dieser Installationsart kann sein, dass die regelmäßigen System-Updates von LineageOS nicht mehr automatisch durchgeführt werden können. In diesem Fall müssen die Updates manuell vorgenommen werden (s. unten).

Nandroid-Backup des Smartphones (optional)

Um im Bedarfsfall die Änderungen, die durch die Installation von LineageOS an dem Zielgerät vorgenommen wurden, wieder rückgängig machen zu können, empfiehlt es sich, von dem Dateisystem, auf dem die Firmware installiert werden soll, zunächst ein Backup zu machen. TWRP bietet hier die Möglichkeit eines so genannten Nandroid-Backups, bei dem individuell ausgewählt werden kann, welche Partitionen gesichert werden sollen. Diese können später mit TWRP wiederhergestellt werden.

Dazu wählt man nach dem Start von TWRP im Hauptmenü die Option Backup und dort die Partitionen Boot, System und Data. Dann wählt man über den Button Select Storage die separate SD-Karte (Micro SDCard). Bestätigt mit OK und wischt unten über Swipe to Backup.

LineageOS-Abbild flashen

Da mit dem Flashen von LineageOS auch der Kernel überschrieben wird, geht somit auch der Rootzugriff wieder verloren. Das Verfahren mit TowelRoot funktioniert hier aufgrund des aktuelleren Kernels nicht, allerdings stellt LineageOS ein eigenes Werkzeug dafür zur Verfügung, das in diesem Vorgang zusammen mit der Firmware geflasht werden kann. Das benötigte Paket findet man im Download-Bereich von LineageOS in der Rubrik Extras. Das Xperia SP besitzt einen Snapdragon S4 Pro Prozessor mit 32-Bit und ARM-kompatiblen Kernen. Daher wählt man das Paket addonsu-14.1-arm-signed.zip.

Quellen:
How to ROOT Lineage OS 14.1/13 Marshmallow/Nougat ROM
How to ROOT Any Android by Flashing SuperSU via TWRP

Als nächstes lädt man sich die aktuellste Version der Firmware bei LineageOS herunter und kopiert die Pakete in die oberste Ebene des Benutzerordners, wobei diese hier gleich umbenannt werden (Versionsnummer ggf. anpassen):

cp ~/Downloads/lineage-14.1-20171004-nightly-huashan-signed.zip ~/lineage.zip
cp ~/Downloads/addonsu-14.1-arm-signed.zip ~/addonsu.zip

Dann ermittelt man die SHA256-Prüfsummen der Dateien, um die Integrität der Downloads zu prüfen und vergleicht die Ausgaben mit den entsprechenden Werten auf den Download-Seiten:

sha256sum lineage.zip
sha256sum addonsu.zip

Die digitalen Signaturen der Dateien überprüft man mit folgenden Befehlen und vergleicht die Ausgabe mit der Seite Verifying Build Authenticity:

keytool -J-Duser.language=en -printcert -jarfile lineage.zip
keytool -J-Duser.language=en -printcert -jarfile addonsu.zip

Nun verbindet man das Smartphone wieder über das USB-Kabel mit dem Desktop-Rechner, öffnet dort das Terminal und überprüft die Verbindung wieder mit adb devices. Dann kopiert man die Pakete auf die separate SD-Karte:

adb push lineage.zip /external_sd/
adb push addonsu.zip /external_sd/

Das USB-Kabel wird dann wieder entfernt.

In TWRP wählt man im Hauptmenü nun zunächst die Option Wipe und dann Advanced Wipe. Hier wählt man die Partitionen System, Cache und Data und wischt dann unten über Swipe to Wipe, um die gewählten Partitionen zu leeren.

Im Hauptmenü wählt man dann die Option Install, wählt dort über Select Storage die separate SD-Karte Micro SDCard und bestätigt mit Tippen auf OK. Dann wählt man die Datei lineage.zip, tippt auf Add more Zips, um ein weiteres Paket auszuwählen, wählt dann die Datei addonsu.zip (und ggf. weitere Pakete) und wischt dann unten über Swipe to confirm Flash, um die gewählten Pakete auf das Gerät zu flashen.

Ist dieser Vorgang beendet, tippt man auf Reboot System und startet so das Smartphone neu, was beim ersten Booten ein paar Minuten dauern kann, da das System neu eingerichtet wird.

Fertig!