Odex e Deodex sono termini che sentiamo spesso nel mondo del modding ma non a tutti è chiara la differenza fra i due termini. Andiamo quindi ad analizzarli.

Odex e Deodex

Spesso la differenza fra Odex e Deodex è completamente ignorata dagli utenti alle prime armi sul modding, e siamo consapevoli che questi non sono concetti di uso comune ma cercheremo lo stesso di capire con voi la differenza fra questi due termini.

Cos’è un file ODEX?

Nel file system utilizzato dal sistema operativo Android, le applicazioni sono disponibili in pacchetti che hanno un’estensione  .apk. I pacchetti .apk delle applicazioni contengono file ODEX, la cui funzione è supposta al risparmio di spazio. Questi file ODEX in realtà sono parti di un’applicazione che vengono ottimizzati prima dell’avvio dell’app stessa, in modo da accelerare il processo di apertura dell’app grazie al loro precaricamento.

Questa parte però rende l’hacking di queste applicazioni più difficile in quanto necessita di una codifica che sia già stata estratta in un’altra posizione prima dell’esecuzione.

Cos’è un file DEODEX?

Deodexare è fondamentalmente un processo di rifacimento dei file .apk in modo che vengano riassemblati in file classes.dex. In questo modo i file del pacchetto dell’applicazione vengono riuniti in un unico luogo, e non in diversi come nei file odex, eliminando così la il problema delle modifiche ai pacchetti situati in luoghi diversi presente nei file odex.

Riassumendo Odex e Deodex

Le Rom Deodexed (o apk) hanno tutti i pacchetti delle applicazioni situati in un unico luogo, consentendo quindi modifiche più semplice, ad esempio per la creazione di temi.

Quindi Rom personalizzate e apk modificate sono sempre deodexed al fine di assicurarne una maggiore integrità e sicurezza e al fine di rendere più semplici successive modifiche.

In sintesi, ROM Deodexed (o APK) hanno tutti i loro pacchetti applicativi rimessi insieme in un unico luogo, consentendo una facile modifica, come tematizzazione. Poiché non pezzi di codice sono provenienti da qualsiasi luogo esterno, ROM personalizzate o APKs sono sempre deodexed per assicurare l’integrità.

Come funzionano

Il s.o. Android utilizza una macchina virtuale basata su Java per l’esecuzione delle applicazioni, l’ormai famosa Dalvik Virtual Machine. Un deodexed o .dex file contiene la cache utlizzata da questa macchina virtuale, la Dalvik cache che i più esperti di modding conosceranno sicuramente, e al suo interno è conversato il file .apk dell’applicazione. Un file odex, invece, è una versione ottimizzata dello stesso .dex file che memorizzata la cache accento al file .apk, ma non al suo interno. Android usa questa tecnica come impostazione predefinita per tutte le applicazioni di sistema.

Quando un sistema basato su Android si avvia, la cache Dalvik per la Dalvik VM è avviato utilizzando gli odex file, che consentono al sistema operativo di conoscere in anticipo quali applicazioni saranno caricata al fine di diminuirne i tempi del processo di avvio.

Deodexando i file apk, uno sviluppatore inserisce i file odex dentro i nuovi pacchetti apk all’interno della stessa posizione dell’apk stesso. Questo processo da la possibilità di modificare qualsiasi pacchetto applicativo senza conflitti con l’ambiente di esecuzione del sistema android.

Vantaggi e svantaggi Odex e Deodex

Il vantaggio del deodexing è la possibilità di apportare modifiche, questo ne fa il formato preferito per rom personalizzate e con temi modificati. Infatti il deodex permette allo sviluppatore non solo di modificare le apk ma anche di lasciare spazio per la post-installazione di temi e modifiche.

Il vantaggio dei file odex riesiede nella rapida costruzione della Dalvik cache, riducendo di conseguenza i tempi di avvio. Ma questo è vero solamente per il primo avvio, visto che anche il deodex dopo la prima apertura delle applicazioni crea la parte dedicata alla Dalvik cache. Quindi l’odex velocizza il primo boot del device che con il deodex potrebbe subire un rallentamento in caso di wipe Dalvik.

Conclusioni Odex e Deodex

Per un utente che deve scegliere fra una stessa rom odex o deodex consigliamo di valutare i suoi interessi riguardo la personalizzazione dei temi. Se siete interessati a modificare il tema della vostra rom vi consigliamo sempre una rom deodexed, altrimenti potete optare tranquillamente per una versione odex.