1. Wartungsarbeiten: Aufgrund von Wartungsarbeiten wird Android-Hilfe.de morgen (26. Juli 2016) gegen 9 Uhr für ca. 15 Minuten nicht erreichbar sein. Anschließend lässt sich unserer Seite wieder wie gewohnt besuchen. Wir danken für euer Verständnis.
    Information ausblenden
  2. Nimm jetzt an unserem Bluboo Maya und X9 - Gewinnspiel teil - Alle Informationen findest Du hier!
    Information ausblenden

[INFO] Was bedeutet Odex/Deodex?

Dieses Thema im Forum "Allgemeine Anleitungen/Tutorials (geräteunabhängig)" wurde erstellt von 4ndr0, 18.11.2012.

  1. #1 4ndr0, 18.11.2012
    Zuletzt bearbeitet: 16.04.2013
    Dies ist eine Übersetzung von What do “Odex” and “Deodex” mean? The All Inclusive Explanation

    Was bedeutet "Odex" und "Deodex"? Die komplette Erklärung

    Ganz ehrlich, wie viele von Euch, die das lesen, haben sich die ROM-Foren angeschaut, nur um immer wieder über diesen komplett fremdartigen Begriff zu stolpern. Hey, ist ok, ging mir genauso. Genau genommen bringen die Begriffe Odex und Deodex die Augen von Moddern zum Glänzen. Also, worüber reden die eigentlich?

    Um deodex zu verstehen, sollten wir uns erstmal mit Odex befassen.

    odex = Optimized Dalvik Executable

    Wie ihr sicher wisst, sind Android Apps auf eurem Gerät als .apk Dateien (eigentlich ZIP-Archive) gepackt. Stock Android ROM's verwenden eine Odex-Dateistruktur, wobei odex für eine "optimierte" ausführbare Dalvik-Datei steht. Das bedeutet, dass für jede APK eine dazugehörige Odex Datei existiert. Das gilt genauso für die Framework-Dateien im .jar (Java Archive) Format.

    Beispiel: Auf diesem nicht gerooteten Galaxy Nexus seht ihr zum Einen folgende Datei

    system/app/Phone.apk

    sowie auch

    system/app/Phone.odex

    OdexedDirectory2-420x373.jpg

    Doch was genau sind diese Odex-Dateien?

    Wenn Android eure Apps ausführt oder Framework-Bestandteile verwendet, muss es die in den .apk und/oder .jar Dateien enthaltenen komprimierten Daten lesen und interpretieren. Eine Odex-Dateistruktur beschleunigt diesen Prozess durch eine .odex Datei, welche die wichtigsten Daten unkomprimiert speichert, damit Android diese Daten schnell verarbeiten kann, bevor der restliche, komprimierte Teil der Daten verarbeitet wird. Der Sinn ist, die Bootzeiten zu verkürzen und Apps generell schneller laden zu lassen.

    Also was ist deodex?

    Die Odex-Dateistruktur funktioniert wunderbar als Werkzeug zur Optimierung, ausgenommen man möchte modden/themen. Odexte Apps und Frameworks indizieren ein besonderes Problem für jeden, der sein System modifizieren möchte aufgrund der Tatsache, dass die zu verändernden Ressourcen in 2 Dateien aufgesplittet sind. Theming (das Modifizieren von Symbolen/Lockscreen/Statusbar etc.) z.B. verlangt normalerweise, dass System-Bitmaps durch eigene ausgetauscht werden und das ist fast unmöglich bzw. extrem aufwendig in "odexten" Umgebungen. Die Lösung lautet, das Dateisystem zu deodexen, d.h die ausgelagerten unkomprimierten Daten in den .odex Dateien wieder in ihre .apk oder .jar Dateien zu integrieren.

    Auf diesem Galaxy Nexus, auf dem ein Custom ROM läuft, sehen wir wieder die

    system/app/Phone.apk

    doch nicht mehr die dazugehörige .odex Datei.

    Die neu zusammengesetzten Daten landen in der classes.dex innerhalb der .apk Datei.

    DeOdexedDirectory1-420x373.jpg

    Also was sollte man verwenden?

    Der einzige Grund, sein ROM zu deodexen, ist das Theming/Modding. Es wird Euer Gerät nicht schneller machen. Technisch gesehen sollte es das Gerät sogar verlangsamen, doch in der Praxis ist dieser Unterschied nicht wahrnehmbar. Nach meiner Erfahrung kommt jedes Custom ROM pre-DeOdexed daher und zipaligned eure Apps bei jedem Boot.

    Zipaliging ist das Reorganisieren und Optimieren eurer APK's, damit Android sie schneller verarbeiten kann. Es ist vergleichbar, wenn nicht sogar besser als die Odex-Dateistruktur, so bekommt ihr das Beste aus beiden Welten; Ein modifizierbares ROM mit der Geschwindigkeit einer optimierten Dateistruktur. So liegt der einzige Unterschied in der Modifizierbarkeit. Es liegt an euch, zu entscheiden, was ihr benötigt.
     
    dnc, statler, bonanzabike und 133 andere haben sich bedankt.
  2. Endlich, endlich, endlich - hat das mal jemand so erklärt, daß man es auch VERSTEHT! :D
    Ganz großes Lob für deine Arbeit! :thumbup:
     
    masekka und 4ndr0 haben sich bedankt.
  3. Super Beitrag - vielen Dank!
     
  4. Hallo,

    einen ähnlichen Artikel gibt es bereits auch in unserer Wiki :) DEODEXED

    Aber ich muss sagen: Danke, das du etwas mehr Licht ins dunkle gebracht hast, das hat mir bei der Umformulierung des Wiki-Artikels ungemein geholfen.
     
  5. Den Wiki-Artikel kannte ich, fand den von talkandroid.com aber um einiges verständlicher. Darfst gerne meine Übersetzung soweit du möchtest ins Wiki übernehmen.

    Jetzt übrigens auch auf giga.de zu finden :biggrin:
     
  6. Da kann ich doch nur noch Glückwünsche aussprechen, das zeigt mal wieder das hier verdammt qualitative Beiträge zusammen kommen.
     
  7. #7 datt-bo, 13.12.2012
    Hi

    Sorry,ich habe es leider immer noch nicht verstanden :confused2:

    Ist eine Stock-Rom jetzt eine Odex oder Deodex Rom :confused2:

    Auf meinem Note2 läuft die Stock-Rom,also ist sie jetzt Odex/Deodex ?

    Danke für die Hilfe
     
  8. Eine Stock-ROM die nicht modifiziert wurde ist grundsätzlich odexed. ;)

    4000. Beitrag. :)
     
    Ladylike871 und datt-bo haben sich bedankt.
  9. Im Zweifel einfach mal nach system/framework schauen, wenn da .odex Dateien rumschwirren, ist es odexed.
     
    datt-bo bedankt sich.
  10. #10 datt-bo, 13.12.2012


    Also Stock ist immer Odex,wenn nicht verändert :biggrin:
    Meine Stock-Rom auf dem Not2 hat Root,mehr nicht.
    Also immer noch Odex ?

    Und danke für die Ehre deines 4000 Beitrages :smile:

    Der ursprüngliche Beitrag von 11:37 Uhr wurde um 11:38 Uhr ergänzt:

    Danke,für den Tipp.
    Muss ich gleich mal nachschauen :smile:
     
  11. Hallo,

    auch wenn du Root hast, wird es wohl odexed sein, wie bereit gesagt. Wenn du ein Stock-Rom nicht aktiv selbst deodexed machst, dann ist auch mit root alles noch odexed, das sind zwei völlig unabhängige Sachen ;)

    Grüße
    Florian
     
    datt-bo bedankt sich.
  12. #12 Sonnenuntergangmoni, 14.12.2012
    Zuletzt von einem Moderator bearbeitet: 26.12.2012
    WOW super tolle Beschreibung :D
    dankeschön
    Sonnenuntergangmoni
     
  13. #13 Seefahrer_1, 01.02.2013
    Super Beitrag,
    ich arbeite mich Stück für Stück in die Marterie ein und bin echt dankbar für solche Beiträge!
    Also Dankeschön
     
  14. #14 Ping_2000, 04.03.2013
    Hallo,

    vielen Dank für die Erklärung.
    Mich interessiert noch, ob es notwendig ist eine App zu deodexen, wenn man sie nicht ändern sondern nur kopieren will?

    Bsp.:
    Man möchte die M0t0Email.apk in CM10 nutzen.
    Ist es da notwendig die APP und auch die benötigten Framework Dateinen zu deodexen?


    Grüße
    Ping_2000
     
  15. Nein, an sich nicht, du musst nur darauf achten, das du auch die M0t0Email.odex Datei mit kopierst.

    Ein Mischbetrieb ist also rein in der Theorie auch möglich.

    Grüße
    Florian
     
  16. #16 Ping_2000, 04.03.2013
    Hallo,

    leider hat es so nicht funktioniert, das CM10 bleibt nun im Bootscreen hängen.
    Ich hatte aktuell vergessen bei einer Lib den .odex mit zu kopieren. Die App wurde bis dahin immer beendet, jetzt nach dem die .odex mit unter /system/framework liegt, startet das System nicht mehr.

    Hätte ich die Libs noch registrieren müssen (die Signatur)?

    Grüße
    Ping_2000
     
  17. Hä? Du hast die M0t0Email.odex und die M0t0Email.apk beide im Ordner /system/app liegen, diese kopierst du nun auch wieder in den Ordner /system/app auf dem neuen Gerät. Um welches Gerät handelt es sich denn? Außerdem heißt es nicht gleich, das die App auch funktionieren wird, wenn diese zum Beispiel auf gewisse Frameworks oder Ressourcen des Systems zurückgreift und diese nicht findet, wird das System nicht starten, da diese Systemapp nicht starten kann.

    Ich hoffe du hast vorher ein Backup gemacht?
     
  18. #18 Ping_2000, 04.03.2013
    Hallo,

    das Thema ist etwas komplizierter.
    Die App liegt im Ordner /Systeme/app, ohne odex.
    Ich habe die APP mit apk_manager "entpackt" um im Manifest die Abhängigkeiten zu finden. Diese hab ich dann aus /system/framework ebenfalls kopiert.
    Weiter habe ich die Libs dann in /system/etc/permissions mittels der zugehörigen XML Dateien "registriert".

    Im Anschluss musste ich noch die normlen Email.apk und Exchange.apk umbenennen, da die netten Entwickler von M0t0 die Packages der normalen Anwendung nutzen und es zu Konflikten kam (beim Installieren).

    Ich hatte die Anwendung installiert und leider lies sie sich nicht starten.

    Nach kurzer Suche und der Frage hier im Forum, habe ich die von mir beim ersten mal vergessen .odex Datei noch mit nach /System/Framework kopiert.

    Jetzt hängt CM10 leider. Im Prinzip kann ich es einfach im Safestrap neu "installieren". Soweit kein Problem mit Backup etc. mich hätte nur interessiert wieso sich diese App nicht einfach übertragen lässt, bzw. ob man die Libs noch registrieren muss oder ähnliches?

    Grüße
    Ping_2000

    P.S. Motorola Razr Maxx
     
  19. Puhu, gute Frage, ich glaube da bin ich so aus dem Stehgreif etwas überfragt. Was sind dass denn für Libarys? Musstest du irgendwas überschreiben? Sind das zwei Motorola Maxx?
     
  20. #20 Ping_2000, 04.03.2013
    Zuletzt bearbeitet: 04.03.2013
    Die Libs sind von M0t0, überschrieben wurde nichts.

    Tja irgendwie schon komisch. Der Launcher vom Razer M lies sich ohne Probleme installieren ... aber der brauchte auch keine Libs ...

    Grüße
    Ping_2000
     

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. odex datei

    ,
  2. deodex

    ,
  3. odex android

    ,
  4. stock odexed nachschauen german,
  5. was sind odex dateien