[Tool/Utility] JoelDroid Lollipop Batch Deodexer V 2.5 [Updated 18 Apr 2015]

mrjaydee82

Senior Member
Apr 5, 2010
6,754
12,548
0
Naples, FL
Ok I investigated the issue, android.policy.jar is part of boot.oat
and If all the files are moved from boot.oat and boot.oat removed, the rom fails to boot
hece it cannot be done right now until someone comes up with an alternate method or a workaround
The classes that didn't get automatically pushed from boot.oat...I just went into working folder and manually pushed the classes into the framework files...deleted boot.oat and the other junk 1 and was good to go.
Will be great have a tool like this for jelly bean
There are already many ways to decompile for jellybean ...tools and kitchens for that
 

joeldroid

Senior Member
Feb 7, 2012
625
1,861
0
Melbourne, Australia
joeldroid.com
The classes that didn't get automatically pushed from boot.oat...I just went into working folder and manually pushed the classes into the framework files...deleted boot.oat and the other junk 1 and was good to go.

There are already many ways to decompile for jellybean ...tools and kitchens for that
Can you please explain your steps in detail please? So that I can implement it? did the rom boot? what is your device?
 
  • Like
Reactions: rompnit

mrjaydee82

Senior Member
Apr 5, 2010
6,754
12,548
0
Naples, FL
Can you please explain your steps in detail please? So that I can implement it? did the rom boot? what is your device?
I use the nexus 6. The dex files from boot.oat didn't seem to place the classes.dex into the jars...so all I did was take the dex folder classes from the working folder (since those are the deodex files) and used winrar to open the jars and place the classes in there and renamed correctly to classes.dex. As for the framework.jar renamed the classes to classes.dex and classes2.dex. Then I deleted the 2 files left over in the framework arm folder. Boots up like a charm after that
 
  • Like
Reactions: joeldroid

joeldroid

Senior Member
Feb 7, 2012
625
1,861
0
Melbourne, Australia
joeldroid.com
I use the nexus 6. The dex files from boot.oat didn't seem to place the classes.dex into the jars...so all I did was take the dex folder classes from the working folder (since those are the deodex files) and used winrar to open the jars and place the classes in there and renamed correctly to classes.dex. As for the framework.jar renamed the classes to classes.dex and classes2.dex. Then I deleted the 2 files left over in the framework arm folder. Boots up like a charm after that
awesome, thanks for the heads up. I will implement that right away.
Cheers bro.
 

Golv

Recognized Developer
Jan 17, 2012
2,081
4,364
203
@joeldroid
The algorithm is following:

Code:
java -Xmx512m -jar oat2dex.jar"  boot \framework\arm\boot.oat
For apps from \system\priv-app\ or \system\app\ :
Code:
java -jar oat2dex.jar  \priv-app(or app)\name_app\arm\name_app.odex odex
java -Xmx512m -jar baksmali.jar -a 21 -x name_app.dex -o \DEODEX\name_app
java -Xmx512m -jar smali.jar -a 21 \DEODEX\name_app -o \name_app\classes.dex
7za u -tzip \priv-app(or app)\name_app\name_app.apk \name_app\classes.dex
Done!

If the application from framework and its *.odex contained in boot.oat (for example android.policy.jar), then we take recieved * .dex from dex folder (after java -Xmx512m -jar oat2dex.jar" boot \framework\arm\boot.oat ) and then parse it with baksmali, collect with smali and the resulting classes.dex we pack into jar.

If this framework.jar from \framework, then it has framework-classes2.dex. This .dex we parse with baksmali, collect with smali and resulting - classes2.dex we pack into jar with 7za together with classes.dex.
 

joeldroid

Senior Member
Feb 7, 2012
625
1,861
0
Melbourne, Australia
joeldroid.com
I still got a problem to report on the note3 Lollipop rom.
The framework is not correctly deodexed, example the android.policy.jar is still 1kB and no dex file in it.
This tool does deodex the framework correctly. With this tool the android.policy.jar is 285kB and got a dex file.
Hope you get it fixed.

@civato your issue is fixed, get the latest version (2.2) from the First post.
 
  • Like
Reactions: rompnit and civato

joeldroid

Senior Member
Feb 7, 2012
625
1,861
0
Melbourne, Australia
joeldroid.com
@joeldroid
The algorithm is following:

Code:
java -Xmx512m -jar oat2dex.jar"  boot \framework\arm\boot.oat
For apps from \system\priv-app\ or \system\app\ :
Code:
java -jar oat2dex.jar  \priv-app(or app)\name_app\arm\name_app.odex odex
java -Xmx512m -jar baksmali.jar -a 21 -x name_app.dex -o \DEODEX\name_app
java -Xmx512m -jar smali.jar -a 21 \DEODEX\name_app -o \name_app\classes.dex
7za u -tzip \priv-app(or app)\name_app\name_app.apk \name_app\classes.dex
Done!

If the application from framework and its *.odex contained in boot.oat (for example android.policy.jar), then we take recieved * .dex from dex folder (after java -Xmx512m -jar oat2dex.jar" boot \framework\arm\boot.oat ) and then parse it with baksmali, collect with smali and the resulting classes.dex we pack into jar.

If this framework.jar from \framework, then it has framework-classes2.dex. This .dex we parse with baksmali, collect with smali and resulting - classes2.dex we pack into jar with 7za together with classes.dex.
Awesome, that confirms my logic. Thanks for sharing man, btw with the latest oat2dex that you shared with me baksmali and smali is not needed.
 
  • Like
Reactions: mrjaydee82

joeldroid

Senior Member
Feb 7, 2012
625
1,861
0
Melbourne, Australia
joeldroid.com
it worked except annoying FC on NFC, bluetooth and Samsung platform link. May be it is not related to the deodexing ...

anyway thanks a lot for your efforts.
well it is not, coz I use a Samsung Galaxy S5 and I deodexed it, works perfect, no fc at all. What is your Samsung Device?
I got confirmation today from another Rom Chef that it works perfect on S4. I can confirm 100% that it works on S5.

let me know
Cheers
 
  • Like
Reactions: rompnit and ESPOWER

hanidib

Senior Member
Oct 2, 2010
77
23
0
well it is not, coz I use a Samsung Galaxy S5 and I deodexed it, works perfect, no fc at all. What is your Samsung Device?
I got confirmation today from another Rom Chef that it works perfect on S4. I can confirm 100% that it works on S5.

let me know
Cheers
Update: i have redone it - did a complete wipe, flashed it and everything is working fine now - thank you!
 

tamirda

Inactive Recognized Developer
Jul 12, 2010
4,637
18,804
0
www.tdroms.com
Hi there
First, thank you very much for the Auto-tool, will save for devs alot of pain and time :)
I have several questions, since I am in the army and can not investigate it, maybe you can answer them.
1. What is boot.oat and boot.arm? What are their job in the system?
2. Where is the working folder? Since it is not in the tool folder nor in the system folder(according to my friend ...)
Thank you very much :)