[GUIDE] - The differences between Odex and Deodex Files - Android General

Now, it's impossible that you have not encountered the term ‘deodexed’ if you’ve ever installed a custom firmware on your device, since almost all ROM developers choose to deodexed their roms. What this means for the average user. To understand the concept, you’ll first need to grasp what odex files are, and why are present in the OS in the first place.
Odex files contain pre-optimized code extracted from the system libs and apps, and are in the same directory as the jar or apk files inside /system, so they are part of the ROM. Odex files depend on each other, so the whole system, once odexed, cannot easily be modified.
WHAT IS EXACTLY AN ODEX FILE ?
Click to expand...
Click to collapse
In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space The odexed file structure works well as an optimization tool. Since these .odex files contain preliminary load information about each system app, the OS knows what to expect when it’s booting up, and consequently, loads all these apps faster.
On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
For instance, on a non-rooted device you’ll find
system/app/Phone.apk ===> as well as ===> system/app/Phone.odex
AND NOW THE DEODEX FILE ?
Click to expand...
Click to collapse
It’s the process to take all the packages out from .odex file and reassemble them all together in classes.dex file which is kept inside the APK file. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
In summary, Deodexed ROMs (or APKs) have all their application packages put back together in one place, allowing for easy modification such as theming. Since no pieces of code are coming from any external location, custom ROMs or APKs are always deodexed to ensure integrity.
on the same device but rooted now, you’ll find this:
system/app/Phone.apk ===> but no longer the corresponding .odex file. The reassembled files become classes.dex
HOW THESE FILES WORK ?
Click to expand...
Click to collapse
In normal cases, where an Android firmware is odexed, the .odex files for each /system APK (which are stored outside of the APKs themselves) are written into the Dalvik Virtual Machine when the OS boots up. Since these .odex files contain preliminary load information about each system app, the OS knows what to expect when it’s booting up, and consequently, loads all these apps faster. Ultimately, for the user, it means that boot times are significantly sped up, and you can put your device to use much sooner.
Android applies this technique by default to all the system applications.
By deodexing these APKs, a developer actually puts the .odex files back inside their respective APK packages. Since all code is now contained within the APK itself, it becomes possible to modify any application package without conflicting with the operating system’s execution environment.
CONCLUSION: ADVANTAGES & DISADVANTAGES FOR BOTH SYSTEM FILES
Click to expand...
Click to collapse
The advantage of deodexing is in modification possibilities. This is most widely used in custom ROMs and themes. A developer building a custom ROM would almost always choose to deodex the ROM package first, that’s why developers prefer it and most, if not all, of the custom ROMs come pre-deodexed.
The advantage of .odex file is the faster load time of the app and were supposed to quickly build the dalvik cache, removing them would mean longer initial boot times. However, this is true only for the first ever boot after deodexing, since the cache would still get built over time as applications are used. Longer boot times may only be seen again if the dalvik cache is wiped for some reason.
And finally rooting need not necessarily mean your device is deodexed, rather that almost all stock ROMs are odexed to some extent, and usually most custom ROMs are deodexed for easy theming.
For a casual user, the main implication is in theming possibilities. Themes for android come in APKs too, and if you want to modify any of those, you should always choose a dedoexed custom ROM.
And don't forget to RATE FOR THIS THREAD -
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
if it's helped you and eventually click to "Newsworthy Thread? "Thanks in advance

it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution

This should help a lot of People.

after tinkering with my phone from HTC DND to HTC One X to Lenovo P770 in a span of 2years, I finally understand what odex and deodex mean!
thanks!

Cool
Sent from my LG-LS970 using xda app-developers app

INFO
Also mention that odexed ram uses less internal app storage space than deoxed rom
Useful on devices with low internal storage

Thanks for your explanation. That's really help me..:good:

ODEX
How to make a ODEX rom for a android phone like company of that phone :silly:

subha7082 said:
How to make a ODEX rom for a android phone like company of that phone :silly:
Click to expand...
Click to collapse
Search a little and you will find a good thread for:
Use the search bar "Search all forums" and type "how to make a Odex rom"
Thanks

thank you for this

thanks~this really help me a lot!!!
thanks~this really help me a lot!!!

nice info..
odexed ram uses less internal app storage space than deoxed rom.

Thanks bro

I've always wondered about this. Thanks for posting!u

thanks for the post
Btw, I want to mention that a deodexed rom can be Re-odexed and that will give you the benefits of odexing and deodexing at the same time
this is very useful when you deodexed your stock rom to apply some mods and customisations and wanted to re-odex to get the benefits of odexing without removing your modifications..
here is a complete guide on how to Re-odex a deodexed rom (thanks to TearsDontFalls for this thread)
hope this was helpful for you guys

Good explanation
very informational

good
Nyc information appricated

Thank you for this post

thanks for this... just what i was looking for

Thanks

Related

[MOD] Universal themes for all roms and versions

Now you can create a consistent theme for any ROM (even for different phones) by Universal Flasher issues.
Latest version: 3.4 (29/01/2012)
(Attached at the end of this first post)
What is Universal Flasher Tool?
It is a complete template that is used to create the simplest possible way from recovery flasheable issue without having to include or edit files. Apk.
The operation of this template is based on the VillainTheme System, for VillainROM ROM.
Link: http://www.villainrom.co.uk/forum/sh...inTheme-System
Credits and thanks to all XDA team who has worked in the original script: Doctorcete, Stericson, Matt and Seshy
This new method uses the file system MetaMorph Application (just have to place files or folders on their respective routes), with the advantage that the system identifies and injects them into their applications without the need for external application. The subjects are flashed directly from recovery.
At the end of the post is attached blank template and a sample issue to start testing.
What are the advantages of this method over the MetaMorph or traditional flasheables issues?
Do not include. Apk complete, only the files you want to include in the subject.
A theme created with this template is valid for any ROM, even among different phone roms (the tests have been conducted and Nexus SGS2 one).
Optionally, the template can include complete files if desired, can even be used to install applications not system.
Does not depend on external applications such as MetaMorph because it flashes directly from recovery.
Performance of staff
At the end of the post are attached a number of considerations to take into account, but basically works like this:
Identify the applications that you want to thematize and verifies that exist in the rom. Once the check, the system compares folders that will be introduced as well as files and injects them into the apk as long as the new apk file exists within. This has been thought well to avoid filling an apk with files that do not belong because they are from another rom or because you made a mistake when typing the name, for example.
Once injected the files is one of the apk zipalign to optimize RAM usage.
Optionally, if the topic includes external files or copy them to install applications on your path.
While the issue is being applied, the system will generate a backup of changed files and automatically creates a file. Flasheable from zip recovery, in case something goes wrong or do not like the changes back to its previous state.
Finally, it also generates a small log with the outcome of the whole process is recorded on the SD to verify that all changes are applied correctly.
How to create and edit your own theme
Download the template from the attachment in this post or the link below.
Recommended Tools: 7zip to include files and browse the file system (you can also use winzip or winrar with no problem) and Notepad + + or any other plain text editor to edit the name of the mod.
Once downloaded, open the template with double-click will observe and folders inside a file in the root. Here's are in each folder and how to create the theme.
MOD.config file (new from version 3.0)
It is an editable text file (recommend Notepad + +) where he also set the name of the MOD to set different parameters of the template.
MOD_VERSION = name (name of the mod to be displayed in the system properties after the name of the rom. It is recommended not to put a very long name and try to avoid as far as possible in the blanks.
CLEAN_MORPHING = not (compare the new files before injection into the apk, only introduced if the file already exists. By checking the speed is drastically reduced)
V4_MORPHING = yes (support to manage compatibility with existing folders-v4 system in some applications).
DO_BACKUP = yes (enable or disable the creation of the backup flasheable from recovery to restore the existing theme).
LOG_ENABLED = yes (enable or disable the creation of a log file with the results of the process).
SCREEN_LOG = yes (shows the process of recovery on the screen or not. Notices are always important but turned off the option).
Optionally, you can set a different path for memory cards (no need to touch these lines in most cases, you should not touch):
default_internal_sdcard = / EMMC
default_external_sdcard = / sdcard
Optionally, you can add special commands to mount partitions (no need to modify these lines in most cases, you should not touch):
mount_system = mount / system
mount_data = mount / data
README.txt:
Includes some additional notes on the operation and leave. Please read before using the template to create a theme (in English).
Cartet / tools:
This is the folder where you have placed the scripts and binary files needed to flash the issue and make subsequent restoration. No need to touch anything in this folder to edit the theme. From version 3.0 has been deleted because busybox binary is no longer involved in the process.
Folder / META-INF:
System Folder which includes the signature and the script file to launch from recovery. It is recommended not to touch.
Folder / MORPH:
This is the template folder where files should be included with the theme. In turn, the folder is divided into two subfolders called / data (for applications theming system NO) and / system (for theming system and applications framework).
In the folder / MORPH / system / app files are included for applications and / MORPH / system / framework for the framework files.
ATTENTION: NO application theming system in / MORPH / data / app / myapp.apk digital signature is change, so from that time can not be updated from the market or will you installed in the market (like if it had installed by 'other means' non-statutory ...). Therefore, we do not recommend any downloaded application thematize the market. You are advised that the complaints do not come then ...
For each application you want to thematize is to open a new folder called / nombre.apk (eg / Contacts.apk if you want to change the system application Contacts.apk). You must respect the use of upper / lower case. Within each of these folders you have to respect that there are logical paths within applications, so that the files would have to place them in folders named / res / drawable, res / drawable-hdpi, etc ...
It's the same structure of the subject MetaMorph, so that any item is readily convertible MetaMorph simply dragging folders.
No need to create any control file or anything like that. The system is responsible for reviewing the folders you want to know tematitar applications.
Folder / Xtras / system:
in this folder is where, if desired, can include files or complete applications that you wish to flash in conjunction with the subject. For example, sound files, bootanimation, scripts, complete applications, etc ...
Folder / Xtras / data:
in this folder is where, if desired, can not add applications to be installed system during flashing.
Folder / Xtras / sdcard:
in this folder can be copied to add files to make the SD card, such as packs of icons, sounds, videos, etc ...
Considerations to take into account
Always respect the use of upper / lowercase in the names of files or folders and logical paths located within the apps.
With this system the themes may be universal, although depending on the type of files a user input may cease to be:
If only image files are included the theme is compatible with any rom from any phone.
If you also are included. Xml files, you may only work in one rom, but can still work on future updates of the same.
If resources are included for translations (resources.arsc) the issue would only be valid for a particular rom.
The. Zip file to the topic is not necessary for you to sign flashes, and is valid for CW-Recovery and Recorevy-RA. If you do not have to remember signing off signature checking before flashing.
Download (dropbox): http://db.tt/V7WsJ9Zw
Special thanks to @ lexullde [email protected] HtcMania to follow the entire process, to adapt its themes, and suggest new things.
Nice one...
Awsome work way to go you are welcome.
Best Regards.
itsme_4ucz.
thanks, this mod is a very easy to create themes, I already I have created the elegance note for Kingdroid sgs2 and good is not to be afraid of reactions each with each version or adapt to different roms, the installer is responsible to adapt
Hello
UT doesn't work on last Turkbey v35 framework-res.apk and SystemUI.apk (SGS2) for morph modding. UT 3.4 uses 7z for repacking. I found old 1.0 tool, where repacking was done by unzip and zip. So, I don't know how, but UT 1.0 works great, UT 3.4 gave up
I found another thing: "7z" on Windows says "Not implemented" while repacking these apk's... I don't know how Turkbey is zipping his files, but WinRar says that they are corruped
Maybe it's good idea to implement in UT two ways of repacking? If error occurs with 7z, just do old-way unzip/zip?...
Here are "unmorphable" SystemUI.apk and framework-res.apk.
Link dead... can you return it over ? please
Thanks and good job
you can give a image? .
Sent from my GT-N7000 using XDA
matt54600 said:
Link hs please
Click to expand...
Click to collapse
http://www.htcmania.com/showthread.php?t=258333 its in spain,
ishay_maimon said:
you can give a image? .
Sent from my GT-N7000 using XDA
Click to expand...
Click to collapse
what image do you need?
its a script/tool!
Drop box link errror 4.04
Sent from my GT-N7000 using Tapatalk 2
gattari said:
Drop box link errror 4.04
Sent from my GT-N7000 using Tapatalk 2
Click to expand...
Click to collapse
Look 2 posts above!
send with a sandwich in my hand
can anyone post a link please
Lantek23 said:
can anyone post a link please
Click to expand...
Click to collapse
look 3 posts back,
TUN_SD said:
look 3 posts back,
Click to expand...
Click to collapse
Thanks for the reply i fund it
Sent from my SGH-T999 using Tapatalk 2
All I want to do is be able to change my status bar icons like I was able to before ICS. I have no idea how to use this tool, why has it all become so f-ing complicated
Bryce2010 said:
All I want to do is be able to change my status bar icons like I was able to before ICS. I have no idea how to use this tool, why has it all become so f-ing complicated
Click to expand...
Click to collapse
not complicated! :laugh:
just unzip your systemUI,
search for the icons, should be in systemUI.apk/res/drawable(hdpi or xhdpi or ldpi or what kind of device you use)
than, mod it to your liking.
now create a folder in the morph section, like this:
morph/system/app/systemUI.apk(*its a folder, exactly named, as the apk!!*)/res/drawable-
place your icons, corect named of course, into the proper folder, zip the whole stuff, make a nandroid, and flash.
if you are used to zip, editing files, that should be no problem.
Well thanks for trying to help...
But would it be the same thing if I'm using a non-stock ROM (I'm using Rocket ROM 7)?
And what about if one is using all these themes going around? I'm using trinev's mini-dark theme which I may be trying to switch to 'NEW ICEY Blue THEME With Sense 4.0 Recent Panel For Touchwiz ROMS!!' both already have status bar icon mods.
It's just I'm terrified of the dreaded boot loops! Plus, because I basically have a stock ROM with all the bloat doing nandroid backups & restores take forever!
Bryce2010 said:
Well thanks for trying to help...
But would it be the same thing if I'm using a non-stock ROM (I'm using Rocket ROM 7)?
And what about if one is using all these themes going around? I'm using trinev's mini-dark theme which I may be trying to switch to 'NEW ICEY Blue THEME With Sense 4.0 Recent Panel For Touchwiz ROMS!!' both already have status bar icon mods.
It's just I'm terrified of the dreaded boot loops! Plus, because I basically have a stock ROM with all the bloat doing nandroid backups & restores take forever!
Click to expand...
Click to collapse
Well, it should be working for all Roms,
Just keep the folder structure and icon names. Or use a cm9/aokp rom, which supports theme apks.
AOKP powered HOX
TUN_SD said:
Well, it should be working for all Roms,
Just keep the folder structure and icon names. Or use a cm9/aokp rom, which supports theme apks.
AOKP powered HOX
Click to expand...
Click to collapse
It's works great on a custom galaxy s3 t-mobile in this picture its still in the works all the red was green
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Sent from my SGH-T999 using Tapatalk 2
few posts above
On the Galaxy S III US version we are having recovery issues not recognizing external SD card. So what do I need to put in the script to mount or read the internal SD Please help!!

[Complete Guide] What is Odex and Deodex ROM?

What is an ODEX file?
In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
What is an DEODEX file?
Deodexing is basically repackaging of these APKs in a certain way, such that they are reassembled into classes.dex files. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
So, Deodexed ROMs (or APKs) have all their application packages put back together in one place, allowing for easy modification such as theming. Since no pieces of code are coming from any external location, custom ROMs or APKs are always deodexed to ensure integrity.
How this works?
For the majority noobs amongst us, Android OS uses a Java-based virtual machine called the Dalvik Virtual Machine. A deodexed or .dex file contains the cache used by this virtual machine (referred to as Dalvik-cache) for a program, and it is stored inside the APK. An .odex file, on the other hand, is an optimized version of this same .dex file that is stored next to the APK as opposed to inside it. Android applies this technique by default to all the system applications.
When an Android-based system is booting, the davlik cache for the Davlik VM is built using these .odex files, allowing the OS to learn in advance what applications will be loaded, and thus speeds up the booting process.
By deodexing these APKs, a developer actually puts the .odex files back inside their respective APK packages. Since all code is now contained within the APK itself, it becomes possible to modify any application package without conflicting with the operating system’s execution environment.
Advanteges & Disadvantages
The advantage of deodexing is in modification possibilities. This is most widely used in custom ROMs and themes. A developer building a custom ROM would almost always choose to deodex the ROM package first, since that would not only allow him to modify various APKs, but also leave room for post-install theming.
On the other hand, since the .odex files were supposed to quickly build the dalvik cache, removing them would mean longer initial boot times. However, this is true only for the first ever boot after deodexing, since the cache would still get built over time as applications are used. Longer boot times may only be seen again if the dalvik cache is wiped for some reason.
Note:Themes for android come in APKs too, and if you want to modify any of those, you should always choose a dedoexed custom ROM.
[Guide] What is Zipalign and how to make Apps zipaligned
What is Zipalign?
Zipalign is an archive alignment tool introduced first time with 1.6 Android SDK (Software Development Kit). It optimizes the way an Android application package (APK) is packaged. Doing so enables the Android operating system to interact with the application more efficiently, and hence has the potential to make the application and overall the whole system much faster. Execution time is minimized for zipaligned applications, resulting is lesser amount of RAM consumption when running the APK.
How does it exact work?
In an Android operating environment, data files stored in each application package are accessed by multiple processes, for example, the installer will read the data manifest to determine the associated permissions; the system server can read these resources for multiple reasons, like displaying notifications; the Home application, for example, will read resources to get the application’s name and icon. Since Android is based on a a true multi-tasking operating infrastructure, these files are continually and repeatedly accessed. Finally, but not least, the application itself reads the manifest data.
As Android is Linux-based, memory-mapping plays a key role in efficient handling of processes. Essentially, the optimal alignment for the Android OS’ resource-handling code is 4-byte boundaries. What this means is that, if APKs are memory-mapped to 4-byte boundaries, and aligned accordingly, the OS will not need to ‘read through’ the whole application package to get to the desired data manifest. Every system process will know in advance where to look for it’s desired resources, and hence will execute much smoother and faster.
Summing it up, zipaligning an APK results in all uncompressed data within the package to be aligned on 4-byte boundaries, allowing all portions to be accessed directly with the memory-map. RAM consumption is lowered while execution because the querying code doesn’t have to read through the entire application package.
Disavantages of unaligned APKs
Quite understandably, situation would be reserved for unaligned application packages. Resource reading would be slow and memory usage would be on the higher end of the spectrum. It would also depend on how many unaligned applications are present. For example, if less number of applications with an unaligned home application, you’d see slower application launch times. This is the best case scenario. For a worst case scenario, having a number of unaligned applications will result in the system repeatedly starting and killing processes, struggling with lags and huge battery drain.
How to make APKs zipaligned?
As mentioned earlier, the zipalign tool became a part of Android SDK from 1.6 onwards. It can be found under the ‘tools’ folder of the SDK. To use it, simply run the command:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
Click to expand...
Click to collapse
...where infile.apk is the source file, and outfile.apk is the output file.
You can also verify the alignment of an APK file using the following command:
zipalign -c -v <alignment> existing.apk
Click to expand...
Click to collapse
...where existing.apk can be any application package that you need to get verified. Also, the <alignment> tag in both the commands needs to be an integral value (otherwise the command will return invalid). This value, although can be any integer, MUST always be 4, which would provide 32-bit alignment. Any other value and it will effectively do nothing.
Finally, for the flags used in these commands,
-f - overwrites existing outfile.zip
-v - will give verbose output
-c - will confirm the alignment of a given file
Click to expand...
Click to collapse
CAUTION: Zipalign operation must only be performed after you have signed the APK file with your private key. If zipaligned before signing, the signing procedure will disturb the alignment. Same holds true for any other alteration, addition or removal to the APK file. Any change after running zipalign will undo the alignment.
Source: addictivetips
[GUIDE] How to Deodex Jelly Bean firmware (I9070) - credits must go to anantttt
[How-To] Re-Odex a Rom - credits must go to TearsDontFalls -this guide is for S3, but you have Google to find what you need ... if you really need.
[ODEX][SCRIPT/TOOL] Odexer Tool 1.2 (03-28-2014)(MM-dd-yyyy)
Update 08.10.2014
Click to expand...
Click to collapse
[SCRIPT TO ODEX] Universal Odex Script Version 6.3.1 (11-03-2013)
Credits & Thanks for this tool:
MatrixDJ96
Click to expand...
Click to collapse
I think you just must create 1 thread titled "About Android" or someting like that
BTW it is good to know that:thumbup::thumbup:
Sent from my GT-I9070 using xda app-developers app
This materials are not created by me, I just searched and read carefully over the WWW in an attempt to bring as much informations to our forum S. Advance.
Only this was my job, along with the desire to know the phone held.
In my opinion, one thread with all the information is difficult to manage, because of that i'm so reluctant in what concerns for easy finding by members.
Make a Guide on how to (Re)Odex a Deodexed ROM if possible...
Sent from my GT-I9070 using xda app-developers app
Flash stock ROM?
R_a_z_v_a_n said:
Flash stock ROM?
Click to expand...
Click to collapse
Hahahaha.. but I wasn't Joking.. people say that its always better Re-Odex a Deoxed app after editing it
Understand now. Let me do some research and read what to do in that sense ...
Sami Kabir said:
Make a Guide on how to (Re)Odex a Deodexed ROM if possible...
Click to expand...
Click to collapse
Make it very short then.
Odex Me
(Post useful? Hit the Thanks button etc.)
Odex and Deodex
Hi,
I am a beginner in the android world and i have been trying to understand the android terms in detail. but i am still confused over the ODEX and DEODEX terms. I read you post but it still needs some more explanation of few things mentioned below.
Where is the .ODEX file stored in case of an ODEXED Rom?
Does the Dalvik Cache builds up in case the ROM in Deodexed. If yes then from where it fetches the required information?
Your post says that boot speed is increased in case of both the ODEX & DEODEX ROM after the first Boot. Then what is the exact difference between the two ROMS?
Does Dalvik Cache & DalviK VM independent whether the ROM is ODEX or DEODEX?
Presently my phone is ODEX (Stock ROM), once i DEODEX the ROM can i still install .APK files from Google Play or any other source?
Is tools which makes an APK ODEX or DEODEX part of the android operating system or should we make an APK Odexed or Deodexed using a laptop?
Please help me with the above questions.
R_a_z_v_a_n said:
What is an ODEX file?
In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
What is an DEODEX file?
Deodexing is basically repackaging of these APKs in a certain way, such that they are reassembled into classes.dex files. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
So, Deodexed ROMs (or APKs) have all their application packages put back together in one place, allowing for easy modification such as theming. Since no pieces of code are coming from any external location, custom ROMs or APKs are always deodexed to ensure integrity.
How this works?
For the majority noobs amongst us, Android OS uses a Java-based virtual machine called the Dalvik Virtual Machine. A deodexed or .dex file contains the cache used by this virtual machine (referred to as Dalvik-cache) for a program, and it is stored inside the APK. An .odex file, on the other hand, is an optimized version of this same .dex file that is stored next to the APK as opposed to inside it. Android applies this technique by default to all the system applications.
When an Android-based system is booting, the davlik cache for the Davlik VM is built using these .odex files, allowing the OS to learn in advance what applications will be loaded, and thus speeds up the booting process.
By deodexing these APKs, a developer actually puts the .odex files back inside their respective APK packages. Since all code is now contained within the APK itself, it becomes possible to modify any application package without conflicting with the operating system’s execution environment.
Advanteges & Disadvantages
The advantage of deodexing is in modification possibilities. This is most widely used in custom ROMs and themes. A developer building a custom ROM would almost always choose to deodex the ROM package first, since that would not only allow him to modify various APKs, but also leave room for post-install theming.
On the other hand, since the .odex files were supposed to quickly build the dalvik cache, removing them would mean longer initial boot times. However, this is true only for the first ever boot after deodexing, since the cache would still get built over time as applications are used. Longer boot times may only be seen again if the dalvik cache is wiped for some reason.
Note:Themes for android come in APKs too, and if you want to modify any of those, you should always choose a dedoexed custom ROM.
Click to expand...
Click to collapse
fredrickaein said:
1.Where is the .ODEX file stored in case of an ODEXED Rom?
2.Does the Dalvik Cache builds up in case the ROM in Deodexed. If yes then from where it fetches the required information?
3.Your post says that boot speed is increased in case of both the ODEX & DEODEX ROM after the first Boot. Then what is the exact difference between the two ROMS?
4.Does Dalvik Cache & DalviK VM independent whether the ROM is ODEX or DEODEX?
5.Presently my phone is ODEX (Stock ROM), once i DEODEX the ROM can i still install .APK files from Google Play or any other source?
6.Is tools which makes an APK ODEX or DEODEX part of the android operating system or should we make an APK Odexed or Deodexed using a laptop?
Click to expand...
Click to collapse
Some answers, I numbered your questions to be more easily tracked
1. In your /system
2. Android's Dalvik goes through every apk's and extracts the dex file from it. It places the dex files in the cache folder - located at /data/dalvik-cache. This is the directory that gets cleared when you clear the dalvik cache in your custom recovery like CWM or TWRP.
3. The difference is that deodexed ROMs are lighter and allow modifications but odexed ROMs load faster. ROMs come with Zipalign at boot that make a deodexed ROM load as fast as an odexed ROM.
4. I dont know the answer of this ... sorry.
5. Of course you can, is no reason to worry about.
6. You need android-sdk installed in your computer/laptop, busybox on the phone, xUltimate and some knowledge about whole process.
Thanks a few more on odexed and deodexed ROM
Hi,
Many thanks for your prompt reply. But please bare with me as i am going to ask more questions
Firstly let me ask you some more queries related to the earlier questions
1 Which folder in my ROM. I have root access, so i would like to view the files.
2 got it. saw the directory where the delvik cache is stored, but in case of a deodexed rom does this happen? i mean does the system store the dalvik cache by going through the apk if the ROM is deodexed. in other words does dalvik cache exist for deodexed ROM?
3 why is the deodexed ROM lighter? is it because it stores the app info at one place?
4. actually the question is same as no 2 above, Will i see the delvik-cache folder anymore if i deodex my ROM? if no then does the zipalign provides necessary data for the dalvik VM?
5.Ok i understood this
6. the process you are talking about is how to deodex my ROM. So i guess once i try to deodex my ROM the process will convert all the odexed app in my phone to deodexed. and henceforth all the appliccation that i install will be installed as a deodexed app. am i right in my guess?
Now some more questions please
7. is the only difference between them is the fact that odexed rom stores the app in two places and deodexed rom stores as a single apk?
8. what exactly is the .ODEX dex file. Is it a full copy of the apk or only a part of the apk. i guess it is this .ODEX file that makes the odexed rom heavy while the deodexed rom doesnt contain a .ODEX file which makes it lighter
R_a_z_v_a_n said:
Some answers, I numbered your questions to be more easily tracked
1. In your /system
2. Android's Dalvik goes through every apk's and extracts the dex file from it. It places the dex files in the cache folder - located at /data/dalvik-cache. This is the directory that gets cleared when you clear the dalvik cache in your custom recovery like CWM or TWRP.
3. The difference is that deodexed ROMs are lighter and allow modifications but odexed ROMs load faster. ROMs come with Zipalign at boot that make a deodexed ROM load as fast as an odexed ROM.
4. I dont know the answer of this ... sorry.
5. Of course you can, is no reason to worry about.
6. You need android-sdk installed in your computer/laptop, busybox on the phone, xUltimate and some knowledge about whole process.
Click to expand...
Click to collapse
My friend,
You ask too many questions and I do not think going somewhere after you have the answers.
So, lets start with ...
1.There is two place: I tell you in system/root ... search for directors -> data/app or system/app
2 Of course. Because of this the first start of a deodexed ROM is slower.
3 ... is it because it stores the app info at one place? I dont know for sure, but is one of the explanation. Lighter can also mean that the apk can be modified by Themers much easier without any risk.
4. Yes will see the folder, i just tell where is located from my phone when i answered before. And i have my ROM deodexed and zipalign
5....
6. You are right.
7. Yes, and much easier to theme without risks
8. I guess is correct, dont know much about that
present hipirch
Dear Razvan,
Thanks for the help. I am very curious in nature, that why i bothered you so much.
Now please a last suggestion from you.
Shall i Deodex my Samsung Stock ROM? or go for already deodexed Pure Vanila or Jelly Bean LQB / SlimJB - Shaaan (Your Rom). please Suggest.
And also based on your experience, which Custom ROM you prefer for Galaxy S Advance (Just your Opinion )
R_a_z_v_a_n said:
My friend,
You ask too many questions and I do not think going somewhere after you have the answers.
So, lets start with ...
1.There is two place: I tell you in system/root ... search for directors -> data/app or system/app
2 Of course. Because of this the first start of a deodexed ROM is slower.
3 ... is it because it stores the app info at one place? I dont know for sure, but is one of the explanation. Lighter can also mean that the apk can be modified by Themers much easier without any risk.
4. Yes will see the folder, i just tell where is located from my phone when i answered before. And i have my ROM deodexed and zipalign
5....
6. You are right.
7. Yes, and much easier to theme without risks
8. I guess is correct, dont know much about that
Click to expand...
Click to collapse
Do not you worry I did not mind. :highfive:
You can put a deodexed ROM, but only if you want to apply some themes or customization, otherwise there is no reason to do so.
Frankly, in terms of what ROM to install, I can not give any advice, because besides his SlimJB Shaaan, i did not try any custom ROM, but i'm waiting, in silence , Cyanogen ROM stable and then i can make a choice.
Good luck
Yeah, I am also waiting for a stable 10.1 of cynogen. But how is the rom that you are using? How stable is it? I am also planing to try pure vanila till we have a stable release of cynogen. Anyways many thanks for the help.
R_a_z_v_a_n said:
Do not you worry I did not mind. :highfive:
You can put a deodexed ROM, but only if you want to apply some themes or customization, otherwise there is no reason to do so.
Frankly, in terms of what ROM to install, I can not give any advice, because besides his SlimJB Shaaan, i did not try any custom ROM, but i'm waiting, in silence , Cyanogen ROM stable and then i can make a choice.
Good luck
Click to expand...
Click to collapse
For the moment i'm using LQB Serbia, deodexed, zipaligned and debloated with CoCore 6.x kernel and i'm SOOO happy .... but we are OFF TOPIC here, thanks for understanding me.
Just a question. I am now on stock odex DXLSE with speedmod kernel. Can I flash on cwm the deodexed version of the same rom without wiping the data and without losing all of my files? Thanks.
JB? Rooted?
Its necessary...
Sent from my GT-I9070 using xda premium

[Explained] Difference between Odex and Deodex?

Odex versus Deodex​
As an Android newbie, what bothered me most was coming across terminology beyond my comprehension. Not coming from a Linux background it became hard to keep up with the oh-so-commonly-used words spread all across the development community. Likewise, since I didn’t understand the terms, consequently I was unable to determine is something was of any use to me or not. From what I have seen, this problem extends to many novice and even average users.
One commonly occurring word when playing with custom ROMs and firmware, and even themes is deodexed and odexed. Most users fail to understand what these terms actually imply, and while developers would boast again and again about their themes and ROMs being deodexed, the average user is left clueless as to what is going on.
What is an .odex file?
In Android file system, applications come in packages with the extension .apk. These application packages, or APKs contain certain .odex files whose supposed function is to save space. These ‘odex’ files are actually collections of parts of an application that are optimized before booting. Doing so speeds up the boot process, as it preloads part of an application. On the other hand, it also makes hacking those applications difficult because a part of the coding has already been extracted to another location before execution.
Then comes deodex!
Deodexing is basically repackaging of these APKs in a certain way, such that they are reassembled into classes.dex files. By doing that, all pieces of an application package are put together back in one place, thus eliminating the worry of a modified APK conflicting with some separate odexed parts.
In summary, Deodexed ROMs (or APKs) have all their application packages put back together in one place, allowing for easy modification such as theming. Since no pieces of code are coming from any external location, custom ROMs or APKs are always deodexed to ensure integrity.
How this works
For the more geeky amongst us, Android OS uses a Java-based virtual machine for running applications, called the Dalvik Virtual Machine. A deodexed, or .dex file contains the cache used by this virtual machine (referred to as Dalvik-cache) for a program, and it is stored inside the APK. An .odex file, on the other hand, is an optimized version of this same .dex file that is stored next to the APK as opposed to inside it. Android applies this technique by default to all the system applications.
Now, when an Android-based system is booting, the davlik cache for the Davlik VM is built using these .odex files, allowing the OS to learn in advance what applications will be loaded, and thus speeds up the booting process.
By deodexing these APKs, a developer actually puts the .odex files back inside their respective APK packages. Since all code is now contained within the APK itself, it becomes possible to modify any application package without conflicting with the operating system’s execution environment.
Advantages & Disadvantages
The advantage of deodexing is in modification possibilities. This is most widely used in custom ROMs and themes. A developer building a custom ROM would almost always choose to deodex the ROM package first, since that would not only allow him to modify various APKs, but also leave room for post-install theming.
On the other hand, since the .odex files were supposed to quickly build the dalvik cache, removing them would mean longer initial boot times. However, this is true only for the first ever boot after deodexing, since the cache would still get built over time as applications are used. Longer boot times may only be seen again if the dalvik cache is wiped for some reason.
For a casual user, the main implication is in theming possibilities. Themes for android come in APKs too, and if you want to modify any of those, you should always choose a dedoexed custom ROM.
Full credits to the source: addictivetips.com
Update: Here's a link to the Universal Odex Script made by MatrixDJ96
Thanks mate, You really saved my lot of time.:good:
Native7i said:
Thanks mate, You really saved my lot of time.:good:
Click to expand...
Click to collapse
You're welcome!
I really wanted to know about that, since people mention it a lot lately, thanks
Nice write up very proffesional this should be stickied for new users
Sent from my SCH-I500 using Tapatalk 2
Thanks!
Thanks! helped me alot! very informative.
The best explanation
If you want, you can share my universal odex script for all phone in your thread
Sent from my GT-I9100 using xda app-developers app
Thank you. As a newbie, I learned a lot from your explanations.
MatrixDJ96 said:
The best explanation
If you want, you can share my universal odex script for all phone in your thread
Sent from my GT-I9100 using xda app-developers app
Click to expand...
Click to collapse
Hey MatrixDJ96
I've added the link to your script.
Wow, this was a real lifesaver :victory: I finally can differentiate
:good:
nice write up
Thanks
Thanks, Really help a lot...
that was a really clear explanation - thanks!

Editing the framework.apk (Solved)

So I was wondering, is there anyway for me to edit the base and accent colours of the framework.apk in the system files so I can make my phone look different from others. I know this can be done using Cyanogenmod's theme engine but I'd prefer to stay on a stock version of android which is more stable and up to date.
I have android 7.1.1 beta with root and an unlocked bootloader, I have tried taking the framework.apk from other device to put on my own but it always causes a stuff up in the data partition (which is kind of expected) meaning that I need to factory reset my phone to get it working again.
Thank you in advance.
Images of some extreme examples are available below
Substratum legacy works on stock roms, but ypu need root from ive read! Ive never tried! Always make backup first
Jackio987 said:
So I was wondering, is there anyway for me to edit the base and accent colours of the framework.apk in the system files so I can make my phone look different from others. I know this can be done using Cyanogenmod's theme engine but I'd prefer to stay on a stock version of android which is more stable and up to date.
I have android 7.1.1 beta with root and an unlocked bootloader, I have tried taking the framework.apk from other device to put on my own but it always causes a stuff up in the data partition (which is kind of expected) meaning that I need to factory reset my phone to get it working again.
Thank you in advance.
Images of some extreme examples are available below
Click to expand...
Click to collapse
Yes it is possible. Decompile your framework-res.apk and change the accent colors in your res/values/colors . XML and your Systemui.apk and your Settings Google.apk for the switchbar background.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Tulsadiver said:
Yes it is possible. Decompile your framework-res.apk and change the accent colors in your res/values/colors . XML and your Systemui.apk and your Settings Google.apk for the switchbar background.
View attachment 3925511 View attachment 3925512 View attachment 3925513
Click to expand...
Click to collapse
So I have taken a look at the framework-res.apk/res/values/color folder and extracted a few of the .xml files to take a look at them. I opened the files using notepad++ but nothing comes up correctly and I can't find any number values to represent the colors. So I was wondering if there were any special programs that I have to open the .xml files in and if there is can you also point me to the .xml file that edits the colors of the quick settings.
I have also taken a look at Substratum and it says that android 7.1.1 is unstable for use with the application.
Jackio987 said:
So I have taken a look at the framework-res.apk/res/values/color folder and extracted a few of the .xml files to take a look at them. I opened the files using notepad++ but nothing comes up correctly and I can't find any number values to represent the colors. So I was wondering if there were any special programs that I have to open the .xml files in and if there is can you also point me to the .xml file that edits the colors of the quick settings.
I have also taken a look at Substratum and it says that android 7.1.1 is unstable for use with the application.
Click to expand...
Click to collapse
What are you using to decompile the apk? If you haven't already, try using apktool. Install apktool and then in a terminal use:
Code:
apktool decode framework-res.apk
That should spit out proper xml files.
screenshot:
[IMG]http://i.imgur.com/ap6auRM.png[/IMG]
Jackio987 said:
So I have taken a look at the framework-res.apk/res/values/color folder and extracted a few of the .xml files to take a look at them. I opened the files using notepad++ but nothing comes up correctly and I can't find any number values to represent the colors. So I was wondering if there were any special programs that I have to open the .xml files in and if there is can you also point me to the .xml file that edits the colors of the quick settings.
I have also taken a look at Substratum and it says that android 7.1.1 is unstable for use with the application.
Click to expand...
Click to collapse
Yes, you are looking at files that have not been decompiled Apktool is a great tool. Take a look at "tickle my android" if you want the best and easiest one around.
And, for the QS background, you will need to decompile Systemui.apk I believe it is in the layout folder, a XML file called qs_background_primary. XML change the solid color from ?android color primary to the hex code color of your choice
http://forum.xda-developers.com/showthread.php?t=1633333
synesthete said:
What are you using to decompile the apk? If you haven't already, try using apktool. Install apktool and then in a terminal use:
Code:
apktool decode framework-res.apk
That should spit out proper xml files.
screenshot:
[IMG]http://i.imgur.com/ap6auRM.png[/IMG]
Click to expand...
Click to collapse
Thank you for your help. Now I just want to make sure because this is my first time actually playing around with system apk's, Do I need to do anything special to package the apk back together and onto my device other than applying the right permissions?
Also the reason why the xml's weren't working at first was because I just used winrar to extract the files because that worked on iOS's IPA's when I used to work with them and my current guess would be that if I was to put the apk back onto my phone I would need to do more than package it as a .zip and rename it as an .apk.
I would test this on my Moto G first but it's super stuffed up at the moment.
Jackio987 said:
Thank you for your help. Now I just want to make sure because this is my first time actually playing around with system apk's, Do I need to do anything special to package the apk back together and onto my device other than applying the right permissions?
Also the reason why the xml's weren't working at first was because I just used winrar to extract the files because that worked on iOS's IPA's when I used to work with them and my current guess would be that if I was to put the apk back onto my phone I would need to do more than package it as a .zip and rename it as an .apk.
I would test this on my Moto G first but it's super stuffed up at the moment.
Click to expand...
Click to collapse
To recompile,
Code:
apktool b systemui
(or framework-res) You will want to replace the meta-inf and android manifest of your newly recompiled apk with the original ones.
First, before you do any decompiling you must install your framework
Code:
apktool if framework-res.apk
Tulsadiver said:
To recompile, Apktool b systemui (or framework-res) You will want to replace the meta-inf and android manifest of your newly recompiled apk with the original ones.
Click to expand...
Click to collapse
Thank you I'll try it now
Ok it worked. Thank you so much for your help. With this new found knowledge I probably won't do much but it's just something useful to know just in case I have a sudden urge to make my operating system's main colours yellow and brown. Also editing just the colour values in the framework edited the colours in the quick settings and the settings application because they all refer to the framework for that colour.
Things I have learned:
How to decompile apk's properly
How to edit system ui/ framework/ settings colours
How to recompile an apk
How to make sure that the apk works when your device boots up.
Thank you everyone I couldn't of done it with out you.
EDIT: Oops. Just saw that someone else replied (and with better info). You can disregard this post. I'm glad you got your answers.
Jackio987 said:
Thank you for your help. Now I just want to make sure because this is my first time actually playing around with system apk's, Do I need to do anything special to package the apk back together and onto my device other than applying the right permissions?
Also the reason why the xml's weren't working at first was because I just used winrar to extract the files because that worked on iOS's IPA's when I used to work with them and my current guess would be that if I was to put the apk back onto my phone I would need to do more than package it as a .zip and rename it as an .apk.
I would test this on my Moto G first but it's super stuffed up at the moment.
Click to expand...
Click to collapse
The apktool decode command will spit out a folder tree. After making your edits, you should be able to use the apktool build command to recompile to an apk file again. If you don't specify a specific output path, it will probably dump it in a "dist" subfolder within the decompiled apk folder. If you just type "apktool" in the terminal, it should give you more detailed instructions for its options. Once you have an apk, you might need to sign it. You should be able to do that easily on your android device with the app zipsigner: https://play.google.com/store/apps/details?id=kellinwood.zipsigner2
Once you have the signed apk you should be able to replace the original with the same permissions and group policy settings and reboot. I would recommend making a nandroid backup to revert to in case you get stuck in a bootloop. It has been a long time since I have done this, so I might have missed something. Maybe I will give it a try when I have some time later.
how to add pixel icons in system apk
hilla_killa said:
Substratum legacy works on stock roms, but ypu need root from ive read! Ive never tried! Always make backup first
Click to expand...
Click to collapse
Unfortunately Substratum isn't really working too well on the 7.1 DP and it will notifiy you when using the app that modifying anything may very well cause bootloop, which in my case was very true. Tried to install the Pixel Theme that worked flawlessly on 7.0, then bootlooped after the required reboot. However, you can still try it and revert back fairly easily. The dev created 2 .zips in the Substratum folder to fix the bootloop if it does happen (the legacy zip is what fixed mine).
A$h!$h said:
how to add pixel icons in system apk
Click to expand...
Click to collapse
Which icons are you referring to? Navbar or apps?
Jackio987 said:
So I was wondering, is there anyway for me to edit the base and accent colours of the framework.apk in the system files so I can make my phone look different from others. I know this can be done using Cyanogenmod's theme engine but I'd prefer to stay on a stock version of android which is more stable and up to date.
I have android 7.1.1 beta with root and an unlocked bootloader, I have tried taking the framework.apk from other device to put on my own but it always causes a stuff up in the data partition (which is kind of expected) meaning that I need to factory reset my phone to get it working again.
Thank you in advance.
Images of some extreme examples are available below
Click to expand...
Click to collapse
Hey Jackio987,
Yeah! that's true
Refer to my post for better customizations! That's here

TOAD - The Open-Source Android Deodexer

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Deodexing Android is hard. Writing a program that can deodex Android for you is even harder.
Whenever Google come up with a new version of the OS, they change how the odexed rom is put together. Which means that a new method to deodex it is required. Working out what that method is and how to automate the process can be really time-consuming. So what happens is many great deodexing tools fall into disuse because the developer isn't able to keep it updated.
That's where TOAD comes in. The idea behind The Open-source Android Deodexer is that it uses short, easy to read, batch files to process the odexed files. These batch files, or 'Methods' as I'm calling them, can be easily added to for new versions of Android.
Or they can be modified if they need to be. I'm not the best coder in the world, and I'm hardly an expert on deodexing. I don't even have a device on which I can test these Methods on right now. So, if somebody looks at the code and thinks it can be improved, those improvements can be made.
In fact, I'm not just encouraging people to make contributions if they can..I'm practically begging for them to. With the help of the community, this tool could theoretically last for years..
How To Deodex Your Files
To use TOAD, you first need to download the latest version from the link above. This is self-extracting EXE file which you can put anywhere. I suggest putting it in C: though just to minimise any issues.
When you run the EXE, you'll get a folder that looks like this:
The "Method_Files" folder contains all the batch files TOAD uses for the actual deodexing. The "Tool_Files" folder contains various files TOAD needs to run properly. And the "Your_Files" folder is empty - this is where your files need to go.
So copy into that folder your "build.prop" and "framework" folder. TOAD won't be able to do anything without those two things.
If you'd like to deodex your "app", "priv-app", "vendor/app", "vendor/priv-app", or "vendor/framework" folders, copy those in as well.
Once you've done that, run the tool.
TOAD will ask you if you want to deodex the framework folder or not. That's up to you but please bear in mind that, for any version of Android past KitKat (4.4.4. - API 19), you won't be able to deodex anything without an odexed framework folder.
The tool will now read the build.prop file and find out which version of Android you're using. This is done by finding out the API used to make the rom. Every version of Android has its own, unique API and there's a page that lists them all here: https://source.android.com/setup/start/build-numbers.
Every Android version that TOAD can handle will have its own individual Method file. This is a batch file in the "Method_Files" folder. If there's one that matches your files, TOAD will ask you if you want it to try to deodex everything.
Click on "YES" and sit back. TOAD will take care of everything else for you.
TOAD will go through the various files and try to deodex them, using the method outlined in the relevant batch file. If a file can't be deodexed, the tool will make a note of the error and move onto the next one.
As long as it's able to deodex at least one file, TOAD will make a ZIP file for you when it's finished.
Flash this in recovery and your rom should now be deodexed.
However, because every rom is different and developers like to do their own things, there is a chance that this ZIP won't work. So make sure you do a full backup before you try it. The ZIP shouldn't brick your phone but I can't guarantee you won't end up in a bootloop.
If it works, let me know. If it doesn't work, let me know as well so I can try and work out a solution. The more we know, the better TOAD will be!
XDA:DevDB Information
TOAD - The Open-Source Android Deodexer, Tool/Utility for all devices (see above for details)
Contributors
Ticklefish
Version Information
Status: Stable
Created 2018-09-29
Last Updated 2019-09-21
HOW TO DEODEX YOUR ROM​
To use TOAD, you first need to download the latest version from the link above. This is self-extracting EXE file which you can put anywhere. I suggest putting it in C: though just to minimise any issues.
When you run the EXE, you'll get a folder that looks like this:
The "Method_Files" folder contains all the batch files TOAD uses for the actual deodexing. The "Tool_Files" folder contains various files TOAD needs to run properly. And the "Your_Files" folder is empty - this is where your files need to go.
So copy into that folder your "build.prop" and "framework" folder. TOAD won't be able to do anything without those two things.
If you'd like to deodex your "app", "priv-app", "vendor/app", "vendor/priv-app", or "vendor/framework" folders, copy those in as well.
Once you've done that, run the tool.
TOAD will ask you if you want to deodex the framework folder or not. That's up to you but please bear in mind that, for any version of Android past KitKat (4.4.4. - API 19), you won't be able to deodex anything without an odexed framework folder.
The tool will now read the build.prop file and find out which version of Android you're using. This is done by finding out the API used to make the rom. Every version of Android has its own, unique API and there's a page that lists them all here: https://source.android.com/setup/start/build-numbers.
Every Android version that TOAD can handle will have its own individual Method file. This is a batch file in the "Method_Files" folder. If there's one that matches your files, TOAD will ask you if you want it to try to deodex everything.
Click on "YES" and sit back. TOAD will take care of everything else for you.
TOAD will go through the various files and try to deodex them, using the method outlined in the relevant batch file. If a file can't be deodexed, the tool will make a note of the error and move onto the next one.
As long as it's able to deodex at least one file, TOAD will make a ZIP file for you when it's finished.
Flash this in recovery and your rom should now be deodexed.
However, because every rom is different and developers like to do their own things, there is a chance that this ZIP won't work. So make sure you do a full backup before you try it. The ZIP shouldn't brick your phone but I can't guarantee you won't end up in a bootloop.
If it works, let me know. If it doesn't work, let me know as well so I can try and work out a solution. The more we know, the better TOAD will be!
HOW TO DEODEX INDIVIDUAL FILES​
To use TOAD, you first need to download the latest version from the link above. This is self-extracting EXE file which you can put anywhere. I suggest putting it in C: though just to minimise any issues.
When you run the EXE, you'll get a folder that looks like this:
The "Method_Files" folder contains all the batch files TOAD uses for the actual deodexing. The "Tool_Files" folder contains various files TOAD needs to run properly. And the "Your_Files" folder is empty - this is where your files need to go.
So copy into that folder your "build.prop" and "framework" folder. TOAD won't be able to do anything without those two things.
If you'd like to deodex files from your "app", "priv-app", "vendor/app", "vendor/priv-app", or "vendor/framework" folders, copy those in as well.
Once you've done that, run the tool and select the bottom option.
TOAD will scan the folders and present you with a list of all the odexed APK and JAR files available. For Android 4.4. (KitKat) and above, this won't include any of the 'boot' JAR files. These have to be deodexed all at the same time and doing so will make it impossible to deodex the rest of the rom.
If you want to deodex these without deodexing the rest of the rom, just put the "framework" folder and "build.prop" file in the "Your_Files" folder only then select the top option on the first screen. This will process the whole "framework" folder only.
The tool will now read the build.prop file and find out which version of Android you're using. This is done by finding out the API used to make the rom. Every version of Android has its own, unique API and there's a page that lists them all here: https://source.android.com/setup/start/build-numbers.
Every Android version that TOAD can handle will have its own individual Method file. This is a batch file in the "Method_Files" folder. If there's one that matches your files, TOAD will ask you if you want it to try to deodex everything.
Click on "YES" and sit back. TOAD will take care of everything else for you.
TOAD will try to deodex the file, using the method outlined in the relevant batch file. If the file can't be deodexed, the tool will make a note of the error and let you know.
If the file can be deodexed, TOAD will make a ZIP file for you when it's finished.
Flash this in recovery and your file should now be deodexed.
However, because every rom is different and developers like to do their own things, there is a chance that this ZIP won't work. So make sure you do a full backup before you try it. The ZIP shouldn't brick your phone but I can't guarantee you won't end up in a bootloop.
If it works, let me know. If it doesn't work, let me know as well so I can try and work out a solution. The more we know, the better TOAD will be!
*** reserved ***
** reserved **
Another Good Job.Nice Tools Coming From You! Good Luck On Improving Your Skills More..
Its great as always
thanks bro
Great job! Good luck with your new project?
This is amazing !, Power to you !
Great job, mate, probably an excellent project like TMA
@Ticklefish - Thanks for this. My first try: everything smooth, no errors, zip created, but nothing was deodexed. All of the files in the zip are the same as the original ones, apks and odex folders.
Xperia X Compact, latest stock 8.0...
levone1 said:
@Ticklefish - Thanks for this. My first try: everything smooth, no errors, zip created, but nothing was deodexed. All of the files in the zip are the same as the original ones, apks and odex folders.
Xperia X Compact, latest stock 8.0...
Click to expand...
Click to collapse
Ah, my first customer! And it's gone wrong already!
This is good, in a strange way. I did some dummy runs with an Oreo system dump while I was making this and everything seemed to work just fine. If your files aren't deodexing, I need to know why.
Could you please share your files, including your log.txt? I'll go through them on my side and see if I can work out a solution.
Sent from my Sony Xperia XA1 using XDA Labs
@Ticklefish
Great job buddy
Ticklefish said:
Ah, my first customer! And it's gone wrong already!
This is good, in a strange way. I did some dummy runs with an Oreo system dump while I was making this and everything seemed to work just fine. If your files aren't deodexing, I need to know why.
Could you please share your files, including your log.txt? I'll go through them on my side and see if I can work out a solution.
Sent from my Sony Xperia XA1 using XDA Labs
Click to expand...
Click to collapse
OK. I won't be at the computer until tomorrow, but will do. I'll try again also...
levone1 said:
OK. I won't be at the computer until tomorrow, but will do. I'll try again also...
Click to expand...
Click to collapse
If you can, that would be very handy. I'm trying it right now with a system dump I found here: https://forum.xda-developers.com/lg-v30/development/stock-dump-v300s-19c-android-8-0-0-t3712009 (thanks to @Reb0rn for uploading it). I've had to make my own build.prop file to get it to work as that's not in the dump but that shouldn't cause any problems.
TOAD is on file 73 of 225 so far but everything seems to be working as it should. The APK's are all having their classes.dex files put in them correctly.
It's not impossible that something goes wrong when the flashable ZIP is constructed, so I'll just have to wait for it all to be finished.
Watch this space...
Ticklefish said:
If you can, that would be very handy. I'm trying it right now with a system dump I found here: https://forum.xda-developers.com/lg-v30/development/stock-dump-v300s-19c-android-8-0-0-t3712009 (thanks to @Reb0rn for uploading it). I've had to make my own build.prop file to get it to work as that's not in the dump but that shouldn't cause any problems.
TOAD is on file 73 of 225 so far but everything seems to be working as it should. The APK's are all having their classes.dex files put in them correctly.
It's not impossible that something goes wrong when the flashable ZIP is constructed, so I'll just have to wait for it all to be finished.
Watch this space...
Click to expand...
Click to collapse
Sir i also tried the tool for services.jar to deodex i coppied all the concerned files as you mentioned but haven't successful coz the zip contain same services.jar file and its relevant vdex file. The same thing as other user reported. I will try to send you the zip in the evening.
Sent from my SM-G930F using Tapatalk
msubhani said:
Sir i also tried the tool for services.jar to deodex i coppied all the concerned files as you mentioned but haven't successful coz the zip contain same services.jar file and its relevant vdex file. The same thing as other user reported. I will try to send you the zip in the evening.
Sent from my SM-G930F using Tapatalk
Click to expand...
Click to collapse
I've finished processing the files I mentioned earlier. It's a 8.0 rom so uses 26.bat in the Method_Files folder. There was a file that couldn't be deodexed but those that could have the classes.dex files in them. The oat folder is still in the framework folder, which it shouldn't be. So I need to make a slight change there which I'll do. Once I've tested it again, I'll update the batch file here.
If you share your files, that would be helpful. Especially your logs.txt.
Ticklefish said:
I've finished processing the files I mentioned earlier. It's a 8.0 rom so uses 26.bat in the Method_Files folder. There was a file that couldn't be deodexed but those that could have the classes.dex files in them. The oat folder is still in the framework folder, which it shouldn't be. So I need to make a slight change there which I'll do. Once I've tested it again, I'll update the batch file here.
If you share your files, that would be helpful. Especially your logs.txt.
Click to expand...
Click to collapse
Yup you are right. I will send you log
Sent from my SM-G930F using Tapatalk
I've just uploaded version 1.0.0.1 to the downloads tab. This is exactly the same as the previous version, except one line in Method_Files\26.bat is slightly different. This ensures the framework/oat folder is deleted if all the boot JAR files in framework are deodexed.
It's a relatively simple thing but it could stop the phone from booting so worth doing.
Because it's such a small change, if you've already downloaded TOAD, you can download the new version...or just download the new BAT file. Which I've uploaded as well.
Ticklefish said:
I've just uploaded version 1.0.0.1 to the downloads tab. This is exactly the same as the previous version, except one line in Method_Files\26.bat is slightly different. This ensures the framework/oat folder is deleted if all the boot JAR files in framework are deodexed.
It's a relatively simple thing but it could stop the phone from booting so worth doing.
Because it's such a small change, if you've already downloaded TOAD, you can download the new version...or just download the new BAT file. Which I've uploaded as well.
Click to expand...
Click to collapse
no success sir. log attached. oat folder still in zip. PM you one link please see.

Categories

Resources