What is the difference between deodex and odex roms? Sorry for the noob question but ive always been curious
Sent from my SCH-I605 using XDA Free mobile app
WHAT IS EXACTLY 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 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 ?
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
CONCLUSION: ADVANTAGES & DISADVANTAGES FOR BOTH SYSTEM FILES
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.
Related
Does anyone know if someone has created a deodex .zip file to flash via customer recovery?
For those that don't know, many of the apk files installed by an official rom will have a .odex file associated with them which slows down your phone considerably. These odex files interact with delvik cache and java VM and from what I understand wreak havoc on data access times and are largely uneccessary. Other dev platforms such as the droid x and evo have a .zip file that you can simply flash via recovery that will "deodex" your apps in system\apps folder. Basicially this zip will take your odex file and associated apk file and take the important information out of the odex and input it into the apk making just one streamlined faster file.... with all of your odex files gone, your phone will spend less time executing programs both for end user and core google apps and your phone will be way faster. Any idea if someone has developed this yet for the streak? Thanks
**EDIT**
I know this is a question but I thought it should go into development due to the potential of some of the dev's responding to this and posting useful developement info that we can try out and report back to the dev section. Plus, most of the trollers in Q&A probably don't know what this is or even care. Thanks
I am interested in this as well
Sent from my Dell Streak using Tapatalk
Steve's roms are pre-deodexed, just look under system/app, you can't find see any odex file, or simply perform a search on 'odex' in root explorer and the result should be none.
sharptv said:
Steve's roms are pre-deodexed, just look under system/app, you can't find see any odex file, or simply perform a search on 'odex' in root explorer and the result should be none.
Click to expand...
Click to collapse
good to know.
although if someone makes an app/file to do the job it will be handy in the future
Pleas do not post in Multiple forums about the same Topic
So i started to look around for a new ROM when i saw that stock defaults are odexed, Which means i cannot apply the standard RTL framework fixes i usually did before on other phones. These are critical for me.
I looked around and found no stock deodexed ROMs, only modified ones with a lot of modifications i didn't need. So i decided to try and deodex the stock one myself.
I took the same version i have on the device (XWKE7) and tried deodexing the framework folder odex files with baksmali.
However, I cannot get a couple of them to work no matter what. They keep complaining about a missing TestCase superclass.
I've googled around and found that that resides in android.jar from the SDK, so i took that, But i can't get baksmali to recognize it. If i include it in the boot class path that it looks for, It always says it cannot locate the path i give it, even if its in the same directory.
Can anyone who deodexed this version before offer some help?
Was missing core-junit.jar in the boot classes path. I was pretty sure i included it before (thought it was part of the default path), but oh well.
I'll leave the thread be for now, might help others.
Ive Noticed that the DX2 Has number of atrix ports and a couple of roms.. Any how i would love some more support than CM7 for the photon. I know we only have a handful of wonderful devs for the photon and they can only concentrate on so much at once.
I am wanting really bad to contribute..Can some one show me where to brush up on my skills I am wanting to attempt to Dev. I know IT HAS BEEN ASKED i just want to go to the right places...Just seems like there is not enough interest in the photon in general.. I have all the free time in the world right now...
Id like to thank all the wonderful Devs in the photon forum and for making CM7 boot!! Some good ISH!! i cant wait!!
If you want to make a custom, stock-based ROM, it is fairly easy. A number of us on the forums just think that it is not very necessary to have so many ROMs when there is little-to-no changes between them.
Anyhow, the basic gist is like this:
Find some app/theme you want to include into a ROM. Extract the ROM (.zip), and then place those files into their respective folders. Generally, themes are in framework-res.apk files and go in /system/framework. Apps usually go into /system/app. Keep in mind if you want to port a theme, you will have to resize the images and rename them (usually), which involved extracting the .apk, modifying the necessary files, and then pushing them back into an unextracted copy of the .apk (to deal with signing issues). When you are done with your modifications to the ROM, highlight/select all of the folders and files (usually META-INF, system, boot.img), and compress them into a zip archive. Bam, new ROM made.
mrinehart93 said:
If you want to make a custom, stock-based ROM, it is fairly easy. A number of us on the forums just think that it is not very necessary to have so many ROMs when there is little-to-no changes between them.
Anyhow, the basic gist is like this:
Find some app/theme you want to include into a ROM. Extract the ROM (.zip), and then place those files into their respective folders. Generally, themes are in framework-res.apk files and go in /system/framework. Apps usually go into /system/app. Keep in mind if you want to port a theme, you will have to resize the images and rename them (usually), which involved extracting the .apk, modifying the necessary files, and then pushing them back into an unextracted copy of the .apk (to deal with signing issues). When you are done with your modifications to the ROM, highlight/select all of the folders and files (usually META-INF, system, boot.img), and compress them into a zip archive. Bam, new ROM made.
Click to expand...
Click to collapse
Thanks BRO!!!! And Thank you for all your hours and dedication you have put fourth with school and all!! I would not of held on to my Photon If it weren't for you!! Honestly!!!
If you guys want I could upload my recent creation.
Its yays deodexed rom with the alien theme embedded in. I can't seem to get the blur launcher to work though and I could slim it down. Remove ringtones notifications and apps if ya'll want...its nothing special just themed no special tweaks.
Don't think you can add tweeks without unlocking the BL...
AJC9000 said:
If you guys want I could upload my recent creation.
Its yays deodexed rom with the alien theme embedded in. I can't seem to get the blur launcher to work though and I could slim it down. Remove ringtones notifications and apps if ya'll want...its nothing special just themed no special tweaks.
Don't think you can add tweeks without unlocking the BL...
Click to expand...
Click to collapse
That would be awesome!!!! Im working on something NOw!! I would like to use what u created!!
Its pretty much yays rom + kenneths theme and a working settings apk lol
You want it stripped down as possible? I suck at making update zips for gapps and such but I can strip it and you can command mount the things you want.
and applications? not everything is shareable I try to make a build did not work well but gets stuck on the logo of motorola
what are you adding and taking away?
The cookers of roms are by default including bunch of applications to ROM which i dont want to have and each time flash new version i need to manually remove them (like all google applications which takes quite a while and i am quite successfull at missing some). The rom is a zip file so i could make a program to kick apks out of rom automatically and repack it which isnt much of work to do but i am worried if such rom would still work. There is also a second problem, the digital signature which from expirience produces the yellow warning triangle at boot, i dont have problem with creating my own public/private keys and signing the rom but again i have no clue where the signature should be and where to register a private key (or maybe the samsung one is known?).
Is there some document on this topic or someone is prepared to help me out?
takes 20-30 seconds to open titanium and do a batch uninstall of the apps you dont need
Hmm... i dont use it but i will try, although i would still rather do a batch remove of all unwanted applications on my own before they even get installed. And adding a new application to install first also wouldnt be a bad idea (LBE privacy guard)
You can just extract the rom zip and from that delete the apks you dont want from the System --> App folders or Data --> App folders if there is anything in there. You could also use this 'opportunity' to choose which Kernel and Modem etc you wanted if you plan on changing / flashing different ones later. Re-zip and flash!
I will say this though, in the past i've done this and for some reason certain apps that I left in the zipped rom didn't install, no biggy though
Ok, this was the answer i was searching for. One more thing, what to do with digital signature?
Custom rom .
Open with Win Rar do not extract.
Open System Open Apps
Delete whatever you dont want and is safe to do so .
Close Win Rar and flash rom .
jje
Hmm, i am just playing with one thought, if the android is tied to apk extension for installing, the changing of zip header (actually from historical reasons it is footer ) to rename the apk to ap_ for unwanted application would acctually kill it from installing without ever unpacking it... and the code is actually even more trivial, search and replace...
I pulled down `boot.oat` from an API22 Android phone. It's Android 5.1 Lollipop which brought the change from Dalvik to ART and is a bit mistified (at least for me).
To make it exact this is from an old Xperia Z Ultra (factory ROM, nothing is/was customized).
As far as I understand, modifying boot.oat is not easy, and permanent, as this file is regenerated every time whenever a package installation/deinstallation is happened.
I need to modify a class which resides in `framework.dex` which I found in `boot.oat` (/system/framework/arm/boot.oat).
I have several questions I don't really understand:
1.) I have `framework.jar` in /system/framework, but it's size is 309 bytes, contains only manifest.mf. Does this file has any correlation to `framework.dex` in `boot.oat`?
2.) What is `boot.art`? It was not needed to deodex `boot.oat`.
3.) How can I properly put back my modifications to `boot.oat`? (Can I brick the device by providing a wrong `boot.oat`? Or- as it can be regenerated after package changes, it will also be simply regenerated if it's invalid?)
4.) How can I make my change permanent, i.e. survive boots, package installations, etc (in general boot.oat regeneration)?
Thanks for reading folks!