[Anleitung] Wie flasht man eine GSI auf (fast) jedes Smartphone

  • 2 Antworten
  • Neuester Beitrag
Diskutiere [Anleitung] Wie flasht man eine GSI auf (fast) jedes Smartphone im Android Allgemein im Bereich Betriebssysteme & Apps.
PurpleZ

PurpleZ

Ambitioniertes Mitglied
Ich möchte hier einen kleinen Guide schreiben für User die ein altes Smartphone besitzen
oder dessen Smartphone keine Updates mehr erhält.

Das Zauberwort heißt hier entweder:
ROM = Für das Smartphone speziell angepasstes Image zum flashen.
GSI = Generic System Image, auch eine Image die aber für (fast) alle Smartphones funktioniert.

Wie ist GSI überhaupt möglich?

Ab Android 8.1 Oreo hat man die sogenannten "Vendor" Partition eingeführt, auf welcher sich Informationen
Des Smartphones befinden und untere anderem die Treiber für alle Komponenten des Smartphones z.b. Kamera.

vendor.png

D.h. um kleinere Updates zu erhalten musste man früher das gesamte Betriebssystem updaten, wie man in der Grafik sehen kann. Außerdem musste sich darum der Hersteller kümmern weswegen man quasi fast nie Updates erhielt.

Also hat man alle Smartphone relevanten Informationen auf die Vendor Partition ausgelagert und konnte somit viel schneller und effektiver das Betriebssystem updaten.
Und zwar bekommt man ab jetzt mit Android 8.1 die Sicherheitsupdates direkt von Google und nicht mehr vom Hersteller. Für mehr Infos -> Generic System Images | Android Open Source Project

Fast zeitgleich wurde durch die Community das "Project Treble" ins leben gerufen, welches es jetzt ermöglicht durch eine separate Vendor Partition, ein freies Android Betriebssystem zu erschaffen für jedes Smartphone, dass Android Open Source Project, kurz AOSP.

Die Programmierer müssen sich jetzt nicht jedes mal mit den technischen Details eines Smartphones beschäftigen, sondern programmieren ein Android OS.
Hauptverantwortlich für das Project Treble ist der User phhusson

Das Project Treble ist so populär das sich bereits zahlreiche Gruppen gefunden haben und Ihr eigenes Android OS zu programmieren mit zum teil genialen Features.

Android Projekte: TrebleGSI • LineageOS • BlissROMs • crDroid • PixelExperience • ION • neon-OS • Havoc-OS • Evolution-X • LiquidRemix • ExtendedUI • ABC Rom • GrapheneOS • SyberiaOS

Wie bekomme ich nun ein aktuelles Android? (Bootloader entsperren)

Bevor wir anfangen überprüft bitte mit der Treble App, ob Ihr eine GSI auf eurem Gerät installieren könnt.
Treble Info – Apps bei Google Play

treble_info_no.PNG
Das Smartphone ist zu alt, Ihr benötigt mindestens 8.1 (Oreo), empfohlen ist Android 9 (Pie)

treble_info_yes.PNG
Ihr könnt weitermachen und der Anleitung folgen. Erstellt euch bitte ein Screenshot da diese angezeigte Info wichtig ist.

Der Ablauf ist (fast) immer der gleiche, mit kleineren Änderungen je nach Hersteller. Der erste Schritt ist immer den Bootloader zu entsperren. Der Bootloader (ähnlich wie eine BIOS am PC) startet nicht nur das Smartphone, man kann hier bestimmte Sachen konfigurieren oder Markierungen (flags) setzen das etwas mit gestartet werden soll.

In den Bootloader gelangt man durch eine Tastenkombination, entweder POWER + LAUTSTÄRKE Hoch (+) … oder POWER + LAUTSTÄRKE Runter (-). Je nach Hersteller kann der Bootloader auch anders aussehen, aber in den meisten Fällen sieht man Text.

bootloader-gesperrt.png

Das Smartphone befindet sich jetzt im sogenannten Fastboot Mode, d.h. man kann über den PC bestimmte Befehle absetzten die mit der Schnittstelle des Smartphones kommuniziert, die sogenannte Android Debug Bridge (adb).
Mehr Infos: Android Debug Bridge (adb) | Android Developers

Früher war es möglich bereits hier das Smartphone zu entsperren, da das aber nicht sicher ist wurden diverse Sicherheitselemente hinzugefügt.

Also muss man das Smartphone neu starten und bootet wieder in das Android System. Hier geht man in die Einstellungen und in die Systeminfos, hier gibt es die Build Number auf die man mehrmals drücken muss um den Entwicklermodus zu öffnen.

build_number.PNG
Jetzt befindet sich wieder in den Systemeinstellungen der Entwicklermodus.

entwicklermodus.jpg
In den Entwickleroptionen aktiviert man jetzt den OEM-Unlock und ebenfalls das USB-Debugging

oem-Unlockpng.png
Jetzt kann man das Smartphone entsperren. Da wir das USB-Debuggin aktiviert haben können wir bereits jetzt dem Smartphone Befehle senden. Man verbindet das Smartphone mit dem PC.
Jetzt brauchen wir am PC ein kleines Programm mit dessen Hilfe man die Befehle senden kann.
Dafür benötigt man (auch später) das ADB Tool.

Für Windows:
- Xda Tool: [OFFICIAL][TOOL][WINDOWS] ADB, Fastboot and Drivers - 15 seconds ADB Installer v1.4.3
- Von Chip Minimal ADB and Fastboot

Für Linux:
Code:
sudo apt-get install android-tools-fastboot
ODER
Code:
sudo add-apt-repository universe && sudo apt-get update && sudo apt-get install android-tools-adb android-tools-fastboot
Nach der Installation öffnet man das Programm (Verknüpfung auf dem Desktop oder im Linux öffnet man die Terminal Anwendung und gibt folgendes ein:
Code:
adb reboot bootloader
Das Smartphone befindet sich jetzt im Bootloader und in dem Fastboot Modus. Jetzt kann man Befehlen an das Smartphone senden.

Für Windows benötigt man noch einen fastboot Treiber. Leider gibt es hier einen kleinen Stolperstein, es gibt keinen einheitlichen Fastboot Treiber. Das ist auch logisch, da es verschiedene Prozessor Typen gibt (Snapdragon, Mediatek etc.). Auf Linux hat man das Problem meistens nicht.

ACHTUNG! Da man unter Windows einen Treiber installiert, muss man die Windows Treiber Signatur deaktivieren!
Man gehe dazu in die "Einstellungen" -> "Update und Sicherheit" -> "Wiederherstellung" -> "Erweiterter Start"
Unter den "Erweiterten Optionen" finden man nun die "Starteinstellungen". Über den Button "Neu starten" werden alle verfügbaren Starteinstellungen nach wenigen Sekunden angezeigt. Wähle die Option "Erzwingen der Treibersignatur deaktivieren" über die Taste [F7]


windows-10-starteinstellungen-2.jpg

Windows (Treiber):
- Get the Google USB Driver | Android Developers
- Falls dieser nicht funktioniert, empfehle ich das kleine Tool Zadiag (Zadig - USB driver installation made easy), es erkennt den benötigten Treiber und installiert diesen sofort… aber im Geräte Manager muss man den Treiber noch auf ADB umstellen (siehe Bild)

USB_ADB_Treiber.jpg

Ab hier hat man nun alle Vorrausetzungen um den Bootloader zu entsperren, theoretisch zumindest!
Ich betone das extra, da viele Hersteller eine andere Entsperr-Methode haben.

- Bei Xiaomi kann man mit dem separaten Programm Xiaomi Mi Unlock Tool nach einer bestimmten Wartezeit (1 Woche) erst den Bootloader entsperren
- Bei Sony z.b. muss man auf einer Webseite mit seiner IMEI Nummer einen Entsperrcode anfordern!

Das heißt, informiert euch vorher, wie Ihr euer Gerät entsperren könnt!

Wenn der Treiber korrekt installiert wurde, könnt Ihr das mit folgendem Code überprüfen
Code:
fastboot devices
fastboot devices.jpg

Falls hier nichts erscheint oder es steht (waiting for device), seit Ihr entweder nicht im fastboot Modus mit dem Smartphone oder es ist der falsche Treiber installiertam PC.

Im normal Fall geht es jetzt mit dem folgendem Code weiter:
Code:
fastboot flashing unlock
ODER
Code:
fastboot oem unlock
fastboot flashing unlock.jpg

Je nach Hersteller kann es auch sein, das Ihr jetzt etwas am Smartphone bestätigen müsst, eine Meldung o.ä.
Hier mal ein Bild.

unlock_message.jpg

Aus Sicherheitsgründen wird nun die userdata Partition gelöscht auf der alle Benutzerdaten (wie Apps, Handyummern, Profile etc.) sind.

Glückwunsch das Gerät ist nun entsperrt.
Jetzt haben wir Zugriff auf die Partitionen!

Wie flasht man die GSI? (Android GSI flashing)

Da jetzt der Bootloader entsperrt ist, hat man Zugriff auf das gesamte System. An dieser Stelle sei eine Warnung ausgesprochen, man kann sein Smartphone zerstören (bricken). Ein gebricktes Smartphone kann man nur noch in die Tonne schmeißen, falls es sich noch anschalten lässt kann mit einer originalen Image Datei des Herstellers meistens das Gerät retten (stock Image).

Es gibt viele Partitionen, die uns aber nicht alle interessieren, es sei nur gesagt das es meistens (je nach Hersteller), eine Partition für die IMEI gibt, eine auf der die Modem Geräte hinterlegt sind, eine Recovery Partition mit der man das Gerät auf Werkszustand setzt, diverse Cache Partitionen u.v.m.
Das ist ebenfalls je nach Hersteller anders und können zum Teil auch andere Namen haben.

Uns interessiert aber im einzelnen nur die, System, Data(+sdcard) und Recovery Partition.

In der am Anfang geprüften Treble Tauglichkeit, haben wir erfahren was wir für eine Image brauchen, je nach Prozessor Architektur anders. Je nach Prozessor Architektur ergeben sich nun folgende Möglichkeiten:

arm, a64 (arm32_binder64) oder arm64

Danach kommt der Buchstabe für die Partitionsbezeichnung, wenn man eine Vendor Partition hat benötigt man a/b, wenn man keine hat benötigt man nur a.

b = a/b
a = a-only

Danach kommt der Indikator für Google oder ohne Google (Vanilla)

g = gapps
o = gapps-go
v = vanilla (keine Gapps)
f = floss (reine Open Source Apps F-Droid)

Und zu letzt noch ob mit root oder ohne root:

N = kein superuser
S = mit superuser
Z = dynamischer superuser

In unserem Beispiel (das Treble Bild ganz oben), benötigen wir also ein arm32 mit 64bit OS, also binder-64 und der a only Partition. (Hier gibt es eine Besonderheit, wenn man ein Prozessor arm32 mit binder64 hat benötigt man die a64 Version, z.b.

bless-v306-210502-arm-aoZ.img.xz
system-arm-aonly-vanilla-nosu-userdebug.img

Die meisten werden aber ein arm64 haben, also: XYZ-arm64-bvZ.img

Also lädt man sich eine GSI Image:
Treble-Enabled Device Development A/AB ROMS

Und befindet sich im Smartphone im fastboot Modus und hat am PC/Linux den Terminal offen, jetzt führt man folgende Befehle aus:
Code:
fastboot format data
Code:
fastboot format system
Falls format nicht klappt, kann man auch erase nehmen.
Jetzt flashen wir die GSI Image: fastboot flash <Partition> /pfad/zur/datei.img

Code:
fastboot flash system /pfad/zur/datei.img
flash_gsi.jpg

Glückwunsch jetzt nur noch reboot ins System und Ihr seht vor euch das neue Android System!
Code:
fastboot reboot
 
Zuletzt bearbeitet:
N0rd

N0rd

Neues Mitglied
Vllt. auch für andere Interessant - hab mich mal extra dafür angemeldet 😇
Ist ein Gerät mit a64 (arm32_binder64) auch in der Lage ein reines 32bit build zu starten? Also arm anstatt a64?

Hintergrund ist dass ich ein a64_a-only habe und auf XDA aktuellere Android 10/11 Images kaum noch in der Kombi a64_a gebaut werden, jedoch noch in arm_a verfügbar sind.

Bonusfrage: Falls ja, wäre es dann (bei älteren Geräten mit <2GB Ram) nicht ratsam eher bei arm Images anstatt a64 zu bleiben da 64bit Software in der Regel einen höheren Speicherbedarf hat?

Cheers,
Nord
 
PurpleZ

PurpleZ

Ambitioniertes Mitglied
Ich bin mir nicht zu 100% Sicher, aber ich glaube das geht auch!
Dazu müsste man es einfach mal versuchen, es kann nichts schief gehen außer das es nicht startet :)