Kiwi++Soft
Ehrenmitglied
- 32.707
Wie erstellt man ein ROM aus den Sourcen (AOSP, CM, AOKP, AOSPA usw...):
Ich wurde in der Vergangenheit ein paar mal gefragt, wie man 'aus den Sourcen' ein ROM erstellt. Daher will ich kurz ein paar Worte dazu niederschreiben. Diese Anleitung hat erst mal keinen Anspruch auf Vollständigkeit, das wäre einfach zu viel um es vollständig aufzuschreiben und ich will hier eher eine Übersicht über den ganzen Prozess liefern.
Ebenso gehe ich hier nicht sehr genau auf das Erstellen des 'Device-Trees' ein, die Begründung dazu kommt weiter unten im Text.
Wenn man ein selbst erstelltes ROM auf seinem Gerät einspielt, kann das Gerät Schaden nehmen. Ich bin nicht verantwortlich für irgendwelche Folgen!
Voraussetzungen:
Vorkenntnisse:
Es ist eine Grund-Voraussetzung, dass man Linux, Linux-Shell-Scripte, Makefile-Syntax, Android-Mk-Syntax, C, C++ und Java beherrscht.
Hardware:
Um mit einem Port erfolgreich sein zu können, muss man auf dem Computer mindestens 40 GB freien Plattenplatz haben. Der Rechner sollte 8GB Ram und eine angemessene CPU haben (DualCore mit 2 GHz minimum)
Schritt 1
Linux installieren. Um aus Sourcen builden zu können braucht man ein Linux System auf basis von Ubuntu 12. Das kann entweder ein eigener Rechner mit Linux, eine separate Boot-Partition oder ein Virtueller Rechner (Oracle VBox, VMWare oder HyperV) sein. Das Linux kann Ubuntu oder ein Abkömmling (Lubuntu, Xubuntu) sein.
Schritt 2
Einrichten der Build-Umgebung. Dazu gibt es eine ganz brauchbare Anleitung hier:
Downloading and Building | Android Developers
Schritt 3
Herunterladen der Sourcen. Das macht man mit repo. Dazu erstellt man sich ein 'Arbeitsverzeichs' und startet in dem ein Terminal-Fenster. Dort das repo 'Initalisieren':
Für AOSP: repo init -u git://android.googlesource.com/platform/manifest.git
Für CM 10.1: repo init -u git://github.com/CyanogenMod/android.git
Für AOKP: repo init -u git://github.com/AOKP/platform_manifest.git
Für PA: repo init -u git://github.com/ParanoidAndroid/android.git
Danach repo sync
Dann warten bis alles runtergeladen ist. Da das echt viel (~15 GB!!) ist, kann dass mehrere Stunden dauern...
Schritt 4
Device-Tree anlegen: Jetzt wird es lustig... Dazu muss man sich Beispiele (von ähnlichen Geräten, am besten mit ähnlicher Hardware und vom gleichen Hersteller) angucken und viiieel googlen.
Ein paar gute Links:
Porting Android to Devices | Android Developers
How To Port CyanogenMod Android To Your Own Device - CyanogenMod
Adding device support to PA, & Building ROM
Beim Anlegen des Device-Trees verwendet man den Code-Name des Devices. Den hat der Hersteller des Gerätes vergeben. Dieser wird in den weiteren Schritten zum starten des Builds benötigt.
Ich gehe hier nicht weiter darauf ein, wie man einen Device-Tree erstellt, denn:
Schritt 5
Build starten: Zuerst muss man mal das Build-Environment initialisieren:
. build/envsetup.sh
Danach ist es je nach ROM unterschiedlich. Den Text <code-name> durch den oben vergebenen Code-Name des Devices ersetzten.
AOSP:
lunch full-<code-name>
make -j4
CM10.1 und AOKP:
brunch <code-name>
PA:
rom-build.sh <code-name>
Schritt 6
Das erstellte ZIP testen: Das Ergebniss des Wilds wird ein CWM-installierbares ZIP sein und liegt unter out/target/product/picasso_e2/... Das erstellte ZIP auf das Tablet kopieren und ins CWM booten und installieren. Hier empfieht sich ein Wipe-Data, da das neu erstellte ROM sicher nicht mit den App-Daten des bisherigen ROMs kompatible ist.
Bei AOSP wird kein CWM-Installierbares ZIP erstellt. Das Ergebnis des Builds muss man von Hand in ein solches verwandeln.
Fehler-Behandlung
Wenn es zu Build-Abbrüchen kommt: Genereller Tipp, wenn es zu Fehlern während des Builds kommt, ist es ratsam, nur den ersten Fehler zu behandeln, denn die anderen Fehler sind oft nur Folgefehler. Sich um die zu kümmern, verschwendet Energie und ist oft nach der Behandlung des ersten Fehlers unnötig.
Grüsse Uwe
Ich wurde in der Vergangenheit ein paar mal gefragt, wie man 'aus den Sourcen' ein ROM erstellt. Daher will ich kurz ein paar Worte dazu niederschreiben. Diese Anleitung hat erst mal keinen Anspruch auf Vollständigkeit, das wäre einfach zu viel um es vollständig aufzuschreiben und ich will hier eher eine Übersicht über den ganzen Prozess liefern.
Ebenso gehe ich hier nicht sehr genau auf das Erstellen des 'Device-Trees' ein, die Begründung dazu kommt weiter unten im Text.
Wenn man ein selbst erstelltes ROM auf seinem Gerät einspielt, kann das Gerät Schaden nehmen. Ich bin nicht verantwortlich für irgendwelche Folgen!
Voraussetzungen:
Vorkenntnisse:
Es ist eine Grund-Voraussetzung, dass man Linux, Linux-Shell-Scripte, Makefile-Syntax, Android-Mk-Syntax, C, C++ und Java beherrscht.
Hardware:
Um mit einem Port erfolgreich sein zu können, muss man auf dem Computer mindestens 40 GB freien Plattenplatz haben. Der Rechner sollte 8GB Ram und eine angemessene CPU haben (DualCore mit 2 GHz minimum)
Schritt 1
Linux installieren. Um aus Sourcen builden zu können braucht man ein Linux System auf basis von Ubuntu 12. Das kann entweder ein eigener Rechner mit Linux, eine separate Boot-Partition oder ein Virtueller Rechner (Oracle VBox, VMWare oder HyperV) sein. Das Linux kann Ubuntu oder ein Abkömmling (Lubuntu, Xubuntu) sein.
Schritt 2
Einrichten der Build-Umgebung. Dazu gibt es eine ganz brauchbare Anleitung hier:
Downloading and Building | Android Developers
Schritt 3
Herunterladen der Sourcen. Das macht man mit repo. Dazu erstellt man sich ein 'Arbeitsverzeichs' und startet in dem ein Terminal-Fenster. Dort das repo 'Initalisieren':
Für AOSP: repo init -u git://android.googlesource.com/platform/manifest.git
Für CM 10.1: repo init -u git://github.com/CyanogenMod/android.git
Für AOKP: repo init -u git://github.com/AOKP/platform_manifest.git
Für PA: repo init -u git://github.com/ParanoidAndroid/android.git
Danach repo sync
Dann warten bis alles runtergeladen ist. Da das echt viel (~15 GB!!) ist, kann dass mehrere Stunden dauern...
Schritt 4
Device-Tree anlegen: Jetzt wird es lustig... Dazu muss man sich Beispiele (von ähnlichen Geräten, am besten mit ähnlicher Hardware und vom gleichen Hersteller) angucken und viiieel googlen.
Ein paar gute Links:
Porting Android to Devices | Android Developers
How To Port CyanogenMod Android To Your Own Device - CyanogenMod
Adding device support to PA, & Building ROM
Beim Anlegen des Device-Trees verwendet man den Code-Name des Devices. Den hat der Hersteller des Gerätes vergeben. Dieser wird in den weiteren Schritten zum starten des Builds benötigt.
Ich gehe hier nicht weiter darauf ein, wie man einen Device-Tree erstellt, denn:
- Es ist hochgradig Geräte-Abhängig.
- Sehr umfangreich und würde den Rahmen eines Überblicks sprengen.
- Es hat viel mit 'Stochern im Trüben' zu tun...
Schritt 5
Build starten: Zuerst muss man mal das Build-Environment initialisieren:
. build/envsetup.sh
Danach ist es je nach ROM unterschiedlich. Den Text <code-name> durch den oben vergebenen Code-Name des Devices ersetzten.
AOSP:
lunch full-<code-name>
make -j4
CM10.1 und AOKP:
brunch <code-name>
PA:
rom-build.sh <code-name>
Schritt 6
Das erstellte ZIP testen: Das Ergebniss des Wilds wird ein CWM-installierbares ZIP sein und liegt unter out/target/product/picasso_e2/... Das erstellte ZIP auf das Tablet kopieren und ins CWM booten und installieren. Hier empfieht sich ein Wipe-Data, da das neu erstellte ROM sicher nicht mit den App-Daten des bisherigen ROMs kompatible ist.
Bei AOSP wird kein CWM-Installierbares ZIP erstellt. Das Ergebnis des Builds muss man von Hand in ein solches verwandeln.
Fehler-Behandlung
Wenn es zu Build-Abbrüchen kommt: Genereller Tipp, wenn es zu Fehlern während des Builds kommt, ist es ratsam, nur den ersten Fehler zu behandeln, denn die anderen Fehler sind oft nur Folgefehler. Sich um die zu kümmern, verschwendet Energie und ist oft nach der Behandlung des ersten Fehlers unnötig.
Grüsse Uwe
Zuletzt bearbeitet: