Alokbina and I have created a tool which allows users to very easily deodex apks from a rom. This tool is very useful for Rom developers too. For now only windows is supported but we will try our best to make the same tool for linux too and make the tool as user friendly as possible. And, please don't forget to thank alokbina too.
--->Java installed on your PC
--->system/framework folder from your rom
--->apks from that SAME ROM with the respective .odex file
--->Patience and a calm head (common sense included)
1. Download and extract the zip. You will get a folder called "Universal_Deodexer_VX"
2. Open the folder and place your framework files [/system/framework] in the "framework" folder.
3. Place all your apks or jars in the "source" folder. No need to manually check if a apk has the corresponding .odex file or not. Apks or Jars which do not have .odex files are automatically deleted.
4. Double click on Launcher.bat to start the tool.
5. Select the various options (android version, compression level).Then chose the deodex option. The deodexing process can be seen in the cmd window, and the log for the process can be found in the "working" folder.
6. Deodexed files will be found in the "done" directory. This is how the window looks after the process is complete :-
-->Re-wrote the entire tool from scratch (improved code, more efficient and professional code)
-->Added KitKat support
-->Updated to latest Smali and Baksmali (2.0.3)
-->Fixed the logging mechanism. Now everything gets logged properly in the file.
-->No more annoying windows opening and closing. Everything gets done in one window silently.
-->Added a verification check to see if the deodexing is successful
-->Added an option to reset tool to default (clears all files, makes it just as it was when downloaded)
-->Using a single script to deodex jar and apk files
-->Removed the flashy multi-coloured background. Switched to a simple Holo blue background
-->Lots of other small fixes and changes
--->Made the tool a GUI based tool/software!:D
--->Lightweight Java Swing API is being used.
--->Added option to set compression level from the GUI.
--->Added option to set api level from the GUI.
--->Added a debug mode which can be easily enabled from the GUI. Debug mode prevents the deodexing window from closing
automatically so that it is easier to diagnose any errors if present.:)
--->Moved the framework files to a separate "framework" folder. It looks much cleaner now:)
--->Apks/Jars which do not have .odex files are now automatically deleted. No need to manually go through the files and delete anything.
--->Randomly assign a colour to each button on every run.
--->Fixed some other minor bugs.
--->As this has become a big project with a big source code, I will be uploading the source code on Github:D
---> Added option to deodex JAR files.
---> Added option to pull framework files from phone.
---> Fixed a very important logical error in the Java code
---> Built from scratch again.
---> Added multiple apk deodexing support. Deodex all apks at once.
---> No need for apktool now. 7z is used instead
---> Updated some Java code and added "clear framework" and logs option
---> Java source code is now open source!:)
---> Initial Release
Q1) I could see some kind of errors while
deodexing but the cmd window closes very
quickly and automatically..
A - Before starting the doedexing process, be
sure to check the debug mode option. Now
the cmd windows won’t close automatically,
so you can post a screen shot here.
Q2) After following all the instructions, I
double clicked on Universal Deodexer VX.jar
but nothing happens.
A- Open up a cmd window by holding shift
and right clicking anywhere in the folder and
chose open command window here. Then
type this command –
Java –jar “Universal Deodexer VX.jar”
Now you will be able to identify the problem.
Q3) After typing the above command, I get
this error -
Exception in thread "main"
Control : Uns
upported major.minor version 51.0
(Unknow n Source)
Could not find the main class: Control.
Program will exit.
A- Please uninstall all previous versions of
java and download the latest version of Java
for your OS.
Q4) During the deodexing process, I get
some error like this –
UNEXPECTED TOP-LEVEL EXCEPTION:
regCount does not match the number of
arguments of the method
A – Before starting the deodexing process,
be sure to select the correct Android Version
in the list on the right side of the screen.
That should solve the problem. If it still
persists then please provide us with the rom/
device/android version etc.
Q5) My apks and jar files got deodexed
properly but my phone is stuck in a
A- Try deodexing the apk with a lower
compression level. If this does not help then
fix permissions in your recovery. If nothing
helps in please post a logcat.
Q6) One or two applications are force
closing after deodexing them.
A- Deodex those particular apks with the
compression level as 0.
Q7) I get this error while my files are getting
‘xcopy’ is not recognized as an internal or
external command, or operable program or
A- Your environment variables are not set
properly. Check this - http://
Q8) The deodexing process has got stuck..
A- Leave it for some time. It takes some
time to convert the .odex file into smali and
then into classes.dex. If nothing happens
after some time, please let us know by
leaving your comment below along with your
device name/rom/android version etc.
Very nice! Im porting it to linux - easy work once I remember how bat files works haha long time since im a bash rat.. i still miss using .bat files anyway, but sticking to the subject, i'll try to port it
While we are still waiting for Android L to be officially released, the first mentions of … more
22 Sep 2014
By Tomek Kondrat
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?