RootBox ROM mit Openpdroid kompilieren

  • 29 Antworten
  • Letztes Antwortdatum
4

4ndr0

Dauer-User
430
Moin,

da sich mein ROM immer noch nicht mit dem Auto-Patcher patchen lässt, wollte ich es jetzt mal manuell versuchen. Ich habe etwas derartiges noch nie gemacht und bin ein bisschen hilflos.

Ich bin gerade bei dieser Anleitung Build RootBox

Im Moment läuft das repo sync. Die Files landen unter ~/rootbox/.repo

Danach soll es hier weitergehen https://github.com/OpenPDroid/OpenPDroidPatches

Wie muss ich da vorgehen? Muss ich erst das komplette repo clonen? Und in welchen Ordner? Wann kann ich die Befehle ausführen?

Macht das überhaupt Sinn, was ich da versuche? ^^
 
Du gehst schon richtig vor. Rein theoretisch müsste es auch funktionieren.
Du wartest erst mal ab bis der Code für deine ROM runtergeladen ist.
Die Repo von OpenPDroid besteht nur aus ein paar Patch Dateien, ob du sie nun per git clone oder manuell runterlädst, ist egal. Repo sync ist jedoch dafür der falsche Befehl. Git clone für OpenPDroid solltest du jedoch in einem eigenen Ordner machen und nicht im Ordner deiner ROM Source.
Danach wendest du die Patches wie beschrieben an und baust dann deine ROM.

Gesendet von meinem Nexus 7 mit Tapatalk 2
 
  • Danke
Reaktionen: 4ndr0
So, war gerade beim letzten Punkt. Leider lässt sich das offenbar nur auf einem x64 System bauen. Deshalb habe ich herade ein x64 Debian aufgesetzt und kopiere den kram gerade rüber.

Beim letzten Punkt
Code:
brunch <DEVICE_TARGET>
Mache ich da Einfach ein
Code:
brunch <i9300>
?

\\
So ich habs raus, leider kommt ein Fehler beim Brunch. Hast jemand ne Idee?

\\
Ich habe jetzt einfach mal den Build-Prozess gestartet, die ganzen Dateien sind ja schon gepatcht. Scheint zu laufen. Allerdings ist ja der Brunch noch nicht durchgelaufen. Oder muss ich den möglicherweise danach starten?
 

Anhänge

  • debi64 [wird ausgeführt] - Oracle VM VirtualBox_2013-01-26_22-42-31.png
    debi64 [wird ausgeführt] - Oracle VM VirtualBox_2013-01-26_22-42-31.png
    9,2 KB · Aufrufe: 367
Zuletzt bearbeitet:
Du musst schon erst brunch laufen lassen, dein Gerät gibst du ohne die eckigen Klammern ein. Warum folgst du nicht einfach der Anleitung, die du verlinkt hast? So wie ich es sehen, gibt es ein Script bei der ROM, das alles notwendige in die Wege leitet.
Wenn du von der einen Anleitung zu einer anderen wechselst, solltest du es schon erwähnen, damit man deine Schritte nachvollziehen kann. Ins Blaue raten ist bisschen arg sinnlos.
 
Ok, ich fange nochmal von vorne an. Wenn ich den Brunch mit 'brunch i9300', bekomme ich erstmal folgenden Fehler:

You are attempting to build with an unsupported version of java

Your version is: java version "1.6.0_18".
The correct version is: Java SE 1.6

Laut der Google Anleitung benötige ich sun-java6-sdk, aber das finde ich nicht in den Paketquellen. add-apt-repository funktioniert auch nicht :( Bin auf Debian 6.0.6 x64.

\\
Ok, bin etwas weiter, ich muss die non-free Sources freischalten, dann kann ich das Sun SDK installieren.

Der ursprüngliche Beitrag von 00:12 Uhr wurde um 00:39 Uhr ergänzt:

So, jetzt scheint das Brunch endlich durchzulaufen. Der packt jetzt diverse files nach out/. Damit wäre ich mit der OpenPDroid Anleitung durch.

Als nächstes mit der RootBox Anleitung weiter? Also einfach ein './build_rootbox.sh i9300 nosync 2'?
 
Zuletzt bearbeitet:
Das ist dann aber doppeltgemoppelt. Er baut dir schon die ROM, bzw was aus dem System.
Den letzten Schritt der OpenPdroid ANleitung hättest du ausladden müssen. Daher auch meine Verwirrung, dacht du bist schon beim Erstennen der ROM. Muss gestehen, ich hatte die Zeile heute morgen auch überlesen gehabt. Die letzte Anweisung von OpenPDroid ist nur wenn du schon deine ROM erstellt hast, es erstellt damit quasi nur die veränderten Komponenten.
Da du deine ROM noch nicht erstellt hast, hättest du es überspringen können.

Ist aber nicht wirklich tragisch, betrachte es als Testlauf und bau danach mit der Anleitung der ROM. Auch wenn jetzt eine ROM bei rauskommen solle, kann es sein das da was fehlt.
 
  • Danke
Reaktionen: 4ndr0
Mmh so ganz hab ichs immer noch nicht verstanden. Also erst './build_rootbox.sh i9300 nosync 2' und danach mit Brunch die veränderten Komponenten drüberbügeln?

Aber das Build-Skript erstellt doch bereits die fertige, signierte zip, wenn ich das richtig verstanden habe.
 
Nein, brunch brauchst du gar nicht.
Er ist nur für Leute, die bevor sie die OpenPDroid Patches angewendet hatten, ihre ROM kompilierten. Da das bei dir nicht der Fall ist, fällt der Schritt ganz aus. Du hast die notwendigen Änderungen für OpenPDroid deinem Code hinzugefügt, wenn du jetzt deine ROM erstellst, wird es direkt mit den OpenPDroid Änderungen erstellt :)

jupp...das hast du richtig verstanden, deswegen brauchst du brunch nicht.
 
  • Danke
Reaktionen: 4ndr0
Alles klar, dann hätte ich den Build-Vorgang ja vorhin nicht abbrechen brauchen. Weil du meintest, ich müsste erstmal den Brunch laufen lassen ^^

Dann lösch ich den out Ordner mal weg und starte das Build mit dem RoodBox Skript. Bis hierhin schonmal vielen Dank für deine Hilfe, sieht so aus, als wär ich jetzt auf dem richtigen Weg :)
 
Ich meinte es weil du schriebst, das du gerade brunch laufen lässt. Hatte ja daher gefragt, ob du zur einer anderen Anleitung gewechselt bist, da die ROM mit dem Script erstellt wird. Auch egal.
Bevor du den build nun laufen lässt, gib erst "make clean" ein, damit er zuvor erstelltest auch löscht und dann erst den Script. Wenn du schon weiter bist, nicht wieder abbrechen.
 
make clean habe ich nicht gemacht, habe nur den out Ordner gelöscht und dann das Skript mit './build_rootbox.sh i9300 nosync 2' gestartet. Jetzt ist er munter am Kompilieren.

Reicht es, wenn ich für die nächste Nightly einfach wieder 'repo sync' mache? Werden dadurch die gepatchten Files wieder überschrieben, so dass ich die wieder patchen und neu kompilieren kann? Ich muss ja hoffentlich nicht jedes Mal das komplette Repo runterladen ^^
 
Die Komplette repo muss du nicht runterladen. Repo sync kann dir jedoch u.U. die gepatchten Dateien überschreiben bzw. den Sync mit einer Fehlermeldung abbrechen., daher solltest du vor einem Sync die Patches, wie auf github erklärt, entfernen, syncen und dann die Patches neu drauf machen.
 
  • Danke
Reaktionen: 4ndr0
So, Build ist fertig, am Ende kam ein Fehler und ein flashable zip kann ich nicht finden. Was ist schiefgelaufen?
Code:
collect2: ld terminated with signal 7 [Bus error]
make: *** [/root/rootbox/out/host/linux-x86/lib/libbcinfo.so] Error 1
make: *** Deleting file `/root/rootbox/out/host/linux-x86/lib/libbcinfo.so'
make: *** Waiting for unfinished jobs....
make: *** [/root/rootbox/out/target/product/i9300/obj/SHARED_LIBRARIES/libbcinfo_intermediates/LINKED/libbcinfo.so] Error 1

\\
Anscheinend war die Disk voll. Unglaublich, was der Kram an Space benötigt... Habe jetzt nochmal 9 GB freigeschaufelt und neu gestartet.
 

Anhänge

  • debi64 [wird ausgeführt] - Oracle VM VirtualBox_2013-01-27_07-24-26.png
    debi64 [wird ausgeführt] - Oracle VM VirtualBox_2013-01-27_07-24-26.png
    11,3 KB · Aufrufe: 260
  • FTP Rush ftproot@192.168.100.png
    FTP Rush ftproot@192.168.100.png
    8,2 KB · Aufrufe: 308
Zuletzt bearbeitet:
So um die 100gb sollte man schon frei haben, ist der empfohlene Richtwert auch wenn etwas weniger gebraucht wird.
 
So, Build fertig, OpenPDroid funzt! Danke!
 
Hallo zusammen

habe mich heute Nachmittag mit dem Thema Openpdroid und RootBox beschäftig... leider konnte ich es noch nicht funktionsfähig implementieren... am Schluss heisst es immer wenn ich den PrdroidManager öffnen möchte, dass die Pdroid Core nicht implementiert sei :confused2:

Nunden, mein vorgehen war folgendermassen:

1. habe auf Debian Basis die ganze Umgebung eingerichtet um nativ die RootBox erstmal kompilieren zu können - dies klappt.

2. habe ich mir einen clone von OpenPDroidPatches nach /home/i9300/OpenPDroidPatches geholt

3. die patches in meine RootBox Folder geingeholt:
cd ~/RootBox
cd build; git checkout -b openpdroid; patch -p1 < ~/OpenPDroidPatches/openpdroid_4.2_build.patch
cd libcore; git checkout -b openpdroid; patch -p1 < ~/OpenPDroidPatches/openpdroid_4.2_libcore.patch
cd packages/apps/Mms; git checkout -b openpdroid; patch -p1 < ~/OpenPDroidPatches/openpdroid_4.2_packages_apps_Mms.patch
cd frameworks/base; git checkout -b openpdroid; patch -p1 < ~/OpenPDroidPatches/openpdroid_4.2_frameworks_base.patch
cd frameworks/opt/telephony; git checkout -b openpdroid; patch -p1 < ~/OpenPDroidPatches/openpdroid_4.2_frameworks_opt_telephony.patch
cd ~/RootBox;

4. danach habe ich mir die RootBox compiliert
. build_rootbox.sh i9300 8 clean

dann so eine gute Stunde später...
~/RootBox/out/target/product/i9300/RootBox-JB-i9300-Nightly-20130303.zip war mein build erstellt... aber eben, funktioniert nicht :crying:

Kann mir jemand mitteilen ob ich da einen step vergessen habe? Oder was ich bei der Umsetzung falsch gemacht habe?

wäre froh wenn mir jemand den "AHA" Effekt aufzeigen könnte :thumbsup:
 
Ich kenne das Script nicht, kann aber sein das er das clean nicht richtig ausgeführt hat.
Führe mal
Code:
make clobber
make clean
aus und ruf dein Script auf, jedoch ohne das clean.
Wenn dein Script clean nicht richtig ausgeführt hatte und du es auch nicht manuell gemacht hast, dann kann es passieren das nicht alles neukompiliert wird, das heißt er nimmt zum Teil kompilierte Dateien aus deinem ersten Durchgang ohne die patches.
 
ok, habe ich mal gemacht, lasse jetzt gleich einen neuen durchlauf starten.

btw, out folder ist jetzt auch komplett leer...

in etwa einer Stunde weiss ich dann mehr, info folgt :cool2:
 
2 Dinge mache ich anders als du:

1. Nach dem applyen der Patches:
Code:
. build/envsetup.sh
2. Zum Builden des ROMs:
Code:
./build_rootbox.sh i9300 nosync 2
Ich glaube, das 'nosync' ist wichtig, damit er nicht nochmal nen repo sync macht vor dem Kompilieren. Wie kommst du auf die Syntax '. build_rootbox.sh i9300 8 clean'?
 
dies habe ich so von der webseite übernommen (Build RootBox) :

You can run the following build script:
~$ . build_rootbox.sh -device- -sync- -thread- -clean-
  • Device: Choose between the following supported devices: i9100, i9100g, i9300, d2att, d2tmo, mako and grouper.
  • Sync: Will sync latest RootBox sources before building
  • Threads: Allows to choose a number of threads for syncing and building operation.
  • Clean: Will remove the entire out folder and start a clean build. (Use this at your discretion)
wenn ich mir den build_script genauer anschaue muss ich auch die reihenfolge korrekt so eingeben:
DEVICE="$1"
SYNC="$2"
THREADS="$3"
CLEAN="$4"


gesourced wird im script übringens auch, daher kannst du dir dein envsetup.sh schenken *ende klugscheiss* ;)
 
Zuletzt bearbeitet:

Ähnliche Themen

J
Antworten
2
Aufrufe
1.135
justinh13
J
V
  • vouager
Antworten
3
Aufrufe
1.802
Johan
J
J
Antworten
1
Aufrufe
1.323
mblaster4711
mblaster4711
Zurück
Oben Unten