[MASSIVE UPDATE][SOFTWARE-GUI][WINDOWS]Universal Deodexer V5 [Version #5]

Search This thread

abcdjdj

Senior Member
May 28, 2012
1,732
3,228
Thane
Hi everyone,

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.

NOW EVEN ON XDA PORTAL - http://www.xda-developers.com/android/deodex-all-the-things-with-universal-deodexer/

NOW WITH A BEAUTIFUL NEW GUI:D

Requirements:-
--->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)

Instructions :-
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.

f41izp.jpg


6. Deodexed files will be found in the "done" directory. This is how the window looks after the process is complete :-

2ijtd7a.jpg



Download link -
V5 - http://www.mediafire.com/download/dz5z7oa3mbmwwom/Universal_Deodexer_V5.zip
V4 - http://d-h.st/bMp
V3 [FIXED] - http://d-h.st/QGo [MIRROR OF V3 - https://dl.dropboxusercontent.com/s...rxa7Thm9776KkEFAN87WMgcsF5NwDgiQ8CpkUFA&dl=1]
V2 - http://d-h.st/MZR
V1 - http://d-h.st/jGf

Source Code - https://github.com/abcdjdj/Universal_Deodexer

To do:-
--->Add JAR support for deodexing
--->Make linux version
--->Make it more of a "one-click deodexing"
--->Multiple apk support

Credit:-
---> iBotPeaches (apktool)
---> Google and all the guys who wrote tutorials on creating batch files
---> My teachers who teach me Java:)
import java.iForgotYou.*;;)
 
Last edited:

abcdjdj

Senior Member
May 28, 2012
1,732
3,228
Thane
Changelog
Code:
V5
-->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


V4
--->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

V3
---> Added option to deodex JAR files.
---> Added option to pull framework files from phone.
---> Fixed a very important logical error in the Java code

V2
---> Built from scratch again.
---> Added multiple apk deodexing support. Deodex all apks at once.
Completely one-clickish!
---> 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!:)

V1
---> Initial Release
 
Last edited:

Abhinav1997

Inactive Recognized Developer / Retired Forum Mod
Jul 29, 2012
2,590
5,306
FAQ -

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 –
Code:
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"
java.lang.UnsupportedClassVersionError:
Control : Uns
upported major.minor version 51.0
at
java.lang.ClassLoader.defineClass1(Native
Method)
at java.lang.ClassLoader.defineClassCond
(Unknown Source)
at java.lang.ClassLoader.defineClass
(Unknown Source)
at
java.security.SecureClassLoader.defineClass
(Unknow n Source)
at java.net.URLClassLoader.defineClass
(Unknown Source)
at java.net.URLClassLoader.access
$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown
Source)
at
java.security.AccessController.doPrivileged
(Native Method)
at java.net.URLClassLoader.findClass
(Unknown Source)
at java.lang.ClassLoader.loadClass
(Unknown Source)
at sun.misc.Launcher
$AppClassLoader.loadClass(Unknown
Source)
at java.lang.ClassLoader.loadClass
(Unknown 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:
org.jf.dexlib.Util.ExceptionWithContext:
regCount does not match the number of
arguments of the method
at
org.jf.dexlib.Util.ExceptionWithContext.withContex
t(ExceptionWithContext.java:54)
at
org.jf.dexlib.Code.InstructionIterator.IterateInst
ructions(InstructionIterator.java:92)..
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
bootloop.
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
deodexed –
‘xcopy’ is not recognized as an internal or
external command, or operable program or
batch file.
A- Your environment variables are not set
properly. Check this - http://
developer.appcelerator.com/qu...ternal-
command
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.
 
Last edited:

guitmz

Senior Member
Dec 22, 2011
313
28
Berlin
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 :)
 
Last edited:

abcdjdj

Senior Member
May 28, 2012
1,732
3,228
Thane
Source Code..? (The Slow.class)

Well uh um, is it compulsary to make it open source?(I don't know much about those GPL licenses but I thought that was only for the Linux kernel) Anyway, I will provide it with the V2 update.

@everyone - V2 will be much much more user-friendly.:)


Thank you for using our tool guys.
 
Last edited:

abcdjdj

Senior Member
May 28, 2012
1,732
3,228
Thane
Hi guys!

V2 is completely ready. Completely one click to deodex now. No need to enter anything extra. Just click on one button and deodex all apks. Support for deodexing multiple apks has been added. No need to use apktool at all now. Will update OP very soon..:D


Thank you,
abcdjdj
 

Stealyourface

Senior Member
Oct 19, 2007
648
148
VA Beach
Hi guys!

V2 is completely ready. Completely one click to deodex now. No need to enter anything extra. Just click on one button and deodex all apks. Support for deodexing multiple apks has been added. No need to use apktool at all now. Will update OP very soon..:D


Thank you,
abcdjdj

That's great. Can't wait as I'm actually using the tool right now.
 

Jaizu

Senior Member
Jan 4, 2013
962
452
Thanks for the tool! I´m deodexing apks now, works fine, but is slowly...
Why not select a folder and deodex the folder? 1 to 1 is more slowly, is better select a folder CCCC:
 

abcdjdj

Senior Member
May 28, 2012
1,732
3,228
Thane
Thanks for the tool! I´m deodexing apks now, works fine, but is slowly...
Why not select a folder and deodex the folder? 1 to 1 is more slowly, is better select a folder CCCC:

I think that you are using V1. Please use V2 because you can deodex multiple apks at once and it is completely one clickish. Please check the OP for more info.

Thank you for using my tool.:)

Sent from my LT26i using xda app-developers app
 
  • Like
Reactions: lllllllllll

Joffie87

Senior Member
Dec 5, 2010
59
18
Hey there. I'm trying to use your deodexer as we speak and a couple issues I've had with it were fixable by me, namely a pathing error regarding java. However, I am getting this:

Deodexing apk..


Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Util.ExceptionWithContext: Cannot locate boot class path file core
.odex
at org.jf.dexlib.Code.Analysis.ClassPath.loadBootClassPath(ClassPath.jav
a:218)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:14
6)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPathFromOdex(Cla
ssPath.java:111)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:94)
at org.jf.baksmali.main.main(main.java:308)

C:\Users\blarg\Downloads\Compressed\Deodex_V2\apks\AccuweatherDaemon.apk
1 File(s) copied

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Cannot find file or directory "out/"
at org.jf.smali.main.main(main.java:180)
File not found - classes.dex

Any idea what I can do to fix this?
 
Last edited:
  • Like
Reactions: almozaffar

Top Liked Posts

  • There are no posts matching your filters.
  • 395
    Hi everyone,

    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.

    NOW EVEN ON XDA PORTAL - http://www.xda-developers.com/android/deodex-all-the-things-with-universal-deodexer/

    NOW WITH A BEAUTIFUL NEW GUI:D

    Requirements:-
    --->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)

    Instructions :-
    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.

    f41izp.jpg


    6. Deodexed files will be found in the "done" directory. This is how the window looks after the process is complete :-

    2ijtd7a.jpg



    Download link -
    V5 - http://www.mediafire.com/download/dz5z7oa3mbmwwom/Universal_Deodexer_V5.zip
    V4 - http://d-h.st/bMp
    V3 [FIXED] - http://d-h.st/QGo [MIRROR OF V3 - https://dl.dropboxusercontent.com/s...rxa7Thm9776KkEFAN87WMgcsF5NwDgiQ8CpkUFA&dl=1]
    V2 - http://d-h.st/MZR
    V1 - http://d-h.st/jGf

    Source Code - https://github.com/abcdjdj/Universal_Deodexer

    To do:-
    --->Add JAR support for deodexing
    --->Make linux version
    --->Make it more of a "one-click deodexing"
    --->Multiple apk support

    Credit:-
    ---> iBotPeaches (apktool)
    ---> Google and all the guys who wrote tutorials on creating batch files
    ---> My teachers who teach me Java:)
    import java.iForgotYou.*;;)
    56
    Changelog
    Code:
    V5
    -->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
    
    
    V4
    --->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
    
    V3
    ---> Added option to deodex JAR files.
    ---> Added option to pull framework files from phone.
    ---> Fixed a very important logical error in the Java code
    
    V2
    ---> Built from scratch again.
    ---> Added multiple apk deodexing support. Deodex all apks at once.
    Completely one-clickish!
    ---> 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!:)
    
    V1
    ---> Initial Release
    31
    FAQ -

    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 –
    Code:
    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"
    java.lang.UnsupportedClassVersionError:
    Control : Uns
    upported major.minor version 51.0
    at
    java.lang.ClassLoader.defineClass1(Native
    Method)
    at java.lang.ClassLoader.defineClassCond
    (Unknown Source)
    at java.lang.ClassLoader.defineClass
    (Unknown Source)
    at
    java.security.SecureClassLoader.defineClass
    (Unknow n Source)
    at java.net.URLClassLoader.defineClass
    (Unknown Source)
    at java.net.URLClassLoader.access
    $000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown
    Source)
    at
    java.security.AccessController.doPrivileged
    (Native Method)
    at java.net.URLClassLoader.findClass
    (Unknown Source)
    at java.lang.ClassLoader.loadClass
    (Unknown Source)
    at sun.misc.Launcher
    $AppClassLoader.loadClass(Unknown
    Source)
    at java.lang.ClassLoader.loadClass
    (Unknown 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:
    org.jf.dexlib.Util.ExceptionWithContext:
    regCount does not match the number of
    arguments of the method
    at
    org.jf.dexlib.Util.ExceptionWithContext.withContex
    t(ExceptionWithContext.java:54)
    at
    org.jf.dexlib.Code.InstructionIterator.IterateInst
    ructions(InstructionIterator.java:92)..
    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
    bootloop.
    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
    deodexed –
    ‘xcopy’ is not recognized as an internal or
    external command, or operable program or
    batch file.
    A- Your environment variables are not set
    properly. Check this - http://
    developer.appcelerator.com/qu...ternal-
    command
    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.
    7
    So if i want to deodex the whole framework folder I have to put all the files in apk folder and then deodex , right ?

    Yes.

    Very good news guys! The next version will be a fully GUI-based tool which will utilize the Java Swing and AWT [Abstract Window Toolkit] classes:D All other minor bugs will be fixed and a few other features will also be included.
    7
    Hi guys!

    Release V4. As promised, it has a very beautiful GUI which has been built using the Java Swing and AWT classes. Here is the changelog -
    --->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

    Please let me know if you experience any problems while using the tool (software now I guess:D). Also, building the GUI has taken lots of time and effort so if you appreciate my work, please encourage me by rating the thread. If you have any suggestions too, please let me know and I will try to include it in the next version.

    Enjoy:)

    Regards,
    abcdjdj