[Tutorial] Wie erstellt man ein ROM aus den Sourcen (AOSP, CM, AOKP, AOSPA usw...)

  • 197 Antworten
  • Letztes Antwortdatum
Android4.4KitKat schrieb:
PPS: Die Entwickleroptionen sind manchmal noch ausgeschaltet, also müssen diese oben in der Leiste mit dem Symbol manchmal noch eingeschaltet werden.

sie sind immer aktiviert, wenn du -eng compilierst.
 
Das Problem ist, dass mein Desire HD, auf das ich flashen will, von Ubuntu nicht erkannt wird. Da sind die Entwickleroptionen aktiviert. Auf Windows 7 geht es auch.
 
Ich hätte mal eine Frage zu den Device-Trees. Ich würde gerne AOSP für mein Huawei Y300 bauen. Es gibt ja schon eine funktionierende CM11-Device-Tree, allerdings sind CM-Trees bekanntermaßen ja nicht gleich aufgebaut, wie die AOSP-Trees.
Daher jetzt die Frage: Wie kann ich die CM11-Tree zum Bau eines AOSP-Android benutzen bzw geht das überhaupt?

LG Shadowghost
PS: Bei der CM11-Tree beziehe ich mich auf den Github von Dazzozo: https://github.com/Dazzozo
 
Dazu wäre folgendes zu sagen:

Die notwendigen Änderungen, dass ein Build durchläuft sind machbar. Ich habe aus meinem Acer A21x Device-Tree auch schon einen Device-Tree gemacht, dass ein AOSP Build durchläuft.

Allerdings konnte das Ergebnis nicht auf den Bildschirm des Gerätes zugreifen, denn in den ganzen Custom-ROMs sind in den Sourcen die von AOSP übernommen werden, Anpassungen drin, dass auch neuere Android-Builds mit älteren 'Vendor-Blobs' (Das sind die Bibliotheken, die die Hersteller der Geräte ausliefern, um auf ihre Hardware zuzugreifen Stichwort HAL->Hardware Abstraction Layer) noch laufen. Das liegt daran, dass ein ein Hersteller Vendor-Blobs für eine bestimmte Android-Version anbietet. Für eine neuere Android-Version müsste er neuere Vendor-Blobs schreiben, oder Android müsste auf die älteren API-Versionen des HAL-APIs zugreifen. CM macht das bei Bedarf (gesteuert durch Build-Zeit-Flags wie 'BOARD_NEEDS_NATIVE_FB' und viele weitere...) AOSP tut das aber nicht.

Das heißt, du müsstest ggf die Sourcen von AOSP anpassen...

MfG Uwe
 
Hallo Ich würde gerne einen carbon Rom bauen für das a511
Mein Problem ist nur das ich nicht genau weiß was geändert werden muss an dem cm device tree bzw am kernel ? Dazu gibt es leider keine Anleitung wie zu pa oder omni !
Hoffe einer von euch kann mir helfen und sagen was ich ändern muss
Rcmax6696
 
Einfach so kann man kein ROM bauen, dafür sind sehr gute Kenntnisse in Java und/oder C sowie gute Kenntnisse von Linux oder Mac OS nötig ;)

Und das geht leider nicht so ohne weitere Vorkenntnisse, habe mir das ganze nämlich auch mehrfach angesehen.

Gesendet von meinem GT-I9505
 
Moin Moin ,
kann hier evl. Tipps zum Raspberry Pi und KitKat geben.
Da KitKat ja wieder mit 512 KB Ram auskommen soll müsste es ja jetzt besser klappen.

Vielen Dank im vorraus Askoa
 
Vergiss es. Der PI kann nur den V6-Befehlssatz, Android braucht aber den V7-Befehlssatz.
 
Zuletzt bearbeitet von einem Moderator:
Danke für die schnelle Antwort.
Nur Linux ?

gruss askoa
 
Nur ARMv6-Kompatible Systeme.
 
Zuletzt bearbeitet von einem Moderator:
Mal eine blöde Frage am Rande, les mich momentan ein wenig ein in Build Umgebung bauen usw, es wird so oft von Ubuntu 12 gesprochen. Ich nutze jetzt aber seit den 14.10 utopic unicorn release die ganze Zeit schon das 14er.. Werde ich so viele Nachteile mit dem 14er haben im Gegensatz zum 12er ?
 
Nö, keine Probleme. Inzwischen ist auch Ubuntu 14 supported
 
Hi,
Ich bin jetzt auch mit dem Rom Building gestartet und soweit alles gut.
Nur wenn ich jetzt Änderungen vornehme sind die ja selbstverständlich nach einem sync wieder verschwunden.
Also müsste ich diese ins Github laden und per local_manifest beim sync wieder laden oder?

Da die Frage wie ich die Daten ins Github laden kann. Wenn ich was in den Settings ändere, muss ich dann alle Daten der Settings apk hochladen oder nur die Änderung? Und wenn CM diese aktualisiert hat, bekomme ich das ja garnicht mit oder?
Außer ich gucke mir den Changelog an.

Ich hoffe da kann mir jemand helfen :)
 
Hast du deine Änderungen auch kommentiert? Normal sollten sie nach einem sync wieder angewendet werden. (vorher mit repo start Dein_Branchname --all einen neuen branch erstellen, bin jetzt aber auf die schnelle nicht sicher ob das überhaupt nötig ist)
Sonst mal mit git branch --set-upstream-to= Quelle hinzufügen

ins git pushen mit:
git remote add Remote_Name Adresse (z.b. git remote add my_github_repo git@github.com:blalbalba/frameworks_rs.git
git push Remote Lokaler_branch (z.b. git push my_github_repo master )

Ich hab die ein paar Bilder angehangen wo es (hoffentlich) klarer wird (ssh key musst du bei github hinterlegen; gibt ne gute Beschreibung in der hilfe von denen)
 

Anhänge

  • Bildschirmfoto36-git.png
    Bildschirmfoto36-git.png
    31,7 KB · Aufrufe: 387
  • Bildschirmfoto37-git.png
    Bildschirmfoto37-git.png
    32,6 KB · Aufrufe: 395
  • Bildschirmfoto38-git.png
    Bildschirmfoto38-git.png
    37,8 KB · Aufrufe: 374
  • Bildschirmfoto41-git.png
    Bildschirmfoto41-git.png
    42,5 KB · Aufrufe: 383
Zuletzt bearbeitet:
  • Danke
Reaktionen: fromfuture
Ich habe noch keine Änderungen vorgenommen. Ich wollte nur im Vorfeld wissen ob die nach einem Sync wieder weg sind.
Mit den Bildern ist es auch noch leichter zu verstehen. Danke :)
Aber wie ist das, wenn ich zb die display settings xml ändere, dann muss ich ja in der local manifest xml diese vorher löschen und meine danach syncen lassen oder?
Und muss ich meine gesamte Settings apk dann hochladen?
 
ne musst du nicht löschen

als beispiel mal ein "local_manifest" von mir:

Code:
<manifest>
  <remove-project path="device/lge/hammerhead" name="device/lge/hammerhead" />
  <remove-project path="device/lge/hammerhead-kernel" name="device/lge/hammerhead-kernel" />
  <remove-project path="prebuilts/clang/darwin-x86/3.1" name="platform/prebuilts/clang/darwin-x86/3.1" />
  <remove-project path="prebuilts/clang/darwin-x86/3.2" name="platform/prebuilts/clang/darwin-x86/3.2" />
  <remove-project path="prebuilts/clang/darwin-x86/arm/3.3" name="platform/prebuilts/clang/darwin-x86/arm/3.3" />
  <remove-project path="prebuilts/clang/darwin-x86/host/3.4" name="platform/prebuilts/clang/darwin-x86/host/3.4" />
  <remove-project path="prebuilts/clang/darwin-x86/host/3.5" name="platform/prebuilts/clang/darwin-x86/host/3.5" />
  <remove-project path="prebuilts/clang/darwin-x86/mips/3.3" name="platform/prebuilts/clang/darwin-x86/mips/3.3" />
  <remove-project path="prebuilts/clang/darwin-x86/x86/3.3" name="platform/prebuilts/clang/darwin-x86/x86/3.3" />
  <remove-project path="prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.8" name="platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.8" />
  <remove-project path="prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" />
  <remove-project path="prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" />
  <remove-project path="prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.8" name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.8" />
  <remove-project path="prebuilts/gcc/darwin-x86/host/headers" name="platform/prebuilts/gcc/darwin-x86/host/headers" />
  <remove-project path="prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" />
  <remove-project path="prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9" />
  <remove-project path="prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.8" name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.8" />
  <remove-project path="prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.8" name="platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.8" />
  <remove-project path="prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.8" name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.8" />
  <remove-project path="prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9" name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9" />
  <remove-project path="prebuilts/python/darwin-x86/2.7.5" name="platform/prebuilts/python/darwin-x86/2.7.5" />
  <!-- Test gcc 4.9  -->
  <project path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" revision="master" />
  <project path="prebuilts/clang/linux-x86/host/3.6" name="platform/prebuilts/clang/linux-x86/host/3.6" revision="master" />
<!-- Other Projects Repo's -->
<remote  name="github"
           fetch="https://github.com/" />

<remote  name="slimroms"
           fetch="git://github.com/"
           review="https://review.slimroms.net:8443/"/>

<remote  name="omnirom"
           review="gerrit.omnirom.org"
           fetch="https://github.com/omnirom" />
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
  <!-- Koushs Superuser -->
  <project path="external/koush/Superuser" name="CyanogenMod/Superuser" remote="github" revision="cm-12.0" />
  <project path="external/koush/Widgets" name="CyanogenMod/Widgets" remote="github" revision="cm-12.0" />
  <!-- Apollo CM -->
  <project path="packages/apps/Apollo" name="CyanogenMod/android_packages_apps_Apollo" remote="github" revision="cm-12.0" />
  <!-- CM Phase Beam 
  <remove-project path="packages/wallpapers/PhaseBeam" name="platform/packages/wallpapers/PhaseBeam" />
  <project path="packages/wallpapers/PhaseBeam" name="CyanogenMod/android_packages_wallpapers_PhaseBeam" remote="github" revision="cm-11.0" />-->
  <!-- CM Phase Beam
  <project path="packages/wallpapers/PhotoPhase" name="CyanogenMod/android_packages_wallpapers_PhotoPhase" remote="github" revision="cm-12.0" />  -->
  <!-- CM Launcher3 -->
  <remove-project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" />
  <project path="packages/apps/Launcher3" name="CyanogenMod/android_packages_apps_Launcher3" remote="github" revision="cm-12.0" />
  <!-- CM file manager -->
  <project path="packages/apps/CMFileManager" name="CyanogenMod/android_packages_apps_CMFileManager" remote="github" revision="cm-12.0" />
  <project path="external/libtruezip" name="CyanogenMod/android_external_libtruezip" remote="github" revision="cm-12.0" />
  <!-- From CM Busybox -->
  <project path="external/busybox" name="CyanogenMod/android_external_busybox" remote="github" revision="cm-12.0" /> 
  <!-- Bash 4.3.x from [url]https://github.com/CyanogenMod/android_external_bash[/url] -->
  <project path="external/bash" name="CyanogenMod/android_external_bash" remote="github" revision="cm-12.0" />
  <!-- Libncurses -->
  <project path="external/libncurses" name="CyanogenMod/android_external_libncurses" remote="github" revision="cm-12.0" />
  <!-- DSP Manager -->
  <project path="packages/apps/DSPManager" name="CyanogenMod/android_packages_apps_DSPManager" remote="github" revision="cm-12.0" />
  <!-- CM aosp Browser -->
  <remove-project path="packages/apps/Browser" name="platform/packages/apps/Browser" />
  <project path="packages/apps/Browser" name="CyanogenMod/android_packages_apps_Browser.git" remote="github" revision="cm-12.0" />
  <!-- Unrar, Zip -->
  <project path="external/unrar" name="CyanogenMod/android_external_unrar" remote="github" revision="cm-12.0" />
  <project path="external/zip" name="CyanogenMod/android_external_zip" remote="github" revision="cm-12.0" />
  <!-- CM Lock Clock -->
  <project path="packages/apps/LockClock" name="CyanogenMod/android_packages_apps_LockClock" remote="github" revision="cm-12.0" />
  <project path="external/google" name="CyanogenMod/android_external_google" remote="github" revision="cm-12.0" />
  <!-- Calculator -->
  <remove-project path="packages/apps/Calculator" name="platform/packages/apps/Calculator" />
  <project path="packages/apps/Calculator" name="CyanogenMod/android_packages_apps_Calculator" remote="github" revision="cm-12.0" />
  <!-- CM Eleven -->
  <project path="packages/apps/Eleven" name="CyanogenMod/android_packages_apps_Eleven" remote="github" revision="cm-12.0" />
  <project path="external/android-visualizer" name="CyanogenMod/android_external_android-visualizer" remote="github" revision="cm-12.0" />
  <project path="packages/apps/AudioFX" name="CyanogenMod/android_packages_apps_AudioFX" remote="github" revision="cm-12.0" />
  <!-- Gallery2 -->
  <remove-project path="packages/apps/Gallery2" name="platform/packages/apps/Gallery2" />
  <project path="packages/apps/Gallery2" name="CyanogenMod/android_packages_apps_Gallery2.git" remote="github" revision="cm-12.0" />
  <!-- PhotoPhase -->
  <project path="packages/wallpapers/PhotoPhase" name="CyanogenMod/android_packages_wallpapers_PhotoPhase.git" remote="github" revision="cm-12.0" />
  <!-- AOSP Terminal -->
  <project path="external/libvterm" name="CyanogenMod/android_external_libvterm" remote="github" revision="cm-12.0" />
  <project path="packages/apps/Terminal" name="CyanogenMod/android_packages_apps_Terminal" remote="github" revision="cm-12.0" />
<!-- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -->
<!-- Propertiary vendor files -->
<remote  name="MV" fetch="file:///home/mv/Datengrab/android/Projekt/binaries/mako-L/vendor/" />
<project name="lge" path="vendor/lge" remote="MV" revision="master"/>
<project name="qcom" path="vendor/qcom" remote="MV" revision="master"/>
<project name="broadcom" path="vendor/broadcom" remote="MV" revision="master"/>
<!-- Grouper -->
<project name="asus" path="vendor/asus" remote="MV" revision="master"/>
<project name="elan" path="vendor/elan" remote="MV" revision="master"/>
<project name="invensense" path="vendor/invensense" remote="MV" revision="master"/>
<project name="nvidia" path="vendor/nvidia" remote="MV" revision="master"/>
<project name="nxp" path="vendor/nxp" remote="MV" revision="master"/>
<project name="widevine" path="vendor/widevine" remote="MV" revision="master"/>
</manifest>

apks musst du eigentlich gar nicht hochladen, wieso auch (baut sich ja so wie du sie hast durch die gepushten änderungen)

Und wie vorher gemeint mit repo start .... --all einen eigenen zweig erstellen, dann werden nach einem sync die sachen "gerebased" (also wieder angewendet), hab nochmal 2 bilder in den anhang mit bash als beispiel; allerdings hab ich die erst später hinzugefügt, mit git branch einen "eigenen" branch erstellt, danach wurden meine änderugen nach einem sync nicht wieder angewendet, erst nachdem ich mit git branch --set-upstream-to einen festgelegt hatte; sieht man auf dem 2 bild nach dem letzen "rebase" eintrag
 

Anhänge

  • Bildschirmfoto42-git.png
    Bildschirmfoto42-git.png
    54,5 KB · Aufrufe: 364
Zuletzt bearbeitet:
  • Danke
Reaktionen: fromfuture
Vielen Dank für deine Antworten und Mühe. Ich werde es die Tage ausprobieren und berichten.
Wie sieht das eigentlich mit den Mods aus. Ich sehe viele Roms die die gleichen Mods drin haben. Die werden die ja nicht alle separat entwickelt bzw geschrieben haben. Muss man da um Erlaubnis fragen oder reichen da Credits im Thread oder wie läuft das bei CM?
 
ne das kannst schon so "picken". Ändere einfach nicht den originalen kommentar, dann sieht ja jeder wo es herkommt.

(und wenn du sowas übernimmst oder z.b. cm_strings verwendest, würde ich noch das Copyright nicht ändern)

Achja ich würde 2 Bilder wieder löschen wenns dich nicht stört, ich hab nicht aufgepasst und meine emailadresse ist zu sehen, zwar nicht wirklich tragisch, aber ich hab sie trotzdem nicht so gerne auf Bildern iwo im internet
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: fromfuture
Ja na klar. Hab sie schon gespeichert.
Das mit dem picken muss ich auch noch lernen aber erst später :)
 
Hey, gibt es eine Anleitung, wie aus den Android Source und den Dateien von Motorola ein lauffähiges Rom compiliert werden kann?
 

Ähnliche Themen

cehuisken
  • cehuisken
Antworten
1
Aufrufe
894
Andy
Andy
D
Antworten
0
Aufrufe
2.533
Defier
D
E
Antworten
4
Aufrufe
2.211
Kardroid
Kardroid
Zurück
Oben Unten