LineageOS auf einem HTC One M8 (Teil 1)

Dieser Blog dokumentiert, wie mit einem Linux Desktop Computer auf einem älteren Standard Android Telefon ein neues System mit aktuellen Sicherheitspatches aufgespielt wird. Genauer gesagt, ein LineageOS auf einem HTC One M8. Zudem wird erwartet, dass das Mobilgerät ein wenig besser und schneller reagiert als zuvor.

HTC One M8

Vor mit liegt ein HTC One M8. Inzwischen ist nach dem M9 bereits das M10 auf dem Markt erhältlich und man munkelt bereits über das M11. Das Gerät war 2014 neu auf dem Markt. Es ist aktuell Android 6.0 installiert. Der Android Sicherheitspatch ist vom 01. Dezember 2015. Die Daten selbst auf dem Telefon sind gesichert. Schön wäre die Wiederherstellung der bestehenden Software selbst.

Systemupdate und Liste der Apps

Zuerst wird nach dem neuestem Update für das Telefon gesucht. Deswegen verbinde ich es zunächst mit dem WLAN und stelle fest, dass keine neuen Updates zur Verfügung stehen. Um später eine Liste der installierten Apps auf dem Gerät zu haben, installiere ich „List my Apps“ von Onyxbits auf dem Gerät. Mit der Anwendung sende ich mir die Liste per E-Mail.

Entwicklermodus

Als nächstes wird der Entwicklermodus auf dem Gerät aktiviert. Dazu gehe ich in die Einstellungen unter Info –> Software-Informationen –> Mehr und tippe acht Mal auf den Eintrag Build-Nummer. Jetzt sind die Entwickler-Einstellungen aktiviert. Diese finden sich bei den Einstellungen direkt über dem letzten Eintrag „Info“. Beim ersten Besuch bestätige ich, dass ich vorsichtig mit dem Gerät und den Einstellungen umgehen werde. In den Optionen wird nun das USB-Debugging aktiviert. Außerdem wird in der USB Konfiguration RNDIS (USB Ethernet) eingestellt.

Beim Anschließen des M8 an den Rechner lasse ich Dateiübertragungen zu. Im Terminal wird überprüft, ob das Gerät so ansprechbar ist.
Zuvor hatte ich auf dem Rechner die android-tools-adb installiert. Mit dem Befehl

$ adb devices

erscheint das Gerät in der Liste. Das USB-Debugging kann auf dem Display-Popup authoriert werden.

Entsperrung des M8

Auf den Seiten von LineageOS gibt es eine Anleitung wie die Installation von LineageOS vor sich gehen sollte. Diese beginnen mit der Warnung, dass die Entsperrung des Bootloaders die Daten auf dem Gerät löschen wird.

Bitte das hier nur nachmachen, wenn Sie wissen, was Sie tun. Ich bin nicht verantwortlich für kaputte Geräte oder sonstige eventuelle Schäden, wenn Sie dies auf Ihrem Gerät auch tun.

Mit dem Befehl

$ adb reboot bootloader

wird das Gerät in den Fastboot Modus gesetzt. Durch den Befehl

$ sudo fastboot devices

wird das M8 erkannt und die Gerätenummer ausgegeben.
Anschließend mit Befehl

$ sudo fastboot oem get_identifier_token

erhält man schließlich den Identifier Token, mit welchem man später auf den HTC Developer Seiten den Entsperrcode für das Gerät anfordert.

Auf htcDEV wählt man Unlock Bootloader und Get Started. Nach der Geräteauswahl (hier das One M8) kann man die Haftungsausschlüsse (Verlust der Gewährleistung) bestätigen.

Seite https://www.htcdev.com/

Dann wird erklärt, wie man das OEM Unlocking vollzieht. Wir hatten diese Schritte bereits gemacht und gehen direkt weiter zu Schritt 7, wo der zuvor mit Fastboot abgefragte Identifier Token eingegeben wird. Nach der Übermittlung kommt der Entsperrschlüssel per E-Mail.

Nach der Navigation des Terminals in das Verzeichnis, wo der Entsperrcode aus E-Mail gesichert wurde wird das Gerät entsperrt. Und zwar mit dem Befehl

$ sudo fastboot flash unlocktoken Unlock_code.bin

Auf dem Gerät selbst wird mit den Tasten Leiser und Lauter navigiert, mit dem An/Aus Knopf wird der Entsperrvorgang bestätigt.

TWRP

TWRP ist kurz für Team Win Recovery Project. Auf den TWRP Seiten für das M8 wähle ich das neueste Recovery (bei mir Version 3.1.1), starte den Download und Navigieren den Terminal in das Downloadverzeichnis. Dies geht direkt auch bei den meisten Linux Systemen mit Befehl

$ cd ~/Downloads 

Inzwischen war mir das Gerät versehentlich neu gestartet. Ich benötige es allerdings im Fastboot Modus, der bei HTC über den HBOOT Modus gestartet werden kann. Den HBOOT Modus erreiche ich durch gleichzeitiges Drücken der An/Aus und der Leiser Taste für mehrere Sekunden bis das Gerät neu gestartet wurde und mit Hilfe der Navigation (Leiser, Lauter, An/Aus) von HBOOT in den Fastboot Modus gebracht wird.

Durch die Eingabe von

$ sudo fastboot flash recovery twrp-3.1.1-0-m8.img

wird die Recovery Partition (TWRP) aufgespielt.
Über das Menü HBOOT –> RECOVERY lässt sich diese direkt ansteuern. Nachdem die Erlaubnis für Systemmodifikationen per Wischen bestätigt wurde kommt man ins Hauptmenü. Mit dem Menüpunkt Install wird gleich installiert.

LineageOS

Für die Installation selbst fehlt noch das LineageOS System selbst, welches wir downloaden. Zudem lade ich noch das SU AddOn für Root Zugang zum System später. Das M8 hat einen Qualcomm Snapdragon 801, also 32-bit CPU Architektur. Dies ist wichtig zu wissen für das richtige SU File und auch später für die OpenGapps.

Zuerst wählen wir in TWRP in Menü Wipe und bestätigen mit Wischen einen „Factory Reset“.

Achtung: Hier werden alle Daten auf dem Gerät gelöscht.

Mit den Befehlen

$ adb push lineage-14.1-20170518-nightly-m8-signed.zip /sdcard/

und

$ adb push addonsu-arm-signed.zip /sdcard/

werden die beiden zip-Dateien auf das Mobiltelefon geschoben und dann in TWRP in Menü Installieren für die Installation ausgewählt.  Direkt nach der Installation wird mit Menü Wipe cache/dalvik der cache Spreicher aufgeräumt. Dann kann das Gerät direkt gestartet werden. Ich installiere hier auch gleich die TWRP App mit. Dies muss später über den Play Store aktualisiert werden.

Erfolg!

Wir haben nun ein HTC Developer Device mit LineageOS. Weiter im nächsten Blog gibt es Informationen zur Einrichtung des Geräts.

Custom ROM für Mobiltelefone

Es gibt viele gute Gründe, ein Mobiltelefon mit anderer Software (Custom ROM) zu bespielen. Hier eine einfacher, theoretischer Überblick zur Vorgehensweise.

Warnung

Die hier aufgeführten Aktionen führen zum Verlust der Herstellergarantie. Ich bin nicht verantwortlich für defekte Geräte, tote SD-Karten oder den Verlust des Arbeitsplatzes, weil die Wecker-App nicht mehr funktioniert. Bitte forschen Sie selbst ein wenig nach, bevor Sie ihr Geräte mit der hier beschriebenen Software bespielt werden. Es ist Ihre Entscheidung!

Aufbau

Der Aufbau eines Android Systems ist einem Linux / Unix System sehr ähnlich. Kein Wunder, der Android Kernel ist ein Derivat des Linux Kernels. Der Unterschied liegt darin, dass Speicher und Prozessoren von Mobiltelefonen meist viel kleiner und weniger Leistungsfähig sind als bei Desktops, Notebooks oder Servern. Der Umfang der Software für Smartphones ist kleiner als z.B. beim Desktop und speziell auf die Telefonie ausgerichtet.

Prinzipiell besteht ein Android-System aus mehreren Schichten:

  • Der Bootloader ist vergleichbar mit einem BIOS im Desktop Computer. Dort werden grundsätzliche Funktionen wie Speicherzugriffe oder Telefonie Verbindungen bereitgestellt.
  • Optional gibt es eine Recovery Partition, welche neben der Sicherung des Gerätes auch die Einspielung von System, Google Apps, Root Zugriff und weiterem garantieren kann.
  • Das System selbst, die ROM, ist zunächst seitens des Herstellers vorhanden. Dies enthält seitens der Hersteller auch den
  • App Store. Sehr verbreitet ist hier der Google Play Store. Es gibt jedoch auch weitere. Besonders möchte ich hier F-Droid nennen.

Flashen

Das Flashen (Neu bespielen des Speichers) selbst will gut vorbereitet sein und passiert bei allen Geräten mit ähnlichen/gleichen Vorgehensweisen.

  • Datensicherung (Backup) des bestehenden Geräts
  • Entsperren des Bootloaders
  • Aufspielen der Recovery-Partition
  • Aufspielen des neuen Systems (Custom ROM)
  • evtl. Aufspielen von OpenGApps
  • Einrichten und Einstellen des Systems (evtl. mit Hilfe des Backups)

Resultat

Als Ergebnis haben gibt es normaler Weise ein schnelles System ohne zusätzliche Apps des Herstellers oder Anbieters. Es kann zudem viele Einstellungen ermöglichen, die vorher Originalsystem nicht vorhanden waren.