1. Möchtest Du unser Team im Android OS-Bereich unterstützen? Details dazu findest du hier!
  1. 4ndr0, 18.11.2012 #1
    4ndr0

    4ndr0 Threadstarter Android-Lexikon

    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.
     
    Zuletzt bearbeitet: 16.04.2013
    Hoschi_S, kevbax, dnc und 135 andere haben sich bedankt.
  2. Lion13, 19.11.2012 #2
    Lion13

    Lion13 Ehrenmitglied

    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. tekka, 04.12.2012 #3
    tekka

    tekka Erfahrener Benutzer

    Super Beitrag - vielen Dank!
     
  4. ONeill, 05.12.2012 #4
    ONeill

    ONeill Ehrenmitglied

    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. 4ndr0, 11.12.2012 #5
    4ndr0

    4ndr0 Threadstarter Android-Lexikon

    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. ONeill, 12.12.2012 #6
    ONeill

    ONeill Ehrenmitglied

    Da kann ich doch nur noch Glückwünsche aussprechen, das zeigt mal wieder das hier verdammt qualitative Beiträge zusammen kommen.
     
  7. datt-bo, 13.12.2012 #7
    datt-bo

    datt-bo Android-Lexikon

    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. PJF16, 13.12.2012 #8
    PJF16

    PJF16 Senior-Moderator Team-Mitglied

    Eine Stock-ROM die nicht modifiziert wurde ist grundsätzlich odexed. ;)

    4000. Beitrag. :)
     
    Ladylike871 und datt-bo haben sich bedankt.
  9. 4ndr0, 13.12.2012 #9
    4ndr0

    4ndr0 Threadstarter Android-Lexikon

    Im Zweifel einfach mal nach system/framework schauen, wenn da .odex Dateien rumschwirren, ist es odexed.
     
    datt-bo bedankt sich.
  10. datt-bo, 13.12.2012 #10
    datt-bo

    datt-bo Android-Lexikon



    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. ONeill, 13.12.2012 #11
    ONeill

    ONeill Ehrenmitglied

    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. Sonnenuntergangmoni, 14.12.2012 #12
    Sonnenuntergangmoni

    Sonnenuntergangmoni Neuer Benutzer

    WOW super tolle Beschreibung :D
    dankeschön
    Sonnenuntergangmoni
     
    Zuletzt von einem Moderator bearbeitet: 26.12.2012
  13. Seefahrer_1, 01.02.2013 #13
    Seefahrer_1

    Seefahrer_1 Neuer Benutzer

    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. Ping_2000, 04.03.2013 #14
    Ping_2000

    Ping_2000 Neuer Benutzer

    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. ONeill, 04.03.2013 #15
    ONeill

    ONeill Ehrenmitglied

    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. Ping_2000, 04.03.2013 #16
    Ping_2000

    Ping_2000 Neuer Benutzer

    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. ONeill, 04.03.2013 #17
    ONeill

    ONeill Ehrenmitglied

    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. Ping_2000, 04.03.2013 #18
    Ping_2000

    Ping_2000 Neuer Benutzer

    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. ONeill, 04.03.2013 #19
    ONeill

    ONeill Ehrenmitglied

    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. Ping_2000, 04.03.2013 #20
    Ping_2000

    Ping_2000 Neuer Benutzer

    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
     
    Zuletzt bearbeitet: 04.03.2013

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. odex datei

    ,
  2. deodex

    ,
  3. odex

    ,
  4. odex deodex,
  5. was ist odex,
  6. odex android,
  7. odex diese app,
  8. was ist eine odex datei,
  9. .odex datei,
  10. odex deodex unterschied,
  11. odex dateien android,
  12. android odex deodex,
  13. odex diese datei,
  14. stock odexed nachschauen german,
  15. was sind odex dateien