[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:sudo: Root-Rechte] [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Packprogramme: Archive entpacken] }}} [[Inhaltsverzeichnis()]] [[Bild(./heimdall-logo.png, 64,left)]] [https://glassechidna.com.au/heimdall/ Heimdall] {en} ist ein von der australischen Firma [https://glassechidna.com.au Glass Enchida] {au} entwickeltes Werkzeug, um Samsung-Handys und Tablets mit [wikipedia:Firmware:] (auch ROMs genannt) zu flashen, z.B. zum [wikipedia:Debranding:Debranding], Verwenden aktuellerer Android-Versionen, speziell angepasster ROMS oder [#Rooten "Rooten"] von Geräten, aber auch zur Wiederherstellen des Ursprungszustand. Es stellt eine vollwertige Open-Source-Alternative zum "halboffiziellen" Windows-Programm [https://samsungodin.com Odin] {en} dar, und kann unter Linux, Mac oder Windows eingesetzt werden. Das Programm ist in [:Qt:Qt4] geschrieben, und bietet neben den Flashen auch die Möglichkeit, eigene Heimdall-Firmware-Pakete von Custom-ROMs oder einzelner Teile (z.B. '''recovery.img'''-Dateien) zu erstellen. Heimdall steht unter der [wikipedia:MIT-Lizenz:]. Der Name 'Heimdall', eine nordische Gottheit und Wächter der [wikipedia:Bifröst_(Mythologie):Bifröst-Brücke], wurde in Analogie zu Odin, dem Namen des Samsung-Programms gewählt. Das Programm ist nicht mit [packages:heimdal:] zu verwechseln, es besteht keinerlei Verbindung dazu! {{{#!vorlage Warnung Das Flashen stellt immer ein erhebliches potentielles Risiko dar! Daher vorher sehr genau prüfen, ob das gewählte ROM oder die Image-Dateien für das eigene Gerät geeignet sind; bei Fehlverwendung drohen ggf. schwerwiegende Schäden. Die Verwendung geschieht daher auf eigene Gefahr; mit dem Einsatz erlöschen z.B. die Garantieansprüche an den Geräte-Hersteller! Offizielle Software-Updates sind dann nicht mehr bzw. nur nach Herstellung des Ursprungszustand möglich. Der Entwickler lehnt jegliche Verantwortung und Haftung bei Problemen ab. }}} = Funktionsweise = Heimdall verbindet sich über einen USB-Anschluss mit dem Gerät und interagiert mit der "Loke"-Software auf dem Gerät. Loke und Heimdall kommunizieren über das Samsung-eigene sogenannte "Odin-Protokoll", verwendet wird die Open-Source-Bibliothek [https://libusb.info libusbx] {en}. Das Programm kann mit einer Benutzeroberfläche oder als Kommandozeilenversion verwendet werden, ggf. sind Rootrechte[1] (wie in einigen anderen Anleitungen angegeben) zur Verwendung erforderlich, falls es ohne sie zu Problemen kommt. Offiziell ist das Programm vom Entwickler für die Samsung-Geräte GT-I9000, GT-I9100[T], GT-I9300, GT-I9505, SGH-I727, SGH-I777, SGH-I927 und SGH-I797 getestet, es funktioniert aber für eine Vielzahl weiter Galaxy-Geräte; für diesen Artikel wurde beispielsweise ein Galaxy Tab 3 7.0 SM-T211 erfolgreich geflasht. Heimdall wird vom Entwickler gegenüber Odin als sehr verlässlich und schnell beschrieben. Natürlich bestehen auch bei der Verwendung von Heimdall Risiken. So ist die kontinuierliche Stromversorgung des Rechners wie des Gerätes unabdingbar (nur bei vollem Akku einsetzen!). Neben versehentlicher Unterbrechung der USB-Verbindung und der Tatsache, dass einige Samsung-Geräte etwas unzuverlässige USB Control Software verwenden, treten die meisten Probleme aber durch Verwendung beschädigter USB-Ports oder schadhafter und/oder Billig-USB-Kabel auf. Fehlgeschlagenen Flash-Versuche, die in sogenannten "soft [wikipedia:Brick_(Elektronik):bricks]" enden, lassen sich meist einfach reparieren, oft schon mit einem neuen Versuch. Sogenannte "hard bricks" (als Resultat eines Benutzer-Fehlers, wie z.B. durch das Flashen mit einem inkompatiblen Bootloader), sind technisch zwar meist auch wieder behebbar, allerdings oft nur mit erheblich höherem Aufwand, ggf. auch nur über zertifizierte Samsung-Fachwerkstätten. = Installation = Heimdall ist in den offiziellen Ubuntu-Quellen vorhanden. Folgende Pakete[2] werden benötigt: {{{#!vorlage Paketinstallation heimdall-flash heimdall-flash-frontend }}} = Bedienung = {{{#!vorlage Warnung Vor jedem Einsatz von Heimdall sollte unbedingt ein komplettes Backup des Geräte-Dateisystems erstellt werden! }}} Der Rechner wird via USB-Kabel nach Aufruf des Download-Modus mit dem Samsung-Gerätes verbunden. Die Methode kann von Gerät zu Gerät unterschiedlich sein, beim getesteten Gerät wird er über das gleichzeitige Gedrückthalten der Power-, Volume-down- und Home-Taste am Gerät erreicht, diese müssen gehalten bis der erste Startbildschirm erscheint. Der Download-Modus kann, wenn [:adb:] installiert ist, auch über den undokumentierten adb-Befehl {{{#!vorlage Befehl adb reboot download }}} gestartet werden. [[Bild(./heimdall-GUI-load-package.png, 350, right)]] == GUI == Die Benutzeroberfläche wird im Terminal [3] mit dem Befehl {{{#!vorlage Befehl heimdall-frontend }}} aufgerufen, ggf. mit vorgestellten `gksu`; eine andere Startmöglichkeit ist nicht vorgesehen. In der sich öffnenden Oberfläche (in englischer Sprache) sind vier Reiter vorhanden: ''"Load Package"'' (ein bereits vorhandenes Heimdall-Firmware-Paket laden), ''"Flash"'', ''"Create Package"'' (ein Firmware-Paket erstellen), und ''"Utilities"'' (Werkzeuge). === Verwendung von Heimdall-Firmware-Paketen === Die einfachste Art, ein Gerät mit einer neuen Firmware zu versehen ist die Verwendung eines passenden Heimdall-Firmware-Packages, was man mit etwas Glück im Internet finden und herunterladen kann. Diese Pakete sind technisch betrachtet Archiv-Dateien (Endung '''.tar.gz'''), die aber nicht händisch entpackt werden. Im Reiter ''"Load Package"'' via ''"Browse"'' das Paket suchen, das Archiv wird dann automatisch entpackt, im Fenster werden die Daten angezeigt. Dabei genau überprüfen, ob das eigene Gerät unter ''"Supported Devices"'' aufgeführt ist, ansonsten den Vorgang sofort abbrechen! Im Abschnitt ''"Package Files"'' werden die verwendeten Dateien aufgelistet. Wenn alles in Ordnung ist, ''"Load/Customise"'' betätigen, damit wird in den ''"Flash"''-Reiter gewechselt. Weiteres Vorgehen s.u. unter [#Flashen Flashen]. [[Bild(./heimdall-GUI-utilities.png, 350, right)]] === PIT === Um die GUI ohne ein fertiges Paket verwenden zu können, ist eine [https://www.droidviews.com/need-know-samsung-pit-files/ PIT-Datei] {en} ('''P'''artition '''I'''nformation '''T'''able) nötig, die die Informationen zu den zu verwendenden Partitionen und zugehörigen Dateinamen bereitstellt. Ggf. kann man auch diese im Internet finden und herunterladen; via ''"Browse"'' aufrufen, sie wird dann geladen. Eine PIT-Datei lässt sich aber auch aus dem eigenen Gerät auslesen. Dazu in den Reiter ''"Utilities"'' wechseln, dann das Gerät im Download-Modus anschließen und über ''"Detect"'' aufrufen. Unter ''"Save as"'' den gewünschten Speicherort auswählen und einen Namen eingeben (z.B. den die Gerätekennung mit angehängtem Datumsformat, also etwas wie `SM-T211(3G)20170922`). Mit ''"Download"'' wird dann eine PIT-Datei erstellt und am angegebene Ort abgespeichert. Über ''"Print PIT -> Print"'' wird je nach Auswahl die PIT-Information des angeschlossenen Geräts (''"Device"'') oder einer ausgewählten Datei (''"Local File"'') via ''"PIT File -> Browse"'' im ''"Output"''-Fenster ausgegeben. Die zum Flashen relevanten Informationen zu den einzelnen Einträgen ("`--- Entry #X ---`") finden sich in den Zeilen `Partition Name` und `Flash Filename`; sie sind wichtig, wenn kein Heimdall-Paket greifbar ist, sondern andere Stock- oder Custom-ROMs verwendet werden sollen. === Verwenden anderer ROM-Dateien === Leider sind nur für wenige Samsung-Geräte Heimdall-Pakete greifbar. Es lassen sich aber auch für Odin konzipierte Archive einsetzen. Dazu müssen diese Archive (oft mit der Endung '''.tar.md5''') in einen Ordner entpackt[4] werden, ebenso alle eventuell enthaltenen "Unterarchive". Falls das Packprogramm das Archiv-Format nicht erkennt, kann die Datei schlicht umbenannt und dabei die '''.md5'''-Endung entfernt werden. Die einzelnen Dateien werden dann im ''"Flash"''-Reiter händisch der passenden Partition zugeordnet (Informationen zur richtigen Zuordnung liefert die PIT-Datei, s.o. unter [#PIT PIT]). So lässt sich mit der passenden Original-Firmware auch wieder der Ursprungszustand herstellen (wichtig ggf. für Garantieleistungen,). Eventuell in den Archiven vorhandene [https://www.droidwiki.org/wiki/Samsung/Consumer_Software_Customisation CSC-Codes] {de} sollten dabei zuletzt entpackt werden. Eine Datei '''SS_DL.dll'''-Datei kann ignoriert werden, sie enthält Steuerungsanweisungen für Odin. [[Bild(./heimdall-GUI-flash.png, 350, right)]] === Flashen === Das eigentliche Flashen wird im Reiter ''"Flash"'' durchgeführt. Die verwendeten Dateien werden bei Einsatz eines Heimdall-Firmware-Pakets direkt angezeigt, bei anderen ROMS müssen sie einzeln aufgerufen und eingefügt werden. Dazu im Abschnitt ''"Partition Details"'' die zu verwendenden Partitionsnamen im Dropdown-Menü unter ''"Partition Name"'' auswählen, via ''"Browse"'' die passende Datei aus dem entpackten Archiv zuordnen und mit ''"Add"'' (unter dem Abschnitt ''"Partition (files)"'') bestätigen; diesen Vorgang für alle verfügbaren Dateien des ROMs wiederholen. Dabei ist größte Sorgfalt vonnöten, damit es zu keinen Fehlzuordnungen kommt! Eine ggf. falsch zugeordnete Partition kann aber in der Liste per [[Vorlage(Tasten, rmt)]]-Klick ausgewählt und mit der ''"Remove"''-Schaltfläche wieder entfernt werden. Die Checkbox ''"Repartion"'' sollte nur aktiviert werden, wenn tatsächlich eine neue PIT erstellt werden soll; das führt allerdings in jedem Fall zu einem vollständigen Löschen aller Daten! ''"No Reboot"'' kann verwendet werden, wenn das Gerät nach Beenden des Flash-Vorgangs nicht direkt neu gebootet werden soll, sondern z.B. zunächst im Recovery-Modus weitere Veränderungen (Entpacken von SuperUser-Apps o.ä.) vorgenommen werden sollen. Die weitere Option ''"Resume (use after No Reboot)"'' kann mit der ersten gemeinsam verwendet werden, wenn direkt aus Heimdall heraus weitere Flash-Vorgänge vorgenommen werden sollen. Wenn nötig, können hier noch Veränderungen an den Dateizuordnungen vorgenommen werden (z.B. wenn einem Standard-Rom eine anderer Recovery-Methode zugefügt werden soll). Allerdings sollte man genau wissen, was man tut, wenn man Image-Dateien bearbeitet, oder Dateien aus unterschiedlichen ROMs "mischt"! Partitionen, die nicht angegeben werden, bleiben unverändert erhalten. Der eigentliche Flash-Vorgang wird dann mit Starttaste ausgelöst; im Status-Abschnitt kann man den Fortschritt beobachten; ggf. werden Fehlermeldungen o.ä. ausgegeben. Nach Abschluss startet das Gerät im Regelfall von selbst mit der neu installierten Firmware, das kann ein paar "Bootversuche" beinhalten und auch etwas länger dauern. [[Bild(./heimdall-GUI-create-packages.png, 350, right)]] === Eigene Heimdall-Firmware-Pakete erstellen === Neben dem Flashen kann auch ein eigenes Firmware-Paket erstellt werden. Der entsprechende Reiter ''"Create Package"'' ist erreichbar, sobald im Flash-Reiter mindestens eine Partition eingefügt wurde. Dort müssen die Angaben zum ''"Firmware Name"'', ''"Firmware Version"'', ''"Platform Name"'', und ''"Platform Version"'' gemacht werden. Die Angabe eines Namens in ''"Developer Info"'' ist ebenfalls nötig. Besonders sorgfältig sollten die Angeben zu ''"Device Info"'' gemacht werden, damit eindeutig ist, für welche Geräte das Paket verwendbar ist. Die Angabe einer Webseite hingegen ist optional. Die ''"Build"''-Schaltfläche wird erst nutzbar, wenn alle geforderten Eingaben gemacht wurden. Heimdall erstellt dann eine Archivdatei, die neben den verwendeten Dateien auch eine zum Gerät passende PIT-Datei und eine '''firmware.xml'''-Datei enthält, die Informationen zu den Dateien des Pakets enthält. == Kommandozeilenversion == Wesentlich schneller ist die Verwendung von Heimdall als Kommandozeilenwerkzeug, da z.B. nicht extra eine PIT-Datei erzeugt werden muss. Die allgemeine Syntax sieht so aus: {{{#!vorlage Befehl heimdall BEFEHL --OPTION }}} {{{#!vorlage Tabelle <-3 rowclass="titel"> Heimdall Kommandozeilenversion +++ Befehl mögliche Optionen Funktion +++ `close-pc-screen` `--no-reboot, --resume` "connect phone to PC"-Bildschirmmeldung verhindern +++ `detect` Gibt aus, ob ein Gerät im Download-Modul erreichbar ist oder nicht. +++ <|2 (>`flash` `--PARTITIONSNAME DATEINAME ..., --PARTITIONS-IDENTIFIER DATEINAME ..., --pit DATEINAME, --no-reboot, --resume` <|2 (> Flasht eine oder mehrere Firmware-Dateien auf das Gerät. Partitionsnamen (oder Identifiers) können durch Ausführen des `print-pit`-Befehls in Erfahrung gebracht werden. Wenn `--repartition` gewählt wurde, muss eine PIT-Datei angegeben werden, außerdem ist es besonders wichtig, dass alle verfügbaren Dateien angegeben werden, da das ganze System gelöscht wird und nicht auf bereits vorhandene Partitionen zurückgegriffen werden kann. +++ oder: `--repartition --pit DATEINAME, --PARTITIONSNAME DATEINAME ..., --PARTITIONS-IDENTIFIER DATEINAME ..., --no-reboot, --resume` +++ `print-pit` `--file DATEINAME, --no-reboot` Gibt den Inhalt einer PIT-Datei in lesbarem Format aus. Ohne Dateinamen bezieht Heimdall die PIT-Datei aus dem angeschlossenen Gerät. }}} Wenn die Option `--no-reboot` verwendet wird, bleibt das angeschlossenen Gerät im Download-Modus; weitere Aktionen müssen dann mit der `--resume`-Option verwendet werden. Ein manuelles Ausführen eines Reboots ist aber auch nach Angabe der `--no-reboot`-Option gefahrlos möglich. Zusätzlich sind für die angegebenen Befehle die Optionen `--verbose, --stdout-errors` und `--usb-log-level ` verwendbar, um zusätzliche Informationen zu erhalten, Fehler auszugeben und das USB-Log-Level festzulegen. === Rooten === Um ein Gerät zu Rooten, muss auf dem Rechner eine für das Gerät passende Wartungsmodus-Datei ('''recovery.img''') entpackt vorliegen, z.B. von [https://twrp.me/about/ TWRP] {en}. Nach Anschluss des Gerätes im Download-Modus und Wechsel in das entsprechende Verzeichnis reicht der Befehl {{{#!vorlage Befehl heimdall flash --RECOVERY recovery.img --no-reboot }}} um den neuen Wartungsmodus zu installieren. Dann das Gerät in dem - jetzt neu erstellten - Recovery-Modus starten und darüber die entsprechende SuperUser-Datei/App installieren. == Hilfe und Information == Das Programm beinhaltet keine [:Manpage:]; eine ausführliche Beschreibung in englischer Sprache ist aber in der Datei '''/usr/share/doc/heimdall-flash/README.gz''' vorhanden; alternativ auch [gitlab:BenjaminDobell/Heimdall/blob/master/Linux/README:online] {en} abrufbar. Für die Kommandozeilenversion liefert {{{#!vorlage Befehl heimdall help }}} eine Übersicht über die verwendbaren Optionen, der Befehl `heimdall info` gibt Näheres zu dem Projekt aus, `heimdall version` die Versionsnummer. = Alternativen = * Mit [:adb:] und [:fastboot:] aus dem Android SDK lassen sich ebenfalls Android-Geräte warten und flashen * Unter Linux kann ggf. Odin unter [:Wine:] verwendet werden, Bewertungen auf [https://appdb.winehq.org/objectManager.php?sClass=application&iId=12198 winehq.org] {en}. * Das offizielle Samsung-Programm [https://www.samsung.com/de/support/kies/ Kies] {de} scheint unter Wine allerdings nicht verwendbar zu sein (siehe [https://appdb.winehq.org/objectManager.php?sClass=application&iId=11998 diese Bewertungen] {en} auf winehq.org). * Für Geräte mit MTK-Chip kann das [:Ubuntu_Touch/flash_tool:flash_tool] verwendet werden, für [:Ubuntu_Touch:] sollte der [:Ubuntu_Touch/UBports Installer:UBports Installer] eingesetzt werden. = Links = * [gitlab:BenjaminDobell/Heimdall:Heimdall] {en} auf GitLab * [https://www.androidpit.de/forum/505014/flashen-mit-linux-heimdall Flashen mit Linux Heimdall] {de} - Beitrag auf androidpit.de * [youtube:v=6TgyaUbjcm4:Video-Tutorial] {en} auf youtube.com * [https://www.sammobile.com/firmwares/ SamMobile] {en} Quelle für z.B. etliche Samsung-"Stock"-ROMs, mit denen Handys wieder in der Ursprungszustand versetzt werden können - zum Download ist eine kostenlose Registrierung notwendig! * [https://xda-developers.com/ xda-developers] {en} - Großes Portal rund um Handy, PDAs etc. pp., Quelle für etliche Custom-ROMs #tag: Hardware, Android, Kommunikation,