What does deodex mean?
What is a deodexed rom/kernel?
Sent from my SAMSUNG-SGH-I897 using Tapatalk
Well since no one answered the question
from what i understand its like unzipping it so you can add stuff. Or fix things. But i may be way off here as im still a noob.
Http://lmgtfy.com/?q=What+is+a+deodexed+rom%
Sent from my SAMSUNG-SGH-I897
http://code.google.com/p/smali/wiki/DeodexInstructions
This tells you how to deodex a odex file. Basically an odex file is an optimized file that has device specific information regarding the dependencies of the BOOTCLASSPATH .jar files. They're primarily core.jar, ext.jar, framework.jar, android.policy.jar and services.jar. The process of deodexing is to extract all of that information for the odex file and create a classes.dex to put into the apk associated with the odex file. You have to basically tell the program, baksmali, what .jar files to look at but it takes a bit of research and trial and error to get a classes.dex file generated. You then need to add it to the apk and resign it, which requires yet another program autosign.
This process is not for the impatient or the faint of heart. You can actually do this on your PC with the correct files. Feel free to correct me if I'm wrong, I've just started messing around with deodexing.
Thanks!!!!
Related
I'm sure most of you know that optimization using dexopt wrapper creates an odex file but removes the classes.dex file in the apk. My question is, how do you remove that .odex file and change it back to a classes.dex file? I'm wondering because once I have a classes.dex file I'm going to disassemble it with baksmali see what I can do and figure out. Any help is appreciated, thanks.
alritewhadeva said:
I'm sure most of you know that optimization using dexopt wrapper creates an odex file but removes the classes.dex file in the apk. My question is, how do you remove that .odex file and change it back to a classes.dex file? I'm wondering because once I have a classes.dex file I'm going to disassemble it with baksmali see what I can do and figure out. Any help is appreciated, thanks.
Click to expand...
Click to collapse
dexopt-wrapper does not remove the dex file from the apk, unless we do it different ways, i run dexopt-wrapper ***.apk ***.odex from adb. how do you do it? and anyway, if you used dexopt-wrapper, just get the rom you flashed before doing dexopt-wrapper and you should have the full apks already in there
I'm trying to get a classes.dex file from the Phone.apk from hero builds .As you can see in my signature I'm working on porting the HTC Dialer to cupcake builds. The Phone.apk included in JaCHero2.63 just doesn't have the .dex file ,but it has the .odex file. All apks in that build that are optimized with odex do NOT have a classes.dex file in the original apk file. I'm wondering if it's possible to merge the .odex and the .apk so i can get a workable classes.dex file.
hi guys,
i am looking for way to easily "combine" multiple same jar files.
one example: i want to use 2-3 mods which are in services.jar but when i overwrite this file with another services.jar in /system/framework i always have only one mod logically.
so i can't use "trackball notification", "battery percent" and "browser mod" together.
i found way how to do but it's not easy. i unpacked jar and got classes.dex which i dedexed with baksmali and got many smali files then i combine the changed files from all mods and combine them via smali back to dex file and pack them back in jar file.
is there easier way to do it?
Use the diff command, using logical attributes (otherwise as soon as you see some new code, the rest that follows may make you believe there is something new)
And write your own Jar file
then post it back up here for us all to use; including the mods you've installed...
Mostly, though, I would say this belongs in a different forum
houmles said:
hi guys,
i am looking for way to easily "combine" multiple same jar files.
one example: i want to use 2-3 mods which are in services.jar but when i overwrite this file with another services.jar in /system/framework i always have only one mod logically.
so i can't use "trackball notification", "battery percent" and "browser mod" together.
i found way how to do but it's not easy. i unpacked jar and got classes.dex which i dedexed with baksmali and got many smali files then i combine the changed files from all mods and combine them via smali back to dex file and pack them back in jar file.
is there easier way to do it?
Click to expand...
Click to collapse
Your only other option would be to download the aosp source and compile the changes in yourself. Most of these changes are already in cyanogen's latest github.
The browser one is the only one i'm not sure of
I'm a noob at this... I searched the forum but couldn't find any information.
Could someone more knowledgeable explain to me how to decompile and recompile apk's?? More specifically the framework-res??
I read that you can't simply unzip and then rezip... so what do I have to do?
The apk's are zip files that contain the resources (icons, bitmaps, sounds, etc.) as well as the code compiled in a classes.dex file. You can replace the resources after deodexing, but I don't think you will be able to change the compiled code in classes.dex unless you have the source code.
Sent from my SAMSUNG-SGH-I897 using XDA App
So for instance... if I have a clockwork flashable battery mod... and I unzip that... and edit colors of icons in the framework-res.apk, then can I just save the files, recompress and it will still flash properly?
And another thing.. if you have a clockword flashable .zip how do you change it so that you can flash via stock recovery? I know that simply renaming it to update.zip and trying via stock will not work. Is it a hard process, do I need a special program on my pc??
make your life easier..
search xda for Apk Manager
jslee1020 said:
So for instance... if I have a clockwork flashable battery mod... and I unzip that... and edit colors of icons in the framework-res.apk, then can I just save the files, recompress and it will still flash properly?
And another thing.. if you have a clockword flashable .zip how do you change it so that you can flash via stock recovery? I know that simply renaming it to update.zip and trying via stock will not work. Is it a hard process, do I need a special program on my pc??
Click to expand...
Click to collapse
I am not sure about editing apk's. To create a flashable zip file through stock recovery, you need to have the META-INF folder correctly created with a working updater script and the manifest and certificate files that you get by signing the zip file. Look into playing with the HTC android kitchen on the chef central section here to automate that process.
I am trying to create a reboot option for my galaxy tablet. I am in the proccess of using smali/baksmali to edit some files...the problem is when I adb pull the framework jar there is no classes file in the zip. The only thing in there is the META-INF obviously and a file called preloaded classes...this is considered just a file, not a class file. Should I not have a .class file?
EDIT-------------------------------------------------
I looked, what I mean is that there is no classes.dex file
Thanks
Found the problem. I am using a stock rom that hasn't been deodexed. I had to use baksmali to deodex the framework.odex file. Of course if you do this you have to have the right bootclasses in the folder or the file will not decompile right, and from what I have read you need that to happen in order to compile it back into a odex file. I should deodex the whole rom, but I am still new at this and don't want to create a boot loop
-Peace
So, I've successfully (I think) modded my own SystemUI.apk to simply just get rid of the hideous VZW 4G LTE in the notification bar. I've watched videos, read threads old and new, and still don't know for sure if I'm doing everything correctly. Not just whether I'm doing it correctly, but If I'm over doing things.
My understanding is that stock is odex. And everywhere I've read is the first step is to deodex. So I learned baksmali and deodexed SystemUI.odex. Realized nothing of these smali files needed modding for my intention, so smali'd back to the classes.dex file.
I then used apktool to decompile SystemUI.apk. Herein lies my first confusion. SystemUI.apk already contains the same classes.dex file that I deodexed in the first step above. Why is the same coding in two separate places? If it was actually an odex file structure, wouldn't SystemUI.odex only contain these files? And SystemUI.apk be absent of the classes.dex?
So I then changed the flags necessary in the bools.xml file and made some changes to the pngs to accomplish my task. Used apktool again to compile, and had my freshly and simply modded SystemUI.apk. No issues on the phone at all.
Is there anything that needs to be done after the compile? Is using the zipalign tool necessary? The only reason I ask is that when I do the check on my modded SystemUI.apk, I get errors. When I run the -f command, things get "fixed" and a second verification checks out.
Second, if the system is truly odex, do I need to odex and create a new SystemUI.odex file to "match" SystemUI.apk? Despite the fact that no coding was modified in classes.dex? I used the Auto Odexer Script to accomplish this for grins. It spit out a new SystemUI.apk and SystemUI.odex.
All three of scenarios above worked (recompiled SystemUI, zipaligned SystemUI, and odexed SystemUI). But which is the correct way?