CyanogenMod installieren: Difference between revisions

From
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 66: Line 66:
Sollten allerdings doch Fehlermeldungen auftreten (Error Status 7), so kann man am ROM nichts mehr verändern und muss sich wohl nach einem anderen ROM umschauen.
Sollten allerdings doch Fehlermeldungen auftreten (Error Status 7), so kann man am ROM nichts mehr verändern und muss sich wohl nach einem anderen ROM umschauen.


== CyanogenMod selbst kompilieren ==
== CyanogenMod 10 selbst kompilieren ==
Im folgenden soll gezeigt werden, wie man den Source Code von CyanogenMod selbst kompilieren kann. Dabei entstehen bei Teil des Guides für CyanogenMod in der Version 9 mehrere kleine Image Dateien, die man dann nochmal von Hand per ''fastboot'' auf das Gerät flashen muss. Bei Teil der CM Version 10 kompiliert, entsteht ein ROM, was man nach obiger Anleitung auf dem Gerät installieren kann.
Im folgenden soll gezeigt werden, wie man den Source Code von CyanogenMod 10 (z.Z. aktuellste Version) selbst kompilieren kann.


'''< ! >''' Dabei ist es essentiell, dass man vorher weiß, für welches Handy man CyanogenMod kompilieren möchte! Im Falle des hier verwendeten Nexus S lautet die Versionsbezeichnung der CM ''crespo''. Überall wo dies später in den Schritten auftaucht, muss diese durch die jeweilige Versionsbezeichnung des aktuell verwendeten Geräts ersetzt werden!
'''< ! >''' Dabei ist es essentiell, dass man vorher weiß, für welches Handy man CyanogenMod kompilieren möchte! Im Falle des hier verwendeten Nexus S lautet die Versionsbezeichnung der CM ''crespo''. Überall wo dies später in den Schritten auftaucht, muss diese durch die jeweilige Versionsbezeichnung des aktuell verwendeten Geräts ersetzt werden!

'''< ! >''' Die folgenden Schritte können '''nur''' mit einem '''64 Bit''' System durchlaufen werden. Auf einem 32Bit System lässt sich CM nicht kompilieren.

===== 1. Dependencies vorab installieren =====
Als erstes sollten die dafür grundlegenden Packages installiert werden. Unter Ubuntu 12.04 64bit sähe das wie folgt aus (als 1 Command):

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386
libgl1-mesa-dev:i386 g++-multilib mingw32 openjdk-6-jdk pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

===== 2. Repositories herunterladen =====
Im folgenden wird der Source Code von CM 10 heruntergeladen. Dafür benötigen wir als erstes das Tool <code>repo</code>.
mkdir -p ~/cm10/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/cm10/bin/repo
chmod a+x ~/cm10/bin/repo

Nun können wir im Zielordner initialisieren:
mkdir -p ~/cm10/android/system
cd ~/cm10/android/system
repo init -u git://github.com/CyanogenMod/android.git -b jellybean

Sollte repo nicht als command gefunden werden, so muss noch folgendes zur PATH Variable hinzugefügt und der command wiederholt werden:
export PATH=/home/<username>/cm10/bin:$PATH
repo init -u git://github.com/CyanogenMod/android.git -b jellybean

Nun können die Quellen heruntergeladen werden. Da es sich hierbei um mehrere '''GByte''' an Daten handelt, kann dies je nach Internetanbindung schonmal ein bisschen dauern:
repo sync
Ist der Download abgeschlossen können Gerätespezifische Daten heruntergeladen werden. Hier muss der Gerätename für das jeweilig verwendete Zielgerät benutzt werden. In Falle des Nexus S also ''crespo'':
source build/envsetup.sh && breakfast crespo
Auch hier kann es wieder eine gewisse Zeit dauern bis alles heruntergeladen wurde.

Als nächstes brauch eine zum Glück schon vorgefertigte Toolchain:
~/cm10/android/system/vendor/cm/get-prebuilds

===== 3. Quellen kompilieren =====
Jetzt sollten alle nötigen Quellen beisammen sein und man kann anfangen zu kompilieren.
cd ~/cm10/android/system
source build/envsetup.sh && brunch crespo

Dies sollte wieder einige Zeit in Form von mehreren Stunden in Anspruch nehmen, wobei mitunter immer noch Dependency Fehler auftreten können, welche dann natürlich manuell behoben werden müssen. Musste man noch etwas nach installieren, so kann man dann wieder mit letzten Befehl <code>source build ...</code> den Kompiliervorgang starten.

===== 4. Ergebnis =====
Nach dem fehlerfreien Kompilieren befindet sich unter
~/android/system/out/target/product/crepso/cm-10-XXXXXXXX-UNOFFICIAL-crespo.zip
das fertige ROM, welches nun nach [[#CyanogenMod ROM installieren|obigen Vorgehen]] auf dem Gerät installiert werden kann.

Latest revision as of 18:06, 3 October 2012

Dieser Artikel soll eine Hilfestellung beim Installieren von CyanogenMod auf einem Android Gerät bieten. Dieser Guide wurde im Rahmen des IT-Security Seminars 2012 im Projekt NFC unter Android erstellt und bezieht sich speziell auf die Arbeit mit einem Google Nexus S. Auf spezielle, gerätespezifische Aspekte wird an den entsprechenden Stellen hingewiesen.

Grundsätzlich gibt es zwei Wege, wie man CyanogenMod (CM) auf seinem Android Gerät installieren kann. Entweder man benutzt dafür eine bereits vorkompilierte Version, welche als sog. ROM zum Download steht, oder man läd sich den kompletten CyanogenMod Source Code herunter und kompiliert sich alles selbst. Beide Wege sollen hier beschrieben werden. Der Vorteil des selbst kompilieren ist logischerweise, dass man genau sehen kann, was hinterher im Betriebssystem landet bzw. kann man selbst noch Änderungen vornehmen oder spezielle Patches einbauen.

Vorbereitung

1. Bootloader unlocken

Damit überhaupt irgend eine Version von CyanogenMod installiert werden kann, muss das Gerät vorher gerootet werden. Dafür benötigt man die aktuelle Version des Android SDKs, welches das Tool fastboot enthält.

Links:

Nach dem Download:

tar zxf ~/Downloads/android-sdk-XXX-linux.tgz -C ~/  
cd ~/android-sdk-linux/tools
./android                                            

Es öffnet sich der Android SDK Manager - "Android Platform Tools" installieren.

Danach:

export PATH=/home/<username>/android-sdk-linux/platform-tools/:$PATH

Nun das Android Gerät ausschalten und in den Bootloader Booten. Im Falle des Nexus S hält man Volume UP & Power On gedrückt bis der Bootloader läd. Als nächstes wird das Gerät per USB Kabel am PC angeschlossen. Nun kann man mittels fastboot den Bootloader unlocken.

fastboot oem unlockhttp://www.clockworkmod.com/rommanager

Nach einer Bestätigung auf dem Gerät rebootet das Gerät.

2. Recovery Manager installieren

Als nächstes empfielt es sich ClockworkMod Recovery auf dem Gerät zu installieren. Dabei wird je nach Gerät eine andere, gerätespezifische Version gebraucht. Da auch von CyanogenMod Smartphonespezifische Versionen passend zum jeweiligen Gerät installiert werden müssen, hat jedes Gerät einen festen Versionsnamen. Im Falle des Nexus S ist dieser crespo. Das spiegelt sich an dieser auch im Download von ClockworkMod Recovery wieder, da in diesem Falle die crespo Version gebraucht wird. Sollte dieser Guide mit einem anderen Smartphone durchlaufen werden, muss an dieser Stelle die passende ClockworkMod Recovery Version ausgewählt werden.

Links:

Nun startet man beim Nexus S mittels Volume Up & Power On wieder in den Bootloader des Geräts und schließt dieses am PC an. Dort kann man dann wie folgt fortfahren:

fastboot flash recovery /Pfad/zum/RecoveryImage/recovery-clockwork-6.0.1.0-crespo.img

Damit sollte ClockworkMod Recovery installiert sein.

CyanogenMod ROM installieren

Im folgenden wird der Fall gezeigt, in dem eine schon fertig kompilierte CyanogenMod ROM installiert werden soll. Dafür benötigt man, nachdem man die vorherigen Schritte erfolgreich durchlaufen hat, nur noch ein solches CM ROM.

Dabei muss die für das Gerät passende Version benutzt werden. Im Falle des Nexus S also z.B. cm-10-20121003-NIGHTLY-crespo.zip . Optional können noch zusätzliche Google Apps heruntergeladen werden.

Nun bootet man wieder in den Bootloader des Geräts und sollte dort die Möglichkeit haben, neben einem Reboot auch in den Recovery Modus wechseln zu können, was wieder das gerade installierte ClockworkMod Recovery starten sollte.

In diesem wählt man nun mittels der Volume Knöpfe und des Power On Buttons folgendes:

 1. Wipe data/factory reset
 2. Wipe cache partition
 3. Mount & Storage
 4. Format sd card
 5. Format system
 6. Format cache
 7. Format data
 8. Formate boot

 9. Mount USB storage

Nun das Gerät per USB anschließen, es sollte als Mass Storage Device erkannt werden. Nun kopiert man die CM ROM und evtl. noch die Google Apps.zip auf das Gerät. Danach wieder auf dem Gerät;

10. Unmount
11. ++ Go Back ++
12. Install from sd card
13. Chose zip from sd card

Nun wählt man zu erst die CM ROM aus und wählt ++ Yes, install ++. Danach wiederholt man das Auswählen und Installieren evtl. nochmal für die Google Apps. Sollten keine Fehlermeldungen auftreten ist nun CyanogenMod installiert und man kann das Gerät über den entsprechenden Menüeintrag rebooten. Sollten allerdings doch Fehlermeldungen auftreten (Error Status 7), so kann man am ROM nichts mehr verändern und muss sich wohl nach einem anderen ROM umschauen.

CyanogenMod 10 selbst kompilieren

Im folgenden soll gezeigt werden, wie man den Source Code von CyanogenMod 10 (z.Z. aktuellste Version) selbst kompilieren kann.

< ! > Dabei ist es essentiell, dass man vorher weiß, für welches Handy man CyanogenMod kompilieren möchte! Im Falle des hier verwendeten Nexus S lautet die Versionsbezeichnung der CM crespo. Überall wo dies später in den Schritten auftaucht, muss diese durch die jeweilige Versionsbezeichnung des aktuell verwendeten Geräts ersetzt werden!

< ! > Die folgenden Schritte können nur mit einem 64 Bit System durchlaufen werden. Auf einem 32Bit System lässt sich CM nicht kompilieren.

1. Dependencies vorab installieren

Als erstes sollten die dafür grundlegenden Packages installiert werden. Unter Ubuntu 12.04 64bit sähe das wie folgt aus (als 1 Command):

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386
libgl1-mesa-dev:i386 g++-multilib mingw32 openjdk-6-jdk pngcrush schedtool tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
2. Repositories herunterladen

Im folgenden wird der Source Code von CM 10 heruntergeladen. Dafür benötigen wir als erstes das Tool repo.

mkdir -p ~/cm10/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/cm10/bin/repo
chmod a+x ~/cm10/bin/repo


Nun können wir im Zielordner initialisieren:

mkdir -p ~/cm10/android/system
cd ~/cm10/android/system
repo init -u git://github.com/CyanogenMod/android.git -b jellybean

Sollte repo nicht als command gefunden werden, so muss noch folgendes zur PATH Variable hinzugefügt und der command wiederholt werden:

export PATH=/home/<username>/cm10/bin:$PATH
repo init -u git://github.com/CyanogenMod/android.git -b jellybean

Nun können die Quellen heruntergeladen werden. Da es sich hierbei um mehrere GByte an Daten handelt, kann dies je nach Internetanbindung schonmal ein bisschen dauern:

repo sync

Ist der Download abgeschlossen können Gerätespezifische Daten heruntergeladen werden. Hier muss der Gerätename für das jeweilig verwendete Zielgerät benutzt werden. In Falle des Nexus S also crespo:

source build/envsetup.sh && breakfast crespo

Auch hier kann es wieder eine gewisse Zeit dauern bis alles heruntergeladen wurde.

Als nächstes brauch eine zum Glück schon vorgefertigte Toolchain:

~/cm10/android/system/vendor/cm/get-prebuilds
3. Quellen kompilieren

Jetzt sollten alle nötigen Quellen beisammen sein und man kann anfangen zu kompilieren.

cd ~/cm10/android/system
source build/envsetup.sh && brunch crespo

Dies sollte wieder einige Zeit in Form von mehreren Stunden in Anspruch nehmen, wobei mitunter immer noch Dependency Fehler auftreten können, welche dann natürlich manuell behoben werden müssen. Musste man noch etwas nach installieren, so kann man dann wieder mit letzten Befehl source build ... den Kompiliervorgang starten.

4. Ergebnis

Nach dem fehlerfreien Kompilieren befindet sich unter

~/android/system/out/target/product/crepso/cm-10-XXXXXXXX-UNOFFICIAL-crespo.zip

das fertige ROM, welches nun nach obigen Vorgehen auf dem Gerät installiert werden kann.