Jump to content
Trafalgar Square

Android - Custom ROM kompilieren

56a912e5dbf72_Android-CustomROMkompilier

So kompiliert ihr eine eigene Custom ROM für euer Gerät. Das Kompilieren einer Custom-ROM kann auf einem Linux PC oder Mac gemacht werden.

 

Warum soll/kann man selber kompilieren:

 

Wenn man selber buildet, kann man jedem erzählen, dass man die ROM direkt vom Quellcode gebaut hat und das nötige Wissen dazu hat. Zudem kann man sich sicher sein, dass keine unnötigen Modifikationen am Build gemacht hat. Natürlich darf man auch eigene Modifikationen einbauen.

 

Kommen wir zur:

 

 

Android Custom ROM kompilieren - Anleitung

Voraussetzungen

  • PC mit mindestens 4GB RAM und einem 64-Bit Linux
  • Mindestens 80GB Speicherplatz
  • (schnellen) Internetanschluss
  •  Anstatt Linux geht auch ein MAC auf dem OS X läuft.

 

Vorbereitungen:

Benötigte Programme installieren:

sudo apt-get install git-core gnupg ccache lzop flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5 lib32z1 lib32bz2-1.0 lib32ncurses5-dev x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc readline-common libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.8-dev python

 

Um den ganzen Quellcode eurer Custom ROM laden zu können, braucht man Repo (Git). Alle Sourcen sind auf Github verfügabr, sodass sie jeder laden kann. Um das Programm repo zu installieren, kopiert ihr folgenden Befehl rein mkdir ~/bin && curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo && chmod a+x ~/bin/repo

Jetzt wird git heruntergeladen, indem ihr folgenden Befehl eingibt sudo apt-get install git

Jetzt geht es ans Herunterladen des Quellcodes. Dazu müsst ihr den Namen eurer ROM hinter dem Befehl mkdir eingeben. Zum Beispiel mkdir Cyanogenmod

Jetzt geht es in den Ordner rein, indem ihr cd Cyanogenmod eingibt. Nun müsst ihr euch entscheiden, welche ROM ihr kompilieren wollt. Dazu gibt ihr ihr:


BlissPop    repo init -u https://github.com/TeamBliss-LP/android.git -b mm6.0
OmniRom    repo init -u git://github.com/omnirom/android.git -b android-6.0
Cyanogenmod    repo init -u git://github.com/CyanogenMod/android.git -b cm-13.0

RR:            repo init -u https://github.com/ResurrectionRemix/platform_manifest.git -b marshmallow

ein.

 

Laden des Quellcodes:

  • repo sync eingeben, damit der gesamte Quellcode heruntergeladen wird.
  • Local Manifest auf GitHub oder hier im Thread finden, mit dem man für das jeweilige Gerät bulden kann.
  • Local Manifest muss in /.repo/local_manifests/roomservice.xml
  • Noch einmal repo sync, um die restlichen Geräte-Daten zu laden.

 

Builden:

  • . build/envsetup.sh
  • breakfast gerätenamen
  • brunch gerätenamen

Roomservice.xml für CyanogenMod 13

 

Samsung Galaxy S3:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="CyanogenMod/android_device_samsung_i9300" path="device/samsung/i9300" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-13.0" />
</manifest>

 

Samsung Galaxy Note 2:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remove-project name="CyanogenMod/android_frameworks_native" />
  <project name="ivanmeler/android_frameworks_native" path="frameworks/native" remote="github" />
  <project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" />
  <remove-project name="CyanogenMod/android_device_samsung_smdk4412-common" />
  <project name="ivanmeler/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" />
  <project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" />
  <project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" />
  <remove-project name="CyanogenMod/android_hardware_samsung" />
  <project name="ivanmeler/android_hardware_samsung" path="hardware/samsung" remote="github" />
  <project name="Haxynox/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="Mmm" />
  <project name="ivanmeler/android_device_samsung_n7100" path="device/samsung/n7100" remote="github" />
  <project name="Haxynox/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="Mmm" />
  <project name="CyanogenMod/android_external_stlport" path="external/stlport" remote="github" />
  <remove-project name="CyanogenMod/android_hardware_libhardware" />
  <project name="ivanmeler/android_hardware_libhardware" path="hardware/libhardware" remote="github" />
</manifest>

 

Roomservice.xml für Android Ice Cold Project 11 (AICP)

 

Samsung Galaxy S3:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="AICP/device_samsung_i9300" path="device/samsung/i9300" remote="github" revision="mm6.0" />
  <project name="AICP/proprietary_vendor_samsung" path="vendor/samsung" remote="github" revision="mm6.0" />
  <project name="CyanogenMod/android_device_samsung_smdk4412-common" path="device/samsung/smdk4412-common" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_kernel_samsung_smdk4412" path="kernel/samsung/smdk4412" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github" revision="cm-13.0" />
  <project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-13.0" />
</manifest>

 

Gut, dass du dich auskennst (ich hatte das auch mal getan, aber dann nicht weiter gemacht).

Wichtig wäre vielleicht zu erwähnen, wie man das macht, wenn man nicht gerade ein S3, N2, OpTwo hat.

Sprich: was tun bei alternativen Geräten?

 

Kernel Sources beziehen und weiter?

 

Ansonsten aber schöne Anleitung! Gute Arbeit :-)

Hi,

 

dafür braucht man folgende Dateien oder Quellen:

  1. Geräte-Daten (device_hersteller_gerätenamen)
  2. Kernel (kernel_hersteller_art)
  3. Vendor (proprietary_vendor_hersteller)

Wenn es auf XDA zum Beispiel eine CyanogenMod Custom ROM gibt, kann man auch andere Custom ROMs kompilieren.

Wenn wir mal die Files von Odys bekommen, dann könnten wir unter Umständen auch eigene Roms herstellen, mit Android 6.

Leider habe ich die Sources vom Kernel noch nicht (Neo 6 LTE). Bzw. fehlen mir da sicher auch weitere Dateien..

Hy.

Wenn ich bei Ubuntu diese lange Installation starte kommt: 

 

E: Unable to locate package lib32bz2-1.0
E: Couldn't find any package by glob 'lib32bz2-1.0'
E: Couldn't find any package by regex 'lib32bz2-1.0'
E: Unable to locate package mingw32
E: Package 'lib32readline-gplv2-dev' has no installation candidate
E: Unable to locate package lib32readline5
E: Unable to locate package lib32bz2-dev
E: Unable to locate package libwxgtk2.8-dev
E: Couldn't find any package by glob 'libwxgtk2.8-dev'
E: Couldn't find any package by regex 'libwxgtk2.8-dev'
.

 

Was mache ich Falsch??? Habe auch schon in anderen Foren geschaut. Gleiche Probleme... 

 

Ich möchte für ein Tab S 10.5 ein Cyanogenmod erstellen. Um auch Updates selbst erstellen zu können.

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar hinterlassen zu können


×