- Forum-Beiträge: 1.591
20.02.2013, 12:41:49 via Website
20.02.2013 12:41:49 via Website
da ich mir seit kurzem vorgenommen habe meine eigene ROM zu entwickeln, und bei der Suche nach einer - möglichst deutschen - Anleitung ziemlich lange gebraucht habe, bis ich schließlich eine Englische gefunden habe, starte ich dieses Tutorial, was etwas genauer beschreibt, was man eigentlich machen kann/muss um sich seine eigene ROM zusammen zustellen.
Da ich selbst noch lerne, kann es sein, dass sich dieses Tutorial mit der Zeit erweitern, oder gar ändern wird. Daher empfehle ich zu warten, bis dieses Tutorial fertig ist. Oder lernt mit mir das Entwickeln und helft mir bei diesem Thread.
Mein Wissen habe ich zum größten und eigentlich ausschließlich von den XDA und der Bruzelstube. Daher an dieser Stelle einen Dank an alle, die mir geholfen haben und helfen Android und Modding zu verstehen:
Erwin von AndroidPIT für seine Unterstützung gerade bei den Anfängen. Er allein weis, wie lange es dauerte, bis ich gerootet habe ;)
Brain für seine geniale Website und den unzähligen hilfreichen Blogs
isidromxz von XDA für diesen Thread
dsixda von XDA für das kitchen
familyguy59 von den XDA für seine Unterstützung beim modden
rishabh.raj37 von XDA für diesen Thread, mit dem ich hoffentlich noch das portieren lernen werde
amarullz von XDA für Aroma. Anleitung wird folgen
he_stheone64 von XDA für diese Übersicht
anasdcool71 von XDA für diese Anleitung
Und Natürlich HTC fürs Desire, Google für Android und den anderen, die mir geholfen haben in meine Threads
-----------------------------------------------------------------------------------------------------------
Ich persönlich arbeite auf Windows 8 64 bit und habe das Desire. Tortzdem sollte dies auch auf anderen Betriebssytemen und auch mit anderen Smartphones funktionieren. Schaut einfach, im Link vom kitchen, ob euer Gerät unter den kompatibelen aufgelistet ist. Dann sollte all das hier auch bei euch funktionieren.
1. Was wird vorrausgesetzt?
Also ihr solltet schonmal ein wenig von eurem Handy wissen. Ich werde nicht damit anfangen zu erklären, was ein Hboot ist, oder Root-Rechte. Falls euch letzteres gar nichts sagt, könnt ihr euch in diesem Thread hier auf AndroidPIT schlau machen. Dieser hat mir auch so manches mal sehr geholfen
Links zum Rooten, Flashen, Hboot, Partitionieren.......
Ausserdem sollte das Gerät gerootet sein und ein Recovery installiert haben. Ich empfehle 4ext.
2. Software installieren
- ADB: Dies ist die Android Debug Bridge. Damit könnt ihr vom Computer auf euer Smartphone zugreifen. Da die ADB von Android ziemlich groß ist, gibt es eine zusammenfassung der wichtigsten Teile, die ihr benötigt. Diese könnt ihr euch von der Bruzelstube hier runterladen
Download
Zur Installation einfach das Archiv entpacken und am besten schonmal einen Entwickler Ordner auf eurer Festplatte anlegen. Als Beispiel nehme ich "C:/dev". Extrahiert euch dort die runtergeladenen Dateien. Starten könnt ihr die ADB über die cmd von Windows. Sucht nach cmd, rechtsklick als Admin ausführen. Navigiert in euren Ordner "C:/dev/adb-tools" und schließt euer Smartphone an den PC. Achtet darauf, dass unter Einstellungen > Entwicklung > Debugging aktiviert ist. Über den Befehl "adb devices" sollte dann euer Smartphone angezeigt werden. Weitere Befehle könnt ihr über "adb help" finden. Beachtet nur, dass im Bootloader die Befehle über "fastboot" statt "adb" eingegeben werden.
- dsixda's android kitchen: Hiermit könnt ihr viele Standartänderungen an einer ROM vornehmen, ohne dass ihr selbst in allen Dateien die Änderungen vornehmen müsst. Dies ist sehr hilfreich, damit man keine flüchtigkeits Fehler macht. Ladet euch dazu zunächst cygwin runter und vergewisser euch, dass Java installiert ist:
[url=http://www.cygwin.com/setup.exe]Download[url]
Führt die .exe aus und wählt "install from internet" aus. Als pfad könnt ihr wieder nehmen, was ihr wollt, ich nehme "C:/dev/kitchen".
Als nächstes werdet ihr aufgefordert einen Server auszuwählen. Keine Ahnung was der Unterschied ist, ich habe den Ersten genommen.
Als nächstes werdet ihr aufgefordert packages zu installieren. wählt dabei folgende aus. Achtet darauf, dass der Name genau der ist, den ich hier schreibe.
- gcc (unter 'Devel')
- perl (unter 'Interpreters')
- cpio (unter 'Utils')
- util-linux (unter 'Utils')
- ncurses (unter 'Utils')
- zip (unter 'Archive')
- unzip (unter 'Archive')
- wget (unter 'Web')
Startet jetzt den Shortcut auf dem Desktop. Es sollten ein paar Befehlszeilen durchlaufen. Gebt jetzt in die Befehlszeile Java ein. Es sollten einige Zeilen durchlaufen. Damit ist das Kitchen fast fertig installiert.
Jetzt müsst ihr noch das Kitchen an sich runterladen.
Download
entpackt die neuste Version und schiebt es in das Verzeichnis: "C:/dev/kitchen/home/NUTZERNAME/kitchen".
Startet jetzt wieder cygwin, entweder über den Shortcut, oder über die .bat im "C:/dev/kitchen" Ordner. gebt nun folgende befehle ein:
cd C:/dev/kitchen/home/NUTZERNAME/kitchen
./menu
damit sollte sich das kitchen starten.
Bei Problemen bitte folgenden Link durchgehen:
XDA Release Thread
3. Kurz zund Knapp
Da niemand von euch verlangt, Android neu zu erfinden, solltet ihr euch eine Vorlage runterladen. Sei es eine ROM von den XDA, von HTC, oder wo auch immer. Ich benutze im Moment eine Pre-Rootete Version von Gingerbread mit HTC Sense.
Download
schiebt die ROM in den "C:/dev/kitchen/home/NUTZERNAME/kitchen/original_update" Ordner. Geht wieder ins Kitchen und dort wählt ihr dann 1.
Bestätigt die Nachfrage mit einem Enter. Wenn Ihr wollt könnt ihr den Namen vom Working-Folder ändern. Dies ist Ratsam, wenn ihr mit vielen ROMs arbeitet.
So jetzt solltet ihr einen Working Folder haben, in welchem die ROM in extrahierter Form vorliegt.
Als nächstes könnt ihr eure ROM modifizieren, manipulieren, in welcher Form auch immer. Näheres in dem Detailierten Bereich.
Nun kommen wir zum Packen. Wichtig ist ersteinmal zu wissen, wie die ROM installiert wird. Der Schlüssel zu all dem liegt im META-INF Ordner. Das genaue Verzeichnis ist "\META-INF\com\google\android". Hier ist nun entweder die update-script Datei oder eine update-binary und eine updater-script Datei.
Für den ersten Fall liegt AMEND Scripting vor. Dies ist eine ältere Variante und wird von CWM nicht mehr unterstüzt. Letzteres ist Edify Scripting. Dies ist die neuere Variante. Ich werde hier nur auf Edify eingehen, da wir das andere eigentlich nicht mehr brauchen.
Ok wofür ist das ganze jetzt gut? Sowohl bei Amend als auch bei Edify sagen diese Dateien dem Recovery, was es zu tun hat. Es ist also die Anleitung, wie man eure ROM flashed. Bei Amend stehen die Befehle direkt in der update-script Datei, bei Edify stehen eure Befehle in der updater-script Datei und in der update-binary steht, wie das Recovery die Befehle aus der updater-script zu verstehen hat. Ihr müsst also in eurer updater-script schreiben, wo die Dateien aus eurem Package hin sollen. Dieses Thema ist äußerst komplex, und ich verstehe es selbst noch nicht so genau. Man könnte zu dem Thema sein eigenes Tutorail schreiben. Am besten ihr lasst erstmal das script so, wie es in eurem Original war. Ein Tutorial dazu gibt es auf Englisch bei den XDA.
Download
Wichtig ist nur zu wissen, dass ihr Edify nutzen solltet, damit es mit allen Recoverys funktioniert, und dass das kitchen Amend benötigt
Dafür liefert das kitchen eigens eine Konvertierungslösung mit. Ihr findet diese unter 0 > 17.
Ok nach dieser kleinen Exkursion wollen wir nun wirklich packen Benutzt dazu im kitchen die Option 99. und am Besten dann die 1, hier wird Schritt für Schritt nachgefragt, was getan werden soll. Die fertige zip dann auf euer Smartphone schieben und wie jede andere flashen.
Ein Tipp noch fangt LANGSAM an. Ich dachte auch och komm das bischen kann man noch ändern und aufeinmal startete das Desire nichtmal über den Bootscreen hinaus. Danach hatte ich einen Bootloop, und jetzt läuft eine Version, in der Ich nur paar Töne rausgeworfen habe, Apps entfernt und den Namen geändert. Ihr seht auch ich fange langsam an
4. Detailiert
- Bootanimation:
Öffnet wie gewohnt das kitchen und wählt dort 00 > 27. Anschließend ladet ihr euch die Bootanimation runter, die ihr gerne hättet, sei es von einer anderen ROM, oder eine eigens erstellte und schiebt die zip datei in den Ordner /data/local.
- Töne:
Ok die Töne findet ihr im Ordner /system/media/audio. Dort sind einmal die alarms (Wecker, Timer,...), die notifications (Kalender, SMS, Standartbenachrichtigun,...), die rigtones (Klingelton) und ui (Lock sound, Kamera sound,...). Letzteres habe ich noch nicht gemacht. Geht in den entsprächenden Ordner, löscht eure Dateien, die man nicht braucht, komponiert eure eigenen, oder ladet sie von der Website eures Vertrauens runter. Verschiebt sie dann in den Ordner.
Nun gehen wir wieder in den /system Ordner und editieren dort die Datei build.prop. Womit ihr das macht ist eigentlich egal. Ich benutze, wenn es nur kleine Änderungen sind Notepad++ und ansonsten Visual Studio Ultimate. Notepad++ reicht aber völlig aus. Such jetzt nach den Zeilen
ro.config.ringtone=KLINGELTON.mp3
ro.config.notification_sound=BENACHRICHTIGUNG:mp3
ro.config.alarm_alert=WECKER.mp3
ro.config.cal_notification=KALENDER.mp3
ro.config.msg_notification=SMS.mp3
Dort schreibt ihr dann euren Namen von der mp3 Datei rein. Achtet auf die genaue Schreibweise. Nach dem flashen sind dann eure Töne schon eingestellt.
- Hintergründe
Hierfür müsst ihr in den /syste/framework Ordner. Öffnet dort die framework-res.apk mit WinRar oder 7zip. Dort findet ihr dann im res/drawable-hdpi Ordner die Datei default_wallpaper.jpg. Entpackt am besten NUR diese Datei, bearbeiten, ersetzen..., wichtig ist nur, dass die Eigenschaften (Größe, Auflösung,..) gleich bleiben. Zieht danach die Bilddatei wieder in - bei mir - das WinRar Fenster und bestätig die Nachfrage mit Ok. Das Neue Bild wird nun eingebunden. Bei manchen ist auch noch eine default_lock_wallpaper.jpg für den Lockscreen vorhanden. Könnt ihr bei Bedarf genauso verfahren wie mit dem default_wallpaper. Dies bezieht sich nur auf das Hintergrundbild vor der PIN eingabe und vor der Einrichtung. Danach wird ein anderes genommen. Wie man das ändert weis ich noch nicht, wird aber ergänzt.
Prizipiel könnt ihr mit der framework_res alle Bilddateien bearbeiten, wie ihr wollt. Weitere findet ihr in der com.htc.resources.apk. Ich habe gestern einige Bilder in letzterer Datei geändert und nur wenig Auswirkung gehabt. Nämlich nur den Lock Arc. Nicht enttäuscht sein, weiter suchen
- GPS-Daten.
Nun wer kennt das nicht, man braucht gerade den genauen Standort für eine Navigation und das Handy braucht wieder Jahre um den Standort zu bestimmen. Bei Navigationssystemen kann man ja die aktuellen Positionen von den GPS Satelitten runterladen, damit das ganze schneller geht. Bei Smartphones geht das auch. Im system/etc/ Ordner gibt es eine Datei namens gps.config. Die öffnet ihr wieder mit Notepad++ bearbeiten. Allternativ kann man sich auch das script für euer entsprächendes Land hier runterladen:
Download
und ersetzen. Ich habe das noch nicht ausprobiert, wäre über eine Rückmeldung froh, wie das genau geht.
- build.prop
Hier wird sehr viel an Voreinstellungen gemacht. Zum Beipsiel haben wir hier auch die Töne verändert, in der Datei wird auch der Name eurer ROM festgelegt. Allerdings wird uns letzteres von dem kitchen abgenommen. Eine kleine Zusammenfassung der Codezeilen, und was diese bedeuten gibt es bei der Bruzelstube. Da diese eigentlich sehr gut ist und ich kaum etwas zu ergänzen habe, belasse ich es erstmal dabei. Nur so viel ich habe den ro.sf.lcd_density = 240 Wert verändert und 200 war schon etwas zu wenig. Die Formatierung war grauenhaft ;)
Hier noch ein paar weitere. Alles mit einem ! habe ich nicht ausprobiert.
!ro.build.version.release= Ändert die Android Version. Kann im Market helfen, wenn man ICS apps installieren will. Sonst macht es eigentlich keinen Sinn zu schreiben man hätte Android v 10 wenn 2.3 drauf ist. Braucht man auch beim Portieren.
!ro.product.model= Ändert euer Geräte Model. s.o das gleiche mit dem Market. Oder wenn ihr von nem anderen Gerät portiert habt, muss das hier geändert werden.
!ro.product.brand= hier kann man das Branding ändern. Eigentlich überflüssig.
!ro.product.max_num_touch=5 Anzahl der max. Finger, die erkannt werden (sollte auch an der Hardware liegen)
Sammlung von Befehlen
- Sprachen
Tja an dieser Stelle sollte nun eigentlich stehen, wie man die Standart Sprache ändern kann, leider hat das bei mir noch nicht funktioniert. Ich vermute, dass es entweder in der build.prop steht, was bei mir aber genauso wenig funktioniert hat, wie die Dateien COMMON.xml und default.xml im system/customize Ordner. Wenn einer rausgefunden hat, wie es geht wäre ich für einen Tipp sehr Dankbar.
- Updater-Script.
Tja auch hier hackt es bei mir noch etwas. Es gibt viele Threads zu diesem Thema, was es eigentlich einfach machen sollte, sich da einzuarbeiten, allerdings hatte ich bisher noch nicht die Zeit.
Hier ein Link zu den XDA. Dort wird die Sprache etwas erklärt.
Den Teil, den ich kenne, der aber nur als Ergänzung zu sehen ist, ist der ui_print("..."); Befehl. Damit wird wärend dem Flash Vorgang auf dem Screen eine Ausgabe erzeugt. Ihr könnt davon so viele benutzen, wie ihr wollt, nur achtete darauf, dass das Recovery mit dem ui_print nicht mehr zu tun hat, wie mit dem flashen ;) also man sollte nicht die Dokumentation und Entstehungsgeschichte von der ROM ausgeben. Einen Hinweis, was gerade gemacht wird, z.B. ui_print("mount /system"); oder wie die ROM heißt zum Anfang:
ui_print("");
ui_print(" MySuperROM v1.6 ");
ui_print("");
ui_print(" Vom besten Entwickler");
So etwas in der Art ;) Bitte darauf achten, dass das kitchen beim konvertieren von updater-script zu update-script die ui_prints entfernt. Also erst die ROM fertig stellen, dann update zu updater umwandeln und in der updater dann die ui_print Befehle einbinden.
- APP2SD+
Die Einstellung zum hinzufügen von A2SD+ liefert auch das kitchen mit. Die Änderungen werden dann überall vorgenommen und als a2sd Script wird DarkTremors genommen. Wenn ihr ein anderes wollte, z.B. Amalruz, ladet es euch runter, und schiebt das script in den sytem/etc/ini.d Ordner. Ob noch weitere Änderungen nötig sind weis ich noch nicht.
- Aroma Touch installer
Hier wird mal die Anleitung entstehen, wie man den Aroma Touch installer verwenden kann. Allerdings wird das noch lange dauern. Zunächst muss ich mal meine Klausuren bestehen, dann das updater-script verstehen, und dann geht es weiter.
— geändert am 07.03.2013, 17:42:04
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.