[How-to] Build Cynanogen from Source

T

Thektorium

Fortgeschrittenes Mitglied
22
Build form Source

Meinen aktuellsten Build findet ihr HIER.

Nachdem ich einige Fragen bezüglich der Möglichkeit, Cynanogen von der Quelle zu kompilieren,bekommen habe, hab ich mir gedacht ich sollte ein TuT schreiben.

a) Bitte nur anwenden wenn man sich der Konsequenzen dieser Methode bewusst ist.

b) Wer weniger auf Experimente steht sollte bei Nightlies, RCs und Stables bleiben

d) Diese Anleitung ist für Ubuntu (bzw. Debian based OSs)

c) für Funktion wird nicht garantiert!


Vorteile:
+ Man ist immer aktuell!
+ Bugs können ausgebessert werden
+ Codes können verbessert, erweitert, verkleinert etc. werden

Nachteile:
- Oft enthält die Source Bugs die nicht für die "Öffentlichkeit" bestimmt sind, z.B kein USB bei 2.3.3 auf 2.3.4 (already fixed)
- Ist nicht ganz so schnell erledigt wie ein "einfaches" ROM zu installieren

Die Anleitung auf Englisch findet man hier.

Install sorglos Skript : LINK from FelixL. Macht die Anleitung von alleine durch.

-Erstes Mal : start with 1)
-Neuer Rom manager: start with 5)
-Neues Update im git (oder check if update): start with 6)


1) Installieren sie follgende pakete:

für 32&64 Bit:
Code:
git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool

für 64 Bit only!:
Code:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib

Zusatz für Ubuntu 10.10 Users:
Code:
NOTE: On Ubuntu 10.10, and variants, you need to enable the parter repository to install sun-java6-jdk:
add-apt-repository "deb [url=http://archive.canonical.com/]Index of /[/url] maverick partner"

Zusätzlich brauchen wir adb aus der Android SDK.

Install adb by sitic:

Code:
cd ~/bin
wget http://android.d3xt3r01.tk/cyanogen/tools/linux_adb_fastboot.zip
unzip linux_adb_fastboot.zip
rm -f linux_adb_fastboot.zip

Code:
sudo gedit /lib/udev/rules.d/11-android.rules
dann das in den Editor einfügen und speichern, dabei [username] durch den (aktuellen) Benutzername ersetzen:
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1353", MODE="0666", OWNER="[username]" #Normal Blade
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1351", MODE="0666", OWNER="[username]" #Debug Blade
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1354", MODE="0666", OWNER="[username]" #Recovery Blade
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d00d", MODE="0666", OWNER="[username]" #Fastboot Blade



2) Erstellen der Verzeichnisse:

Code:
mkdir -p ~/bin
Code:
mkdir -p ~/android/system

3) Installieren der Build-Software:

Code:
curl [url]http://android.git.kernel.org/repo[/url] > ~/bin/repo
Code:
chmod a+x ~/bin/repo

--Reboot NOW!--

Code:
cd ~/android/system/
Code:
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
Code:
repo sync -j16

4) Kopieren der proprietary Files vom Handy: (USB-Debugging aktivieren!, adb must work!)

Code:
cd ~/android/system/device/zte/blade/
Code:
./extract-files.sh

5) ROM-Manager download:

Code:
~/android/system/vendor/cyanogen/get-rommanager

6) Build CM:

+check for updates:
Code:
cd ~/android/system/
Code:
repo sync

+build
Code:
. build/envsetup.sh && brunch blade

7) Kopieren des Zips:

Zip befindet sich: ~/android/system/out/target/product/blade/update.cm-XXXXX-signed.zip

Wenn benötigt Gapps downloaden.

zip auf SD-Card und Flashen!

WICHTIG: Nach Rom-Install bitte 100% laden und folgende app ausführen: Link.

Have Fun!

No Warranty by me

Thek


Edit: Bei Ergänzungen, Fehlern etc. bitte sagen :)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: wiesi_at und Lyroy
also ich krieg unter 1 die 32bit libraries nicht installiert :-(

Die folgenden Pakete haben nicht-erfüllte Abhängigkeiten:
g++-multilib: Hängt ab: g++-4.4-multilib (>= 4.4.3-1) soll aber nicht installiert werden
gcc-4.3-multilib: Hängt ab: libc6-dev-i386 (>= 2.5) soll aber nicht installiert werden
lib32ncurses5-dev: Hängt ab: lib32c-dev
lib32readline5-dev: Hängt ab: libc6-dev-i386 soll aber nicht installiert werden
lib32z1-dev: Hängt ab: lib32c-dev
E: Kaputte Pakete



Woher kommt der befehl repo???

root@m4500:~/android/system# repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
Der Befehl »repo« wurde nicht gefunden, meinten Sie vielleicht:
Befehl »rep« aus dem Paket »rep« (universe)
Befehl »repl« aus dem Paket »nmh« (universe)
Befehl »repl« aus dem Paket »mailutils-mh« (universe)
repo: Befehl nicht gefunden


hab nur 64 bit...
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: sitic
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
was geht nicht? hab leider keine 64Bit.

versuch mal gcc-4.3-multilib g++-4.3-multilib durch gcc-4.4-multilib g++-4.4-multilib zu ersetzten.

bzw. die Pakete von 32&64bit ließen sich problemlos installieren?

der befehl repo kommt hierher:

Code:
curl [url]http://android.git.kernel.org/repo[/url] > ~/bin/repo

chmod a+x ~/bin/repo

deswegen danach ein Reboot damit der PATH das repo mit hinein lädt.

lg
Thek
 
Zuletzt bearbeitet:
Der Befehl
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread

ist doppelt in der Anleitung drin, der zweite sollte eigentlich
repo sync -j16

stehen.

Bist du dir sicher das Ubuntu ~/bin automatisch zum $PATH hinzufügt? Bei mir ist da nichts...
Edit: Ahh, ich les grad ~/.profile, da steht es ja. Naja ich nehm trotzdem lieber /usr/local/bin ;)
 
  • Danke
Reaktionen: Thektorium
hab nat. rebootet trotzdem kein repo....

hab aber vorhin gerade xbmc und vdr kompiliert, da gabs auch schon stress mit shared libraries...

bei mir hat sich an den umgebungsvariablen auch nichts geändert?

ja die 32&64bit pakete ließen sich wunderbar installieren bzw. git-core hatte ich eh schon installiert
 
Zuletzt bearbeitet:
wenn das nicht geht: statt repo init -u git://github.com/CyanogenMod/android.git -b gingerbread

Code:
 /home/YOURUSERNAME/bin/repo init -u git://github.com/CyanogenMod/android.git -b gingerbread

verwenden. Bei anderen repo-befehlen halt gleiches muster.

ich verstehe das mit " soll aber nicht installiert werden" nicht ganz :/

versuche die Pakete mal über Synaptic zu installieren.


Code:
apt-get -y
sollte laut google auch gehen

lg
Thek
 
Zuletzt bearbeitet:
sitic schrieb:
Bist du dir sicher das Ubuntu ~/bin automatisch zum $PATH hinzufügt? Bei mir ist da nichts...
Edit: Ahh, ich les grad ~/.profile, da steht es ja. Naja ich nehm trotzdem lieber /usr/local/bin ;)

also bei mir hats geklappt.

natürlich steht der pfad jedem frei. ich hab mich halt durch die Anleitung gecopied+pasted und es hat funktioniert.. ;)

lg
Thek
 
Ich würde das noch in den Anleitung aufnehmen um adb zu installieren:
Code:
cd ~/bin
wget http://android.d3xt3r01.tk/cyanogen/tools/linux_adb_fastboot.zip
unzip linux_adb_fastboot.zip
rm -f linux_adb_fastboot.zip

Code:
sudo gedit /lib/udev/rules.d/11-android.rules
dann das in den Editor einfügen und speichern, dabei [username] durch den (aktuellen) Benutzername ersetzen:
Code:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1353", MODE="0666", OWNER="[username]" #Normal Blade
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1351", MODE="0666", OWNER="[username]" #Debug Blade
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1354", MODE="0666", OWNER="[username]" #Recovery Blade
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d00d", MODE="0666", OWNER="[username]" #Fastboot Blade
 
  • Danke
Reaktionen: Thektorium
:D
eben das macht mich ja auch so stutzig...
 
@sitic thx. übernehme das mal ganz frech ;)

@ric67 was soll man sonst machen, wenn die Anleitung funktioniert ^^

lg
Thek
 
@thek
mein ubuntu ist wohl kaputt gespielt:thumbdn:
schon dämlich alles auf einer kiste zu machen...
ich schau mir das morgen mal genauer an
 
hmh.. wundert mich das mir das nie passiert. Hab auch nur 1 System für alles ...

naja viel glück :) und hoffe du schaffst es den compile auszuführen.

lg
Thek
 
ich weiß ja nicht was du so anstellst:D mir zerhauts die 64bit kiste regelmäßig

aah, der wurm ist in meinen repos
 
Zuletzt bearbeitet:
Mein Ubuntu lässt mich seit nem Monat nicht mehr rein -.-
Da ich es nur für Android benutze ist mir das aber relativ wurscht, eh keine Zeit atm.

@Thektorium
Kannst du die Anleitung um das Installieren des SDK erweitern? Das ist afaik auch nötig.

Kennt jemand dieses Skript und hat es mal ausprobiert?
[DEV] Building CM from scratch (the easy way)! - *nix Shell Script - xda-developers

Das macht auch adb+SDK.

Denkt ihr es macht Sinn auf Ubuntu 11 upzugraden, da ich sowieso eine Neuinstallation mache, oder lieber bei 10.10 bleiben weil dafür die ganzen Sachen geschrieben sind?
 
ich würde ja bei einem LTS bleiben! oder gleich zum coden auf debian wechseln?
letzteres mache ich als nächstes...
 
Zuletzt bearbeitet:
also bei mir hat es ohne Android SDK nur mit adb richtig kompiliert und es läuft auch alles korrekt.

Das Skript sieht ja super aus, hab mal eingeschaut das Blade ist auf jeden Fall integriert. Ich probiere es morgen mal auf meinem Laptop aus.
Ich denke nicht das es bei Ubuntu 11 Probleme geben wird, ich mache in den nächsten Tagen mal ein upgrade. Wenn ich viel Zeit hätte würde ich mir endlich Arch Linux einrichten...

Ich bekomme übrigends auf einem 32bit-System die Warnung
Code:
build/core/main.mk:76: ************************************************************
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
build/core/main.mk:79: ************************************************************
habe aber noch keine Auswirkungen festgestellt.
 
Ubuntu 11.04 hat keine Probleme , ich habe es damit gemacht.

Bekomme selbe Warung, bzw. noch einige weitere, dennoch wird das ROM ohne iwelche "Probleme" gebuild und läuft auch wunderbar.

lg
Thek
 
Für alle die mal testen wollen:

Mein aktuellster Build Link (link up atm!)

lg
Thek
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: fredalf, goseph und bhf
genau, einfach immer was aktuelles zur Verfügung stellen. Besser und einfacher als alles selber zu kompilieren.
Änderungen und Anmerkungen bitte nicht vergessen. Ggf. ein paar Vor- und Nachteile?
Ist der USB-Bug inzwischen behoben bei deinem aktuellen Build?
Danke vielmals!
 
Zuletzt bearbeitet:
1) Usb works great

2) No charging Bug

3) No GPS Bug (i haven't got it jet)

new Build is comming soon! (eher am abend wenn ich zeit fürs update hab, atm Muttertagspflichten :D)

ich persönlich sehe keine Nachteile gegenüber den Nightlies.

Letze Änderungen siehe HIER.

Wichtig ist nur nach der Installation einmal voll zu laden und die batterystats zu wipen. ich hatte nämlich nur 2h akku. Dannach war alles wie gewohnt. (via App oder im Clockwork)

lg
Thek
 
  • Danke
Reaktionen: fredalf

Ähnliche Themen

C
Antworten
135
Aufrufe
35.437
Bautzener
B
XMasterNinni
  • Angepinnt
  • XMasterNinni
2
Antworten
33
Aufrufe
8.972
Smart-T
S
XMasterNinni
Antworten
4
Aufrufe
1.721
FelixL
FelixL
Zurück
Oben Unten