D
Daniboy3000
Fortgeschrittenes Mitglied
- 15
Da es im Forum schon eine Anleitung gibt, um CyanogenMod zu kompillieren,
füge ich noch eine Anleitung für den Kernel (Stock/AOSP) hinzu.
Als Grundlage hab ich diese beiden Anleitungen auf XDA benutzt:
[HOWTO] Building from sources [Kernel only for now] - xda-developers
[HOWTO] build nexus 4 kernel - xda-developers
Ich übernehme keine Verantwortung für entstandene Schäden an elektronischen Geräten, usw...
Voraussetzungen:
- Linux (ich verwende Ubuntu 12.04 LTS)
- Linux/Terminalkenntnisse
- ungelockter Bootloader
- Internet
Vorarbeiten:
Als erstes muss man sich eine Build-Umgebung einrichten. Dazu guckt man
am besten hier nach:
Initializing a Build Environment | Android Open Source
Sobald die steht sollte man, wenn es noch nicht vorhanden ist, git installieren.
Git lädt man hier herunter: Downloads - git-core - Git - the stupid content tracker - Google Project Hosting
Dann entpackt man das Archiv, im Terminal wechselt man in das entpackte Verzeichnis und kompiliert Git:
Source:
Nun braucht man die Kernel-Sourcen, dafür erstellt man ein neues Verzeichnis, z.B: Android/Kernel und wechselt dort hinein:
Dies sind allerdings noch nicht die richtigen Sourcen, denn man muss erst eine bestimmte Version herunterladen. Diese findet man bei Stockkerneln auf dem Nexus 4 in der Kernelversion unter Einstellungen, aktuell ist diese g7ce11cd (Danke an Xerolux).
Toolchain:
Wenn nun sämtliche Sourcen zu guter Letzt heruntergeladen wurden, benötigt man noch eine Toolchain, die den richtigen Compiler enthält. In meinem Fall habe ich die Google Toolchain benutzt. Dazu erstellt man wieder ein neues Verzeichnis und wechselt in dieses:
Kompilieren:
Nun kommen wir zum eigentlichen kompilieren, als erstes müssen noch einige Umgebungsvariablen erstellt werden:
Dann kann endlich der Kernel kompiliert werden, hierzu wechselt man in den Ordner mit den Kernelsource (Beispielsweise: Android/Kernel/msm)
Das N muss man durch die Anzahl seiner Prozessorkerne * 2 ersetzten, also für eine Dual-Core "-j4".
Boot.img erstellen:
Wenn nun keine Fehler aufgetreten sind, sollte der Kernel in arch/arm/boot/ liegen, als Datei mit Namen zImage. In dieser Form kann man den Kernel allerdings nicht flashen. Man benötigt ein boot.img. Dieses kann man zum Beispiel aus einem Factoryimage extrahieren oder ich habe hier die aktuelle (4.2.2/7ce11cd) hochgeladen: https://www.dropbox.com/s/do0fktpugqnp1mg/boot.img . Dann lädt man sich folgen des Script herunter und entpackt es in den selben Ordner, wo das boot.img liegt.
Dann ersetzt man zImage mit dem eigenen Kernelimage(arch/arm/boot)
Flashen:
Nun hat man eine boot.img Datei die man via:
So ich hoffe das war einigermaßen verständlich,
viele Grüße Daniboy3000
füge ich noch eine Anleitung für den Kernel (Stock/AOSP) hinzu.
Als Grundlage hab ich diese beiden Anleitungen auf XDA benutzt:
[HOWTO] Building from sources [Kernel only for now] - xda-developers
[HOWTO] build nexus 4 kernel - xda-developers
Ich übernehme keine Verantwortung für entstandene Schäden an elektronischen Geräten, usw...
Voraussetzungen:
- Linux (ich verwende Ubuntu 12.04 LTS)
- Linux/Terminalkenntnisse
- ungelockter Bootloader
- Internet
Vorarbeiten:
Als erstes muss man sich eine Build-Umgebung einrichten. Dazu guckt man
am besten hier nach:
Initializing a Build Environment | Android Open Source
Sobald die steht sollte man, wenn es noch nicht vorhanden ist, git installieren.
Git lädt man hier herunter: Downloads - git-core - Git - the stupid content tracker - Google Project Hosting
Dann entpackt man das Archiv, im Terminal wechselt man in das entpackte Verzeichnis und kompiliert Git:
Code:
tar -xvf git-1.8.0.tar.gz
cd git-1.8.0
./configure
make
sudo make install
Source:
Nun braucht man die Kernel-Sourcen, dafür erstellt man ein neues Verzeichnis, z.B: Android/Kernel und wechselt dort hinein:
Code:
mkdir -p ~/Android/Kernel #Verzeichnis kann beliebig gewählt werden
cd ~/Android/Kernel
git clone https://android.googlesource.com/kernel/msm
Dies sind allerdings noch nicht die richtigen Sourcen, denn man muss erst eine bestimmte Version herunterladen. Diese findet man bei Stockkerneln auf dem Nexus 4 in der Kernelversion unter Einstellungen, aktuell ist diese g7ce11cd (Danke an Xerolux).
Code:
cd msm
git checkout 7ce11cd #g7ce11cd scheint bei mir nicht zu funktionieren!
Toolchain:
Wenn nun sämtliche Sourcen zu guter Letzt heruntergeladen wurden, benötigt man noch eine Toolchain, die den richtigen Compiler enthält. In meinem Fall habe ich die Google Toolchain benutzt. Dazu erstellt man wieder ein neues Verzeichnis und wechselt in dieses:
Code:
mkdir -p ~/Android/Toolchain #Verzeichnis kann ebenfalls beliebig gewählt werden
cd ~/Android/Toolchain
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6
Kompilieren:
Nun kommen wir zum eigentlichen kompilieren, als erstes müssen noch einige Umgebungsvariablen erstellt werden:
Code:
export PATH=$PATH:~/Android/Toolchain/arm-linux-androideabi-4.6/bin
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-linux-androideabi-
Code:
cd ~/Android/Kernel/msm
make mako_defconfig
make -jN
Boot.img erstellen:
Wenn nun keine Fehler aufgetreten sind, sollte der Kernel in arch/arm/boot/ liegen, als Datei mit Namen zImage. In dieser Form kann man den Kernel allerdings nicht flashen. Man benötigt ein boot.img. Dieses kann man zum Beispiel aus einem Factoryimage extrahieren oder ich habe hier die aktuelle (4.2.2/7ce11cd) hochgeladen: https://www.dropbox.com/s/do0fktpugqnp1mg/boot.img . Dann lädt man sich folgen des Script herunter und entpackt es in den selben Ordner, wo das boot.img liegt.
Code:
./zhack -x boot.img
Code:
./zhack -z boot.img -f bootimg.cfg -k zImage -r initrd.img
Flashen:
Nun hat man eine boot.img Datei die man via:
Code:
fastboot boot boot.img #testen
fastboot flash boot boot.img #flashen kann
So ich hoffe das war einigermaßen verständlich,
viele Grüße Daniboy3000
Zuletzt bearbeitet: