Posts mit dem Label Galaxy Nexus werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Galaxy Nexus werden angezeigt. Alle Posts anzeigen

16. Juni 2013

Galaxy Nexus: CyanogenMod flashen

In diesem Artikel soll erläutert werden, wie es möglich ist, das Android-CustomROM "CyanogenMod" auf dem Smartphone "Samsung Galaxy Nexus" zu installieren. Hierfür ist ein Gerät notwendig, dessen Bootloader entsperrt wurde und auf dem der alternative Recovery-Modus "ClockworkMod Recovery" installiert wurde. Außerdem muss auf dem PC von dem aus die Installation durchgeführt werden soll, das Tool adb installiert sein. Die hierfür notwendigen Schritte wurden in diesem Blog bereits im Rahmen dieses Artikels beschrieben.

Zunächst muss die zu installierende Version des CustomROMs von der offiziellen Download-Seite heruntergeladen werden. Die CyanogenMod-Versionen, die für die Installation auf einem Galaxy Nexus vorgesehen sind, tragen dabei den Namen "maguro". Man hat hierbei die Wahl zwischen sogenannten Nightly-Builds, die ihrem Namen entsprechend täglich aktualisiert werden und stets dem aktuellen Entwicklungsstand entsprechen, oder den sogenannten Release Candidates, die in größeren Zeitabständen veröffentlicht werden und dementsprechend einen stabileren Entwicklungsstand garantieren. Die Nightly-Builds sind unter dieser Adresse verfügbar, während die Release Candidates unter dieser Adresse heruntergeladen werden können.

Die Download-Seite für die RC-Versionen von CyanogenMod "magura" (Klicken zum Vergrößern)

Außerdem sollten auch die Google-Apps heruntergeladen werden, die üblicherweise auf einem Android-Smartphone vorinstalliert sind. Aus lizenzrechtlichen Gründen sind diese nicht in dem Cyanogenmod-Download enthalten und müssen separat von der Seite http://goo.im/gapps bezogen werden. Zum Zeitpunkt der Verfassung dieses Artikels (16. Juni 2013) war die aktuelle Version der Apps unter diesem Direktlink verfügbar.

Nach dem Herunterladen der Dateien sind folgende Schritte notwendig um die jeweilige CyanogenMod-Version inklusive der Google-Apps auf dem Smartphone zu installieren. Dabei ist jedoch zu beachten, dass alle Daten, die auf dem Gerät gespeichert sind, verloren gehen!
  1. Zunächst muss das Galaxy Nexus durch gleichzeitiges Halten der beiden Lautstärke- und der Power-Taste in den sogenannten Bootloader-Modus neugestartet werden.
  2. Über die Lautstärke-Tasten navigiert man nun zu der Option "Recovery mode", welche über Drücken der Power-Taste ausgewählt werden kann.
  3. Es sollte das Hauptmenü von ClockworkMod Recovery sichtbar werden, das wie bereits ewähnt auf dem Gerät installiert sein muss. Über die Lautstärke-Tasten navigiert man zu dem Eintrag "wipe data/factory reset" und bestätigt die Auswahl über die Power-Taste. Die erscheinende Sicherheitsabfrage bestätigt man ebenfalls auf diese Weise mit "Yes". Dadurch werden alle Daten auf dem Gerät gelöscht.
  4. Das Gerät muss nun über ein MicroUSB-Kabel mit dem PC verbunden werden. Über den folgenden Befehl kann überprüft werden, ob das die Verbindung korrekt hergestellt werden konnte. In diesem Fall sollte die Seriennummer des angeschlossenen Smartphones ausgegeben werden.
     adb devices  
    
  5. Nun müssen die zuvor heruntergeladenen Dateien auf das Smartphone kopiert werden. Dies geschieht am einfachsten über die folgenden beiden Konsolenbefehle aus dem jeweiligen Verzeichnis heraus. Die beiden Dateinamen müssen hierfür natürlich möglicherweise angepasst werden.
     adb push cm-10.1.0-RC5-maguro.zip /data/media  
     adb push gapps-jb-20130301-signed.zip /data/media  
    
  6. Damit die kopierten Dateien für die Auswahl im Recovery-Modus sichtbar werden, muss dieser neu gestartet werden. Dies ist über folgenden Befehl möglich.
     adb reboot recovery  
    
  7. Auf dem Smartphone, bzw. in dem Menü von ClockworkMod Recovery muss nun die Option "install zip from sdcard" und anschließend "choose zip from sdcard" gewählt werden. Das zip-Archiv, das die zu installierende CyanogenMod-Version enthält sollte auf diese Weise aus dem Verzeichnisbaum ausgewählt werden können. Es sollte sich dabei im Wurzelverzeichnis befinden. Nachdem die Auswahl mit "Yes" bestätigt wurde, wird das CustomROM auf das Gerät geflasht. Dabei kann es in manchen Fällen zu einem Fehler kommen, der "assert failed" lautet. In einem solchen Fall muss der am Ende dieses Artikels beschriebene Workaround angewendet werden um anschließend die Installation erneut durchzuführen.
  8. Analog zum vorherigen Schritt muss nun auch das zip-Archiv, das die Google-Apps enthält zur Installation ausgewählt werden.
  9. Abschließend kann im Hauptmenü von ClockworkMod Recovery die Option zum Neustart des Geräts gewählt werden, woraufhin die frisch installierte Android-Version gebootet wird.

Workaround bei Fehlermeldung "assert failed"


Bei der Installation der Cyanogenmod-Version kann es zu einem Fehler kommen, der etwa wie folgt lautet und zu einem Abbruch der Installation führt.

assert failed: getprop("ro.product.device") == "manduro" || getprop("ro.build.product")=="manduro" 

In einem solchen Fall muss eine Datei innerhalb des zip-Archivs, das zur Installation genutzt wird, modifiziert werden. Die folgenden Schritte zeigen wie hierfür vorgegangen werden muss:
  1. Zunächst muss das betroffene Archiv mit einer dafür geeigneten Anwendung, wie z.B. WinRAR unter Windows oder FileRoller oder ARK unter Linux, geöffnet werden ohne die den Inhalt zu entpacken.
  2. Die Datei /META-INF/com/google/android/updater-script muss nun mit einem Texteditor geöffnet werden.
  3. Die erste Zeile der Datei, bzw. der Text bis zu dem ersten Semikolon muss gelöscht werden. Es ist wichtig, dass hierbei auch das Semikolon entfernt wird. Anschließend muss die Datei gespeichert und das Archiv dadurch aktualisiert werden.
Das auf diese Weise modifizierte zip-Archiv muss anschließend wie bereits oben beschrieben auf das Smartphone kopiert werden, wo es über ClockworkMod Recovery installiert werden kann.

Galaxy Nexus: Rooten unter Linux

In der folgenden Anleitung sollen die Schritt erläutert werden um das Smartphone "Samsung Galaxy Nexus" unter einem Linux-System zu rooten um erweiterte Rechte zu erhalten. Voraussetzung hierfür ist, dass die Tools adb und fastboot zuvor installiert wurden. Die Schritte dieser Anleitung führen zur Löschung aller internen Daten auf dem Gerät. Da das Galaxy Nexus keine SD-Karte besitzt gehen dadurch alle gespeicherten Daten verloren!

Das Samsung Galaxy Nexus (Bildquelle: androidmag.com; Klicken zum Vergrößern)

Entsperren des Bootloaders


Der erste Schritt zum Rooten des Geräts ist das Entsperren des Bootloaders. Dies ist notwendig um anschließend einen alternativen Recovery-Modus installieren zu können.
  1. Das Gerät muss hierfür zunächst durch Halten beider Lautstärke-Tasten, sowie der Power-Taste in den Bootloader-Modus gestartet werden.
  2. Das Smartphone muss nun über ein MicroUSB-Kabel mit dem PC verbunden werden.
  3. Anschließend kann über eine Konsole auf dem Linux-System die korrekte Verbindung über folgenden Befehl überprüft werden. Falls eine korrekte Verbindung besteht, sollte die Seriennummer des Smartphones ausgegeben werden.
     sudo fastboot devices  
    
  4. Ist diese Bedingung erfüllt, so kann in diesem nächsten Schritt der folgende Befehl eingegeben werden um den Bootloader zu entsperren. Um die Entsperrung zu bestätigen muss dabei die erscheinende Abfrage mit "Yes" beantwortet werden, indem über die Lautstärke-Tasten zu dem entsprechenden Menüpunkt navigiert wird und die Auswahl anschließend mit der Power-Taste bestätigt wird.
     sudo fastboot oem unlock  
    
  5. In dem nun erscheinenden Menü muss nun auf die selbe Weise über die Lautstärke-, bzw. der Power-Tasten, der Recovery-Modus ausgewählt werden. Es sollte nun das Android-Maskottchen auf dem Rücken liegend mit einem roten Warndreieck dargestellt werden. Über zufälliges Drücken der Lautstärke- und Power-Tasten sollte ein Menü sichtbar werden, über dieses dann die Option "wipe data/factory reset" gewählt und anschließend bestätigt werden muss (Hierdurch werden die Daten auf dem Gerät gelöscht).

ClockworkMod Recovery installieren


Wie bereits erwähnt muss im folgenden Schritt ein alternativer Recovery-Modus installiert werden, der erweiterte Modifikationen und das Installieren von Custom-ROMs erlaubt. In diesem Fall handelt es sich dabei um "ClockworkMod Recovery", dessen Installation in den folgenden Schritten erläutert wird:
  1. Zuerst muss das Gerät einmal mehr über das Halten der beiden Lautstärke- und der Power-Taste in den Bootloader-Modus gestartet werden.
  2. Anschließend nun der alternative Recovery-Modus "ClockworkMod Recovery" heruntergeladen und auf das Gerät gespielt werden. Die hierfür notwendige Datei ist unter diesem Link verfügbar.  Nach dem Download der Datei wechselt man per Konsole in das entsprechende Verzeichnis, in dem diese gespeichert wurde und führt folgenden Befehl aus um den Recovery-Modus auf dem Galaxy Nexus zu installieren.
     sudo fastboot flash recovery recovery-clockwork-5.5.0.4-toro.img  
    
  3. Nachdem angezeigt wird, dass das Flashen von ClockworkMod Recovery erfolgreich abgeschlossen wurde, kann das Gerät über den unten stehenden Befehl neu gestartet und das Android-Betriebssystem gebootet werden.
     sudo fastboot reboot  
    
  4. Um zu testen, ob Recovery-Modus korrekt installiert werden konnte, sollte das Gerät nun erneut, wie bereits beschrieben, in den Bootloader-Modus gestartet werden. In dem entsprechenden Menü wählt man dann die Option zum Starten des Recovery-Modus. Falls ClockworkMod Recovery erfolgreich installiert wurde, ist die über eine Ausgabe der installierten Version ersichtlich. Falls stattdessen der Stock-Recovery-Modus, bei dem der bereits beschriebene, auf dem Rücken liegende, Androide angezeigt wird geladen wird, wurde der installierte Recovery-Modus beim Starten des Betriebssystems überschrieben. In diesem Fall  muss der im Folgenden beschriebene Workaround angewendet werden um anschließend die vorherigen Schritte zur Installation von ClockworkMod Recovery erneut auszuführen.
Das Hauptmenü von ClockworkMod Recovery (Bildquelle: theunlockr.com; Klicken zum Vergrößern)

Überschreiben von ClockworkMod Recovery verhindern


Die folgenden Schritt sind nur notwendig wenn, wie zuvor beschrieben, die Installation des alternativen Recovery-Modus gescheitert ist, indem dieser durch das anschließende Booten des Android-Betriebssystems überschrieben wurde.

Falls ClockworkMod Recovery beim Starten von Android überschrieben wird, liegt das an der Datei /system/etc/install-recovery.sh, die beim Bootvorgang ausgeführt wird und dafür sorgt, dass der Stock-Recovery-Modus wiederhergestellt wird. Die folgenden Schritte stellen einen Workaround dar, durch den dieses Verhalten verhindert werden kann.
  1. Das Galaxy Nexus muss über das MicroUSB-Kabel mit dem PC verbunden werden. Dabei muss das Android-Betriebssystem regulär gestartet worden sein und in den Entwickleroptionen das USB-Debbuging aktiviert werden. Über folgenden Konsolenbefehl kann die korrekte Funktion der Verbindung überprüft werden. Der Befehl sollte als Ausgabe die Seriennummer des angeschlossenen Geräts anzeigen.
     adb devices  
    
  2. Anschließend muss folgender Befehl in der Linux-Konsole ausgeführt werden. Dadurch wird eine Shell gestartet über die sich auf das Gerät zugreifen lässt.
     adb shell  
    
  3. In dieser adb-Shell müssen nun nacheinander folgende Befehle ausgeführt werden, um die bereits erwähnte Datei install-recovery.sh in install-recovery.bak umzubenennen. Dadurch kann sie vom System nicht mehr gefunden und ausgeführt werden um den Stock-Recovery-Modus wiederherzustellen.
     su  
     mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system  
     chmod 755 /system/app  
     cd system/etc  
     mv install-recovery.sh install-recovery.bak  
     exit 
Die Installation von ClockworkMod Recovery kann nun nach den, im vorherigen Abschnitt "ClockworkMod Recovery installieren" bereits aufgeführten, Schritten erneut durchgeführt werden. Anschließend sollte die Installation auch nach erneutem Booten des Android-Betriebssystems erhalten bleiben.

Root-Rechte erlangen


Nachdem nun eine funktionierende Version von ClockworkMod Recovery auf dem Gerät vorhanden sein sollte, muss dieser alternative Recovery-Modus nun dazu genutzt werden, die Root-Rechte zu erlangen. Dieses Vorgehen wird durch die folgenden Schritte beschrieben.
  1. Zunächst muss das Tool "SuperSU" unter dieser Adresse heruntergeladen werden. Bei bestehender USB-Verbindung zu dem Galaxy Nexus, welches ein weiteres mal erst in den Recovery-Modus versetzt werden muss, kann anschließend folgender Befehl ausgeführt werden, um das zip-Archiv aus dem Download-Verzeichnis heraus auf das Gerät zu kopieren.
     adb push UPDATE-SuperSU-v1.04.zip /data/media  
    
  2. Über folgenden Befehl wird das Smartphone nun erneut in den Recovery-Modus neugestartet.
     adb reboot recovery  
    
  3. Dort muss nun der Menüpunkt "install zip from sdcard" und anschließend "choose zip from sdcard" gewählt werden. Das zip-Archiv sollte im Root-Verzeichnis der SD-Karte zu finden sein. Nach dessen Auswahl und Installation kann das Gerät neu gestartet werden und sollte von nun an gerootet sein.
Mittels bestimmter Apps aus dem Google Play Store lässt sich überprüfen, ob das Gerät tatsächlich korrekt gerootet wurde. Hierfür eignet sich beispielsweise die App Root Checker.