Android (SlimLP) unter CentOS 7 kompilieren

Wer auf seinem Android Smartphone eine auf dem AOSP basierende Custom Rom im Einsatz hat, hat sich womöglich schon mal überlegt, sich die aktuellste Version frisch von der Quelle selbst zu kompilieren. Will man das auf einer Debian-, bzw. Ubuntu-basierenden Linux-Distribution bewerkstelligen, wird man auf diversen Internetseiten und Plattformen geradezu mit Anleitungen überhäuft. Bei CentOS 7 siehts da eher mau aus – vor allem in Verbindung mit den nicht ganz so stark verbreiteten SlimRoms, aktuell SlimLP. Sobald man aber weiß welche Software installiert werden muss und die nötigen Schritte kennt, ist das Ganze alles andere als ein Hexenwerk.
slimroms

Bevor es los geht noch ein paar kleine Anmerkungen:
Meine Build-Umgebung ist ein aktuelles CentOS 7 (x86_64). Kompiliert wird (die zum Zeitpunkt der Veröffentlichung des Beitrags) neueste Version von SlimROMs: SlimLP Beta.0.9 (Android 5.1.1) für ein HTC One (m7 / 2013). Wer SlimLP für ein anderes Gerät kompilieren will, muss natürlich einige Befehle abändern.

Der obligatorische Warnhinweis darf natürlich nicht fehlen: Auch wenn das eine einfache Schritt-Für-Schritt-Anleitung sein soll, spätestens beim Flashen der zip-Datei sollte jeder einigermaßen wissen, was er da tut. Für etwaige Schäden an eurem Smartphone bin ich nicht verantwortlich.

Soweit so gut. Jetzt gehts ans Eingemachte. Zuerst installieren wir die benötigten Software-Pakete mit allen Abhängigkeiten:

# sudo yum install make android-tools curl gnupg unzip zip flex lzop java-1.7.0-openjdk java-1.7.0-openjdk-devel bison gcc-c++ libstdc++-devel git gperf libxml2 glibc-devel ncurses-devel glibc-devel.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686

Zum synchronisieren des Quellcodes benötigen wir noch repo:

# sudo curl https://storage.googleapis.com/git-repo-downloads/repo > /bin/repo
# sudo chmod a+x /bin/repo

Noch kurz die Verzeichnisse anlegen…

# mkdir -p ~/slim/android/system

… dann die zu synchronisierende Version initialisieren. Wie gesagt, die neueste Version ist bei mir die 5.1.1 Wer nicht sicher ist, kann einen Blick auf die GitHub-Seite werfen. Dort ist in der Regel der init Befehl für das aktuelle Release aufgeführt.

# cd ~/slim/android/system/
# repo init -u git://github.com/SlimRoms/platform_manifest.git -b lp5.1

 

Danach können wir schon die Quellen herunterladen. Je nach Internetverbindung kann das mehrere Stunden dauern. Die Downloadgröße liegt momentan bei um die 40GB.

# repo sync

Ist das erledigt, brauchen wir für einige Smartphones noch ein paar proprietäre Treiber (blobs). SlimRoms benutzt dazu standardmäßig das git-repository von TheLoonyBin.

# cd ~/slim/android/system/vendor/
# git clone https://github.com/TheLoonyBin/proprietary_vendor_htc htc/

Fast fertig. Nur noch wenige Schritte bis zum Kompilieren. Falls für ein anderes Smartphone kompiliert werden soll, in der dritten Zeile darauf achten das „m7“ zu ersetzen. Statt „lunch slim_m7-userdebug“ können wir aber auch nur „lunch“ eingeben und das gewünschte Gerät auswählen. In der zweiten Zeile das Leerzeichen zwischen „. build“ nicht übersehen.

# cd ~/slim/android/system/
# . build/envsetup.sh
# lunch slim_m7-userdebug

Und los gehts. Mit folgendem Befehl starten wir den Kompilier-Vorgang. Die 4 gibt an, wie viele CPU-Kerne wir dazu zur Verfügung stellen wollen.

# make -j4 bacon

Das kann je nach Prozessor-Leistung und Arbeitsspeicher wieder eine Weile dauern. Läuft alles glatt, spuckt euch der Compiler unter ~/slim/android/system/out/target/product/m7/ dann endlich eine flashbare zip-Datei aus.

Viel Erfolg!

P.S.:
Interesse an meiner SlimLP-Build vom 23.10.2015 für das HTC One m7? Hier geht’s zum Download:
Slim-m7-5.1.1.beta.0.9-UNOFFICIAL-20151023-1934.zip

Schreib als Erster einen Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.