[GUIDE] ParanoidAndroid fürs N4 mit Ubuntu 13.10 selbst compilieren

  • 99 Antworten
  • Letztes Antwortdatum
bitboy0 schrieb:
So ne Bibel hat 7MB ... für Android liegen fast 10GB auf der Platte???? Wer bitte ist in der Lage in 10GB Sourcen wirklich zu wissen was genau wo steht und warum???

Mit der Bibel kannst du aber weder telefonieren noch Emails empfangen, chatten, surfen oder ein Spiel spielen. ;) Und du kannst ja gerne den ganzen Quellcode nach verdächtigen Sachen durchschauen... also theoretisch, wenn du mehrere Jahrzehnte Zeit hättest... aber ich denke mal, dass es tatsächlich genug Leute gibt, die sich stückchenweise durch den Code wühlen. So wie ja auch oft Sicherheitslücken gefunden werden, würden doch sicherlich auch anderere verdächtige Passagen auffliegen.

Was ich ansonsten gerne wüsste wäre, was "thumb c++" und all die farbigen Abkürzungen am Zeilenanfang bedeuten. :confused2:
 
Der Vergleich galt nicht den Funktionen ;) Eine Bibel ist aber einfach ein gutes Beispiel für ne MENGE Text. Wenn man grob überschlägt bräuchte man 1400-1500 Bücher im Umfang der Bibel um den Quelltext für ein "telefon" da rein zu drucken ... DAS finde ich einfach beeindrucken UND gruselig!

Kein Wunder das manche Lücken in Linux erst nach vielen Jahren gefunden wurden und sicher sind noch genug Lücken da! Bei solchen Massen an Quelltext eine kleine, unsaubere Stelle zu finden ist wirklich nicht so trivial ;) Und das auch dann wenn es OpenSource ist und tausende Leute das ständig umgraben.

gruß
 
noch ein kurzer tipp, falls ihr wo änderungen durchführen wollt bietet es sich an, mit repo start BranchName -all einen eigenen zweig (mit --all in allen projekten) zu starten, wenn ihr dann z.b. in frameworks/base etwas ändert (und mit git add & git commit kommentiert) wird es beim nächstem repo sync wieder angewendet (wobei es aber natürlich zu konflikten kommen kann).
repo branch zeigt den jeweiligen zweig der Projekte
(z.b. so
repo branch
6BsdxOv7FzsYIW3Q5s3Hi8
)

repo info -o zeigt die lokalen änderungen.
 
Zuletzt bearbeitet:
Package complete:

Total time elapsed: 97 minutes (5859.221177006 seconds)

In einer Virtual-Box mit 6GB RAM und QuadCore IvyBridge...
Dauert das jedes mal so lange oder kann er erkennen wenn etwas nicht verändert wurde?

gruß
 
Also bei meinem gescheiterten Versuch bei den er zumindest mit compilieren durch war sagte er heut morgen was von rund ner Stunde.
Mit i7 2600k, 8gb RAM. Ebenfalls in ner VM.
 
beim nächsten mal gehts schneller (wenn du z.b. jetzt mal in out/.../system/build.prop löscht oder ne andere Datei gehts fix, also in ein paar min). genauso nach erneutem sync (nur was geändert wurde wird neu kompiliert aber die build.prop sollte gelöscht werden sonst hast du das alte build datum usw. drin). Nach make clobber/clean dauerts wieder so lange. ~90 min is aber ganz ok
 
  • Danke
Reaktionen: bitboy0 und kamanu
Wenn ich nun auch Slim z.b. bauen will oder versuchen will was aus der einen in die andere Rom zu übernehmen...immer erst für jede Rom diese 10 Gig laden muss??
 
gadjetorama schrieb:
Wenn ich nun auch Slim z.b. bauen will oder versuchen will was aus der einen in die andere Rom zu übernehmen...immer erst für jede Rom diese 10 Gig laden muss??

Es gibt wohl die Möglichkeit, mit dem Parameter --reference den repo init Befehl zu erweitern, so dass ein bereits vorhandenes runtergeladenes repo soweit möglich verwendet wird. Den genauen Befehl weiß ich leider nicht mehr (bzw. bin grad zu faul, von Win auf Ubuntu zu wechseln, um nachzuschauen), hab das mit PA und AOSPAL gemacht, da letzteres auf PA basiert. Ob es auch mit zwei ganz verschiedenen ROMs funktioniert, weiß ich nicht.
 
Zum 1. Ja, ist dann wieder die volle größe wenn du die kompletten rom syncst. Wenn du nur sachen von rom a nach rom b übernehmen willst, wechselst du erst bei dir am pc in den enstprechenden Ordner (bzw. Projekt)

z.b. frameworks/base, dann fügst du mit

git remote add -t branch Name https://cloneurl.git (-t branch kannst du angeben musst du nicht )

das hinzu von wo du picken möchtest und dann kannst du mit

git fetch

erst das zeug runterladen dann mit

git cherry-pick Commit

das entsprechende picken (und musst danach, je nachdem was ist ggf. die konflikte "lösen" ), also z.b:

cd frameworks/base
git remote add -t kk4.4 slimroms https://github.com/SlimRoms/frameworks_base.git
git fetch slimroms
git cherry-pick 6229c15fa9c0b7421d04f46e259110b82ef4c3d1
für z.b. das da Keaguard: enable translucent keyguard by default

mit gitk kannst du deine Änderungen nochmal ansehen (oder git log)
mit git reflog siehst du den ganzen Verlauf
wenn du zuviel mist beim picken gebaut hast und ein sch... durcheinander ist kannst du mit
git reset --hard CommitID
zu dem enstprechenden stand zurück springen (in git reflog siehst du das ganze sehr schön und kannst auch zurück vom zurück, solange entsprechende kommentiert wurde / git commit)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: gadjetorama
Gibt es für das auch ne GUI ? Ich weiß die "echten" Indianer kennen nur die Kommandozeile, aber was da an Text durchrauscht ist eh viel zu viel um es zu lesen!

Nur eben repo syncen und "make" sind ja kein Problem, ne ...

btw. die ROM läuft und die Änderungen im Vergleich zu Original Android sind erst mal sehr dezent! Aber das sehe ich gar nicht als Fehler an! Der Weg den PA da geht ist in meinen Augen gut und das wirkt meißtens sehr konsistent! Aber man sucht natürlich manches an den gewohnten Stellen, wo es jetzt nicht mehr ist.

Wie sieht das aus eigentlich ... ist es "okay" die selbst kompilierte Version frei zu geben? Oder soll das nur jeder so für sich machen?

gruß
 
für git zeug gibts (imo ne ganz gute) gui, heißt git cola einfach in der paketverwaltung danach suchen, für sync und make kannst du dir ja ein skript basteln das alles gleich in einem rutsch passiert. mit &> könntest du "den Bildschirm" stdout (standartausgabe) und stderr (standartfehlerausgabe) in ne datei umleiten, dann kannst du es dir, wann auch immer, in Ruhe ansehen.
 
  • Danke
Reaktionen: bitboy0
Da merk ich doch glatt das ich bei Linux echt nur Anfänger bin. Das zu installieren war einfach, aber wenn ich das starte fragt er was er öffnen soll ... und ich finde nichts was ihm gefällt? Wo steht denn das verzeichnis/datei welches COLA öffnen will?

home/android/ .. ??? und dann?

gruß
 
z.b in DeinPfad/frameworks/base dann siehst du mehr. Sonst könntest du ein neues Projekt starten. So überall wo es einen .git odner gibt, gehts
(bzw. überall wo die 'git' befehle funktionieren).

Sieh dir das bild an dann wirds hoffentlich klarer

edit:
2. bild dazu
 

Anhänge

  • Screenshot from 2013-12-10 15:47:51.png
    Screenshot from 2013-12-10 15:47:51.png
    64,2 KB · Aufrufe: 307
  • Screenshot from 2013-12-10 15:49:18.png
    Screenshot from 2013-12-10 15:49:18.png
    92,6 KB · Aufrufe: 259
  • Danke
Reaktionen: bitboy0
Gibt es eigentlich schon irgendwo eine Art Sammlung von lohnenswerten cherry picks? Finde es sehr mühsam, github zu durchsuchen, und die commits haben auch nicht immer aussagefähige namen oder sind zweigeteilt, wo ich dann nicht weiß, wo der zweite Teil zu finden ist.

Eine Liste wo steht z.B. SlimRom Pie --> commit hier oder CM Quicksettings --> commit da wäre für Anfänger echt hilfreich. ;)
 
ne gibts nicht und wäre auch wohl eher sinnlos. größtenteils steht ja (1/2) dabei (meist hat dann so ein framework teil einen packages/apps/Settings teil). Teilweise sieht mans im gerrit besser(bei pa: https://gerrit.paranoidandroid.co/#/q/status:merged,n,z . Einzig bei pa ist zur zeit komisch das alles bis auf packages/apps/Settings alt ist.
 

Anhänge

  • 1.png
    1.png
    23,3 KB · Aufrufe: 218
  • 2.png
    2.png
    48,1 KB · Aufrufe: 226
Zuletzt bearbeitet:
Das so eine komplexe Software überhaupt "einfach so" selbst von diesbezüglichen Anfängern compiliert werden kann ist schon cool! Wenn es die nightlys einfach direkt schon gäbe hätte ich damit aber vermutlich nicht angefangen.

Ich bin was diese ganzen extra Funktionen angeht aber auch nicht so gierig! Das meißte was zusätzlich aus anderen ROM kommt hat mir auf längere Sicht nicht gefallen. Tatsächlich nutzen würde ich die hybrid settings und ein paar Sachen aus den Dialogen. So sieht es einfach auch viel einheitlicher aus und das gefällt.

Aber es hat auch so einen Vorteil: Die Updates am Quelltext brauchen wenig Bandbreite auf den Servern im Vergleich zu den fertigen ZIP-Files. Und das erstellen kann ich jetzt selber machen. Wenn ich dann doch mal Lust bekomme kann ich auch mal selber versuchen Hand anzulegen ;) Das ist dann schon ganz gut!
 
Mhm. Der Build hat geklappt. Flashen ging auch. Starten tut er ebenfalls. Alles funktioniert. Bis auf: Die Verbindung zu den Google-Servern. Internet selbst ist da. Jemand ne Idee?

Nach nem Full Wipe läuft es jetzt :)
 
Zuletzt bearbeitet:
Jawoll, hat geklappt. Super Anleitung :)

Nur sagt mal, wenn jetzt was von PA verändert wird... dann muss man doch nicht wieder das ganze Zeugs laden, oder doch?
Gruß
 
Wenn ich das richtig verstanden hab, musst du nur die letzten beiden Schritte wiederholen.

repo sync (dabei wird dann alles Neue geholt)
und
./rom-build.sh mako (dabei werden dann nur die Änderungen neu compiliert. Wodurch es wohl etwas schneller geht :p )

Edit:
Ich hab heute morgen aus Spaß noch mal ne Runde kompiliert. Nach dem Flashen dann wieder dasselbe Problem: Keine Verbindung zu den Google-Servern aber Internet an sich funktioniert :/
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: androgalaxy
Kann man sich den Gesamtfortschritt/Restzeit beim repo sync im Terminal anzeigen lassen?

Habe von Ubuntu auf Mint gewechselt und muss die ganze Repo jetzt nochmal laden. Eine Prozentanzeige (vielleicht im Titel des Terminals) wäre top.
 
Zuletzt bearbeitet:
Zurück
Oben Unten