Related
What Deoxing Means....I Made A Rom Using Deodexer_2.5.6.2.zip ...
What do it Do... ??
De-odex: Apk files have respective odexes that devs use to supposedly save space. Deodexing means you convert it back to a .dex file and put it back inside the apk. This allows you to easily replace files (not having to worry about odexes), but the main point was to deodex services.jar so that you can change all text to different colors (such as the clock color to white) and to deodex services.jar, you need to deodex everything
this was copy and pasted from "Android for Dummies"
also, read this: http://droidxblog.wordpress.com/2010/11/10/what-is-odex-and-deodex-in-android-a-complete-guide/
lots of good info there
eminembdg said:
De-odex: Apk files have respective odexes that devs use to supposedly save space. Deodexing means you convert it back to a .dex file and put it back inside the apk. This allows you to easily replace files (not having to worry about odexes), but the main point was to deodex services.jar so that you can change all text to different colors (such as the clock color to white) and to deodex services.jar, you need to deodex everything
this was copy and pasted from "Android for Dummies"
also, read this: http://droidxblog.wordpress.com/2010/11/10/what-is-odex-and-deodex-in-android-a-complete-guide/
lots of good info there
Click to expand...
Click to collapse
thnks so im ging to read
After reading from articles , now more or less I got some idea on how to create a theme for a custom rom , but still there's something I don't know .
1) First , I extract files from a rom using 7zip . Then , I extract out the content of framework-res.apk and make some modifies / changes to those .png files . So , after completed those modifies , I just open archieve on the original framework-res.apk , drag and drop the one I modified to replace the original one ? After that , how do I pack it in .zip file that can be updated in open recovery ? .xml file shouldn't be modified right ?
2) What if I do this , I get a theme.zip made for the rom , and then I extract the contents of the theme.zip using 7zip , then again I modify the .png files and after completed , I packed it again by open archieve on the original theme.zip , drag and drop the one I modified to replace the original one ? Does this works ?
3) What if I modify other system apps such as calender.apk ? Using the same method , extract , modify , drag and drop , replace , then again how do I pack it in .zip file that can be updated in open recovery ? Is there any "bond" between those system apps and framework-res.apk ? Can I just modify anyone of both ? Or I have to modify both system apps and framework-res.apk to get it works ?
Thanks
nikctsh said:
After reading from articles , now more or less I got some idea on how to create a theme for a custom rom , but still there's something I don't know .
1) First , I extract files from a rom using 7zip . Then , I extract out the content of framework-res.apk and make some modifies / changes to those .png files . So , after completed those modifies , I just open archieve on the original framework-res.apk , drag and drop the one I modified to replace the original one ? After that , how do I pack it in .zip file that can be updated in open recovery ? .xml file shouldn't be modified right ?
2) What if I do this , I get a theme.zip made for the rom , and then I extract the contents of the theme.zip using 7zip , then again I modify the .png files and after completed , I packed it again by open archieve on the original theme.zip , drag and drop the one I modified to replace the original one ? Does this works ?
3) What if I modify other system apps such as calender.apk ? Using the same method , extract , modify , drag and drop , replace , then again how do I pack it in .zip file that can be updated in open recovery ? Is there any "bond" between those system apps and framework-res.apk ? Can I just modify anyone of both ? Or I have to modify both system apps and framework-res.apk to get it works ?
Thanks
Click to expand...
Click to collapse
Here's what I know so far. I'm still trying to learn as much as I can:
1) If you are making a theme by trying to replace pngs in an existing framework-res.apk file, you can do this: open the apk file within your zip program, and edit the apk there (so you'll have two zip windows open. Once the apk is updated, close the most recent zip window. The first zip window should recognize that you've updated the apk file, and ask you to update the first zip window.
I've been playing around with this: http://forum.xda-developers.com/showthread.php?t=1432152
What it allows you to do is modify the files in Windows Explorer (or whatever file explorer you're using), and then let the script do the rest of the work for you. The actions it can do are: decompile apk, recompile apk, sign apk, created update.zip.
The xml files need to be edited if you want to achieve certain effects. For example, in the Gingerbread theme there are some edits that have to be made to a few xml files in order to achieve white text on black backgrounds on the popup menus. The nice thing about the framework flasher link from above is that it 'compiles' the files (meaning it will check if the .9.pngs are correct, and if your xml files point to correct assets), so you can go about doing xml edits and stuff without fear of bootlooping.
2) Yes, this should work.
3) If the updater script is a generic script (that is, it moves everything from the /system folder to /system, and /data to /data), then you can create directories in the update.zip that refer to whatever apk you want to replace, with the same structure as in Android. The cool thing about Metamorph, from what I gather, is that you can create folder structures with just the assets you want to replace, rather than the entire apk. This means that if you want to replace just a few images in Phone.apk, for example, you create a directory in the Metamorph script under /system/app/Phone/res/drawable-hdpi and add the images you want to replace in there. I think that's the way I want to create my themes from now on, I just need to figure out how to do it correctly
I tried the framework flasher , after located the framework-res.apk and run RunMe , it shows echo is off , the log process shows 'java' is not recognized as an internal or external command,
operable program or batch file.
Do you have Java installed?
Mioze7Ae said:
Do you have Java installed?
Click to expand...
Click to collapse
No , I have no Java installed . Tried to install before but couldn't get the right version .
Java
I've yet to find one all inclusive theming reference. Just a lot of searching & reading & trial & error. This might be a good place to get started.
Edit: You'll also want to get the Android SDK
3rdstring said:
Java
I've yet to find one all inclusive theming reference. Just a lot of searching & reading & trial & error. This might be a good place to get started.
Edit: You'll also want to get the Android SDK
Click to expand...
Click to collapse
BTW , since I'm still too new to theming , I'm thinking of making my first step by changing the colour of a completed theme . This is what I'm currently doing : I extracted the files content of your DarkFroyo.zip and then extracted it's framework-res.apk . ( IT'S YOUR THEME , CAN YOU GIVE ME THE PERMISSION TO DO THIS ? ) I'm changing the original orange colour of all those icon to light pink using photoshop , then replace the original one . The files type are .png . Also , I changed the battery status icon and status bar background . However , I haven't touch those .xml files , I just leave it there . So after I complete , do I just flash it right away in my phone or I need to doing something like "sign" ? As for now , I don't have any idea about "sign" .
nikctsh said:
BTW , since I'm still too new to theming , I'm thinking of making my first step by changing the colour of a completed theme . This is what I'm currently doing : I extracted the files content of your DarkFroyo.zip and then extracted it's framework-res.apk . ( IT'S YOUR THEME , CAN YOU GIVE ME THE PERMISSION TO DO THIS ? ) I'm changing the original orange colour of all those icon to light pink using photoshop , then replace the original one . The files type are .png . Also , I changed the battery status icon and status bar background . However , I haven't touch those .xml files , I just leave it there . So after I complete , do I just flash it right away in my phone or I need to doing something like "sign" ? As for now , I don't have any idea about "sign" .
Click to expand...
Click to collapse
Changing the color in Photoshop is fine for normal ".png"s but ".9.png"s are special, they have a 1 pixel border with guides that define how they are stretched to fill a space (& are only visible is a decompiled state). Just editing a .9.png in Photoshop might break the .9 patch. Since you are trying to modify my theme it might also be wise to grab the "undo.zip" so if (when) something you try bootloops the phone you can flash the undo to get back to stock. I know had numerous bootloops when I was first starting out (still do occasionally).
3rdstring said:
Changing the color in Photoshop is fine for normal ".png"s but ".9.png"s are special, they have a 1 pixel border with guides that define how they are stretched to fill a space (& are only visible is a decompiled state). Just editing a .9.png in Photoshop might break the .9 patch. Since you are trying to modify my theme it might also be wise to grab the "undo.zip" so if (when) something you try bootloops the phone you can flash the undo to get back to stock. I know had numerous bootloops when I was first starting out (still do occasionally).
Click to expand...
Click to collapse
Hey 3rdstring. I noticed you release a new version of your theme for the ODEXED version of CM6. For APKs that have ODEX files (such as Phone), are you deodexing them using apktool, then reodexing them? A brief pointer would be nice!
molohov said:
Hey 3rdstring. I noticed you release a new version of your theme for the ODEXED version of CM6. For APKs that have ODEX files (such as Phone), are you deodexing them using apktool, then reodexing them? A brief pointer would be nice!
Click to expand...
Click to collapse
No the only thing I'm changing in any of the odexed apks are images. I use a Metamorph file with ZipThemer to build the update.zip (& undo) after I've decompiled / recomfiled framework-res for the white menu text & 10% battery increments.
3rdstring said:
No the only thing I'm changing in any of the odexed apks are images. I use a Metamorph file with ZipThemer to build the update.zip (& undo) after I've decompiled / recomfiled framework-res for the white menu text & 10% battery increments.
Click to expand...
Click to collapse
The reason I ask is b/c I tried pushing a modified Phone.apk to CM6, but it didn't pick up any of the changes I added (images only). It made me think that the assets were already prebuilt in the odex file, so changing the apk wouldn't do anything unless the odex file was changed too.
I also tried applying a metamorph script on top of the odex ROM, but it caused a lot of fcs. I think it's b/c of the ODEXing too.
EDIT: My bad. Phone.apk is the calling screen, Contacts.apk is the dialer + contacts. DOH!!!
My edits are pushed correctly
Can anyone tell me if its possible to add the 1% battery mod to a stock odex ics rom? I have a moto razr maxx. Is there a way i can mod this myself? I tried uot kitchen but it only shows increments of 10% on my phone.
Thanks!
Yes, it can be done. My phone's ROM is the stock odexed ROM and I have 1% battery increments. You need to edit framework-res.apk, you can use apktool or APK Multi Tool or whatever to unpack the APK, and rebuild it afterwards. To get 1% battery, you need to edit/replace some XMLs.
I'll try find a link to show how the XMLs should be and some commonly used icons.
EDIT: Here: http://forum.xda-developers.com/showthread.php?t=724778
Find a style you like, download it and copy the two folders from inside into the "res" folder in your unpacked APK, overwriting any existing files (you may need to rename the drawable-hdpi-v4 folder depending on your phones resolution)
But UOT should work. Make sure in the "battery" section you changed at the top from "Custom battery" to "SCB with %" and then selected the style you want.
SifJar said:
Yes, it can be done. My phone's ROM is the stock odexed ROM and I have 1% battery increments. You need to edit framework-res.apk, you can use apktool or APK Multi Tool or whatever to unpack the APK, and rebuild it afterwards. To get 1% battery, you need to edit/replace some XMLs.
I'll try find a link to show how the XMLs should be and some commonly used icons.
EDIT: Here: http://forum.xda-developers.com/showthread.php?t=724778
Find a style you like, download it and copy the two folders from inside into the "res" folder in your unpacked APK, overwriting any existing files (you may need to rename the drawable-hdpi-v4 folder depending on your phones resolution)
But UOT should work. Make sure in the "battery" section you changed at the top from "Custom battery" to "SCB with %" and then selected the style you want.
Click to expand...
Click to collapse
what phone do you have? i already tried the uot and it will not work. from what im understanding you would need to edit the systemUI.odex file to allow for battery % but i have no clue how to do it.
fix-this! said:
what phone do you have? i already tried the uot and it will not work. from what im understanding you would need to edit the systemUI.odex file to allow for battery % but i have no clue how to do it.
Click to expand...
Click to collapse
I have an HTC Explorer. But I believe the battery icon is stored in framework-res.apk, and not SystemUI.apk, so SystemUI.odex shouldn't be a problem (SystemUI.odex is the odex file of SystemUI.apk - you can't edit odexed apps, you would have to deodex SystemUI.apk first; this means combining the SystemUI.odex and SystemUI.apk files into one, deodexed SystemUI.apk, which can then be edited).
Although UOT may require you to upload a deodexed SystemUI.apk along with framework-res.apk, because some theme mods required SystemUI.apk. So you might need to get a deodexed SystemUI.apk. There's a guide to deodexing here: http://forum.xda-developers.com/showthread.php?t=1208320
It is a slightly complicated process, but it's not impossible to figure out I don't know for sure if this is what you need to do to make it work though. Make sure you have a nandroid backup before you flash the theme
i guess ill wait for a dev to deodex the stock rom then. the uot kitchen states it can work on odex roms but in my case it does not.
fix-this! said:
Can anyone tell me if its possible to add the 1% battery mod to a stock odex ics rom? I have a moto razr maxx. Is there a way i can mod this myself? I tried uot kitchen but it only shows increments of 10% on my phone.
Thanks!
Click to expand...
Click to collapse
Anything's possible... See HERE, HERE, and a mini re-odex tutorial HERE.
And, I believe there were some major framework/system changes in the transition from GB to ICS - so, the battery files may have moved to SystemUI from framework-res..
alteredlikeness said:
Anything's possible... See HERE, HERE, and a mini re-odex tutorial HERE.
And, I believe there were some major framework/system changes in the transition from GB to ICS - so, the battery files may have moved to SystemUI from framework-res..
Click to expand...
Click to collapse
thanks for that but it's a bit too over my head to attempt myself. if i uploaded my systemUI & systemUI.odex do you think you could help me out?
fix-this! said:
thanks for that but it's a bit too over my head to attempt myself. if i uploaded my systemUI & systemUI.odex do you think you could help me out?
Click to expand...
Click to collapse
You'd also need to upload all the .jar and .odex files from /system/framework I think to make it possible to deodex systemUI.apk.
EDIT: If you do that, I should probably be able to deodex it for you. (Assuming that process hasn't changed for ICS, which I don't think it has). Once you have this file deodexed, you should be able to use UOT, it supports ICS battery mods.
EDIT: If you need an easy way to copy those files off the phone, you can try this: http://androidcommander.com/
fix-this! said:
thanks for that but it's a bit too over my head to attempt myself. if i uploaded my systemUI & systemUI.odex do you think you could help me out?
Click to expand...
Click to collapse
Sorry, but I'm not too familiar with ICS yet... eagerly waiting Q3 for my phone.
Plus, I ported the battery from a deodexed set so I don't know all of the smali/xml edits involved if I were to do it from scratch...
You could still upload a whole system dump or cwm backup for me to look at ...if you wanted to. It'll let me get familiar with Moto's ICS..
SifJar said:
You'd also need to upload all the .jar and .odex files from /system/framework I think to make it possible to deodex systemUI.apk.
EDIT: If you do that, I should probably be able to deodex it for you. (Assuming that process hasn't changed for ICS, which I don't think it has). Once you have this file deodexed, you should be able to use UOT, it supports ICS battery mods.
EDIT: If you need an easy way to copy those files off the phone, you can try this: http://androidcommander.com/
Click to expand...
Click to collapse
im uploading now if someone can do this for me, i cannot figure it out. the razr devs do not seem interested in doing this on a ics leak.
http://www.mediafire.com/?m1i08symjcalvy4
uploaded system/framework & app
fix-this! said:
http://www.mediafire.com/?m1i08symjcalvy4
uploaded system/framework & app
Click to expand...
Click to collapse
Downloading now, provided it works I should have it up in 15 - 20 mins
EDIT: Appears it's a bit different, trying another approach now which will take a bit longer, but seems to be working for now at least (doing it this way means deodexing all the files).
EDIT: I'll try and get SystemUI.apk uploaded tonight, the rest will have to wait to tomorrow if you want them.
EDIT: There is a possibility I will need "init.rc" from the root of your device (i.e. not inside any folders like "system" or "data") to properly deodex all the files. A few seem to be giving errors and stuff.
Here's the (hopefully) deodexed SystemUI.apk [well, it IS deodexed, the "hopefully" refers to hopefully it's done right]. Try this with UOT (along with framework-res.apk, which isn't odexed in the first place), and as I said before, be sure to make a nandroid backup before hand.
You may also need to delete the SystemUI.odex file from your phone after applying the theme, I am not completely sure. If after applying the theme it has not worked, try doing so - worst case scenario you should be able to restore your nandroid backup if deleting the .odex file breaks something.
SifJar said:
Downloading now, provided it works I should have it up in 15 - 20 mins
EDIT: Appears it's a bit different, trying another approach now which will take a bit longer, but seems to be working for now at least (doing it this way means deodexing all the files).
EDIT: I'll try and get SystemUI.apk uploaded tonight, the rest will have to wait to tomorrow if you want them.
EDIT: There is a possibility I will need "init.rc" from the root of your device (i.e. not inside any folders like "system" or "data") to properly deodex all the files. A few seem to be giving errors and stuff.
Click to expand...
Click to collapse
heres the file you need to deodex.
fix-this! said:
heres the file you need to deodex.
Click to expand...
Click to collapse
Thanks. I can try deodex all the jars and apks with that tomorrow if you want. For now, SystemUI.apk seems to have deodexed fine without it, so you can grab it above and try UOT with it (that's the only file UOT needs other than framework-res.apk which isn't odexed anyway). Let me know if it works
SifJar said:
Thanks. I can try deodex all the jars and apks with that tomorrow if you want. For now, SystemUI.apk seems to have deodexed fine without it, so you can grab it above and try UOT with it (that's the only file UOT needs other than framework-res.apk which isn't odexed anyway). Let me know if it works
Click to expand...
Click to collapse
ill try it but if you think you could deodex everything that would be great.
used uot with the modded systemUI and it didn't work, still only getting 10% increments. i think the entire system/app & framework needs to be deodexed.
fix-this! said:
used uot with the modded systemUI and it didn't work, still only getting 10% increments. i think the entire system/app & framework needs to be deodexed.
Click to expand...
Click to collapse
Just found this HERE - looks like a good 1% battery tutorial...
But, from the look of your system, you have battery files (images/xmls) in BOTH the SystemUI.apk and framework-res.apk - how's that?
I don't think I'll be able to upload the deodexed files. It'd be a large file, and I don't really want to waste the bandwidth I'm afraid.
It's not a hard process for you to do though. There are two main options. Either buy Titanium Backup Pro for your phone, and then load it up and press menu, then "more" and then "Undo sys Dalvik integration..." which will deodex everything in /system/app (but not /system/framework), or else download this: http://forum.xda-developers.com/attachment.php?attachmentid=972719&d=1333088601 (I'd strongly recommend this second method)
Extract the ZIP, and place everything from /system/app in "_app" and everything from /system/framework in "_framework". Run AutoDEOToolMain.bat. Select option 2, then paste in this as the custom BootClassPath:
Code:
core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework-ext.jar:android.policy.jar:services.jar:apache-xml.jar:filterfw.jar:com.motorola.android.frameworks.jar:com.motorola.android.widget.jar:com.motorola.frameworks.core.addon.jar
Let it run, and all the deodexed files will be in the deodexed folders. Any files that weren't deodexed will be in the original folders.
This is really quite an easy process, so I'm sure you could achieve it yourself.
EDIT: There still seem to be a couple of errors with the above BootClassPath, the following two JARs seem to be missing: /system/framework/kafdex.jar and /system/framework/com.motorola.orange.simauth.jar (I removed them from the BootClassPath because the JARs were missing, if you can find these two JARs add :kafdex.jar:com.motorola.orange.simauth.jar to the end of the above BootClassPath and put the two JARs in "_framework". Then I think you will be able to deodex every JAR and APK. Without them, most still seem to work though. (A number of the APKs in /system/app do not deodex properly. A little googling has shown me that motorola often neglect to include com.motorola.orange.simauth.jar on their phones [probably to try and stop deodexing] and this is the main problem)
EDIT: Try using this tool to mod your battery: http://forum.xda-developers.com/showthread.php?t=1434061
Use the deodexed SystemUI.apk along with the standard framework-res.apk, and download one of the 1% battery mods from that thread. I really don't think the rest of the system apps being odexed should cause an issue.
I have an HTC Explorer, rooted on stock ROM (and I don't want to install a custom ROM). As it is a stock ROM, all the framework jars are odexed. Most system apps are also odexed. I am currently in the process of applying a little modification to framework.jar and SystemUI.apk. I have deodexed versions of both files (manually deodexed framework.jar, SystemUI.apk I downloaded deodexed).
Basically my question is this: If I replace the stock versions of these files with the deodexed files, will that cause problems? Do I need to re-odex them? Do I need to delete the corresponding .odex files from my phone for it to work (by my understanding, classes.dex from inside the jar/apk will be ignored if there is an odex file)?
[I have already replaced SystemUI.apk with the deodexed version, and the phone functions fine, but I have not deleted the .odex and I don't think there are any changes to the apk, so I don't know if the deodexed version is being "used" so to speak. I have also been told that deodexing just one jar from the framework folder will prevent the phone from booting, which I would rather avoid]
Hello. Lets assume I have odexed firmware. There's no trouble at all to deodex apk files without deodexing the whole rom.
But what if I want to deodex jar file (Android-telephony.jar), make some changes, then odex it and run normally changed code?
What are the requirements? Is it possible
Long ago it was possible via check summ replacement in hex editor.
But now there're oat files, arm64 folders...
Anyway, Is there a guide or something?
Thanks
Anyone