Lineageos kompilieren & anpassen: Unterschied zwischen den Versionen
Djamc (Diskussion | Beiträge) Die Seite wurde neu angelegt: „Unter Systemen mit Standard-Python-Binary > 2.7 muss für die Konsolensession python2.7 aktiviert werden. Einfahc funktioniert dies mit einem bin-Ordner in de…“ |
Djamc (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[Kategorie:Android]] | |||
Lineageos-Änderungen: tbd | |||
<h1>Vorbereitungen</h1> | |||
Unter Systemen mit Standard-Python-Binary > 2.7 muss für die Konsolensession python2.7 aktiviert werden. | Unter Systemen mit Standard-Python-Binary > 2.7 muss für die Konsolensession python2.7 aktiviert werden. | ||
Einfach funktioniert dies mit einem bin-Ordner in der Androidentwicklungsumgebung: | |||
<code> | |||
cd ~/android_devel | |||
mkdir bin | |||
cd bin | |||
ln -s /usr/bin/python2.7 python | |||
export PATH="~/android_devel/bin:${PATH}" | |||
</code> | |||
Die Android-Build-Tools werden über folgenden Link bezogen und beispielsweise in dem eben | Die Android-Build-Tools werden über folgenden Link bezogen und beispielsweise in dem eben erstellten bin-Verzeichnis hinterlegt: | ||
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/android_devel/bin/repo | <code> | ||
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/android_devel/bin/repo | |||
</code> | |||
(info auf: http://source.android.com/source/initializing.html) | (info auf: http://source.android.com/source/initializing.html) | ||
| Zeile 17: | Zeile 30: | ||
Mit | Mit | ||
repo selfupdate | <code> | ||
repo selfupdate | |||
</code> | |||
wird sichergestellt, dass die aktuellste Version verwendet wird | wird sichergestellt, dass die aktuellste Version verwendet wird | ||
| Zeile 24: | Zeile 39: | ||
Cyanogenmod-Source initialisieren: | Cyanogenmod-Source initialisieren: | ||
mkdir ~/andoid_devel/CM | <code> | ||
cd ~/andoid_devel/CM | mkdir ~/andoid_devel/CM | ||
repo init -u git://github.com/ | cd ~/andoid_devel/CM | ||
repo sync | repo init -u git://github.com/LineageOS/android.git -b cm-14.1 | ||
repo sync | |||
</code> | |||
Die Informationen finden sich gerätespezifisch auf den Wiki-Seiten von cyanogenmod.org (bspw. http://wiki.cyanogenmod.org/w/Build_for_pollux_windy) | Die Informationen finden sich gerätespezifisch auf den Wiki-Seiten von cyanogenmod.org (bspw. http://wiki.cyanogenmod.org/w/Build_for_pollux_windy) | ||
| Zeile 33: | Zeile 51: | ||
Die Doku hier wird den Kompilierprozess nur oberflächlich behandeln, Primär wird hier die Struktur und Anpassung der Sourcen beschrieben, da dies in den wikis eher oberflächlich behandelt wird. | Die Doku hier wird den Kompilierprozess nur oberflächlich behandeln, Primär wird hier die Struktur und Anpassung der Sourcen beschrieben, da dies in den wikis eher oberflächlich behandelt wird. | ||
<h1>Wo ist was? - Strukturen & Aufbau der CM-Quellen</h1> | |||
MK-Dateien: | |||
Die Sourcen werden über die *.mk-Dateien aufgebaut. Fügt man in der Hierarchie Daten hinzu oder entfernt man diese, so können Funktionen entfernt/hinzugefügt werden. Dies gilt für zu kompilierende Quellen und auch für binary-Daten (prebuilds). | |||
Die Standard-MKs für Cyanogenmod ohne Herstellerspezifische Pakete finden sich unter: | |||
build/target/produkt/ | |||
App-Sourcen: | |||
packages/apps | |||
Eigene Quellen lassen sich mit lokalen Manifestdateien hinzufügen, dadurch werden diese bei "repo sync" ebenfalls immer auf updates überprüft: | |||
Beispiel: | |||
.repo/local_manifests/additional_apps.xml | |||
<code> | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<manifest> | |||
<project name="k9mail/k-9" path="packages/apps/K9" remote="github" revision="master" /> | |||
<project name="irssiconnectbot/irssiconnectbot" path="packages/apps/IRSSICOnnectbot" remote="github" revision="master" /> | |||
</manifest> | |||
</code> | |||
Aktuelle Version vom 8. Januar 2017, 17:05 Uhr
Lineageos-Änderungen: tbd
Vorbereitungen
Unter Systemen mit Standard-Python-Binary > 2.7 muss für die Konsolensession python2.7 aktiviert werden.
Einfach funktioniert dies mit einem bin-Ordner in der Androidentwicklungsumgebung:
cd ~/android_devel
mkdir bin
cd bin
ln -s /usr/bin/python2.7 python
export PATH="~/android_devel/bin:${PATH}"
Die Android-Build-Tools werden über folgenden Link bezogen und beispielsweise in dem eben erstellten bin-Verzeichnis hinterlegt:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/android_devel/bin/repo
(info auf: http://source.android.com/source/initializing.html)
Mit
repo selfupdate
wird sichergestellt, dass die aktuellste Version verwendet wird
Cyanogenmod-Source initialisieren:
mkdir ~/andoid_devel/CM
cd ~/andoid_devel/CM
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
repo sync
Die Informationen finden sich gerätespezifisch auf den Wiki-Seiten von cyanogenmod.org (bspw. http://wiki.cyanogenmod.org/w/Build_for_pollux_windy)
Die Doku hier wird den Kompilierprozess nur oberflächlich behandeln, Primär wird hier die Struktur und Anpassung der Sourcen beschrieben, da dies in den wikis eher oberflächlich behandelt wird.
Wo ist was? - Strukturen & Aufbau der CM-Quellen
MK-Dateien: Die Sourcen werden über die *.mk-Dateien aufgebaut. Fügt man in der Hierarchie Daten hinzu oder entfernt man diese, so können Funktionen entfernt/hinzugefügt werden. Dies gilt für zu kompilierende Quellen und auch für binary-Daten (prebuilds).
Die Standard-MKs für Cyanogenmod ohne Herstellerspezifische Pakete finden sich unter:
build/target/produkt/
App-Sourcen:
packages/apps
Eigene Quellen lassen sich mit lokalen Manifestdateien hinzufügen, dadurch werden diese bei "repo sync" ebenfalls immer auf updates überprüft:
Beispiel:
.repo/local_manifests/additional_apps.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="k9mail/k-9" path="packages/apps/K9" remote="github" revision="master" />
<project name="irssiconnectbot/irssiconnectbot" path="packages/apps/IRSSICOnnectbot" remote="github" revision="master" />
</manifest>