yashsingh1/xdaforums huggingface dataset:
[Android General] Heliochrome:
So, this works... deodex on device: https://xdaforums.com/android/software-hacking/mod-lollipop-t3339340

Had to take oat2dex v0.87 (included in that is 0.86)

Would be lovely to be able to use TOAD too :) .. Thanks again
[Android General] Ticklefish:
Sorry for the delay in the replies folks. Work is insanely busy and my home life isn't much better at the moment.

Your boot*.vdex files are in your framework folder..but your boot.oat is in your framework/arm64 folder where it should be. If you move the VDEX files into the same folder as our boot.oat file, TOAD will be able to deodex everything without any trouble.

It's going to be tricky to update the code to cope with this possibility but I'll see what I can do.

Cn you share your files please? I'll try it on my setup.
[Android General] Heliochrome:
I've sent pm, cant share links yet.. can you check it out? Thanks :o
[Android General] Heliochrome:
[MENTION=4315551]Ticklefish[/MENTION]

It seems zippyshare is blocked in the ??. Heres another link: https://uploadfiles.io/0h9h8p7w :o Thanks
[Android General] Ticklefish:
Thank you! I've just uploaded a new version that solves the issue highlighted by [MENTION=9232392]Degani[/MENTION] previously. Your files are slowly downloading and I'll check them out shortly.
[Android General] Ticklefish:
Well, that'll teach me. I uploaded v3.0.0.6 a few minutes ago...and now I've uploaded v3.0.0.7 to replace it. This fixes both of the above issues! :D
[Android General] stonecool:
Hi there, first of all thanks for all the help to the community and making things a bit easier for the non-savvy.

Question, after copying framework folder and build.prop to the right folder and after executing toad it only creates a log stating that method 26 can be used and that's it, no asking if i want to deodex. am I overlooking anything here?

Thanks in advance [MENTION=4315551]Ticklefish[/MENTION].
[Android General] Ticklefish:
Curious. It's supposed to ask you if you want to use that method on the same screen as the one saying which method can be used.

Can you share a screenshot please? It'd be interesting to see what's actually shown.
[Android General] Hamidreza2010:
bro sorry where is download link?

i didnt found it.

thanks
[Android General] Ticklefish:
Your log says this:

01-10-2018@1940 --- Deodexing Process Started

ABI detected as: "arm64"
API level detected as: "26"
"26.bat" to be used

-----------

Processing file 1 of 122 - "Your_Files\framework\oat\arm64\allshare.odex"
Processing "Error"
Error occurred during initialization of VM
Could not reserve enough space for 2105344KB object heap

ERROR!!!! DEODEXING FAILED!!!!

And it says that for all your files.

In 26.bat, we're only allowing 2056 MB for the files..

java [color="red"]-Xmx2056m[/color] -jar Tool_Files\baksmali.jar deodex -c boot.oat -d Your_Files\framework\%TOAD_ABI% Your_Files\%1\%2\oat\%TOAD_ABI%\%2.odex -o Tool_Files\out >>log.txt 2>&1

So, before we do anything else, we probably need to change that. I'll change it to 4112MB instead.

java -Xmx4112m -jar Tool_Files\baksmali.jar deodex -c boot.oat -d Your_Files\framework\%TOAD_ABI% Your_Files\%1\%2\oat\%TOAD_ABI%\%2.odex -o Tool_Files\out >>log.txt 2>&1

Try downloading the attached ZIP file and copying the contents into the "Method_Files" folder. Then try running the tool again and let me know what happens.
[Android General] Ticklefish:
It's in the downloads tab at the top of the page. I'm using a DevDB-style thread so you have to be on a desktop view to see it.
[Android General] Hamidreza2010:
thanks bro

i found it

should we download 26.bat file aslo?
[Android General] Ticklefish:
Not if you're downloading the tool itself, no. It comes with 26.bat already.

However, I did attach an experimental version a few posts up. If you're deodexing 8.0, you could give that one a try.
[Android General] Ticklefish:
I've uploaded a new EXE to the downloads section. This has "-Xmx4112m" for all the lines that call the Java files.

In other words, this should stop the memory issue that's already been reported.

I've also uploaded every current Method file as well. This whole project is only a few days old and is very experimental. But, if it works, this will be where any updated Methods will go.

We'll have to see if this is beneficial or not though..
[Android General] msubhani:
Tried latest version now log showing no error but during processing i saw som fatal error screen like vm x4112 never saw exactly coz it very fast like blinking. After completion when i check zip arm and oat folders are removed but files are not deodex properly because there is no calasses.dex in files.
[Android General] gvmiguez:
Great news to see you on new tool development Ticklefish [emoji108][emoji108], I will give a try as soon as possible
[Android General] Ticklefish:
It could be that your system won't allow a Java virtual machine with that big a heap size. You could try changing it to -Xmx2200m instead, perhaps.

What does your log.txt say?
[Android General] ShaDisNX255:
This is so spooky, I was JUST beginning to look on how to deodex stock and I find this linked on the Oreo TW mods (thanks [MENTION=6377149]yash92duster[/MENTION] for including it in that thread)

Will definitely try it out :)
[Android General] ShaDisNX255:
Hmmmm OK so just as a feedback...

Using your new 26.bat file I kept getting the error that [MENTION=3492634]msubhani[/MENTION] mentioned here:

I couldn't see the error itself on window because it kept flashing, but the log showed no error.

THEN, I changed java -Xmx4112m to java -Xmx2200m

As you state here:

and now I'm getting the errors on the log:

Could not reserve enough space for 2252800KB object heap

ERROR!!!! DEODEXING FAILED!!!!

Let me try again with Xmx4112m and try to give you the exact error that is flashing on TOAD

Edit:

This is the error that shows on TOAD:

Invalid maximum heap size: -Xmx4112m
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has ocurred. Program will exit

The LOG shows no error though

EDIT2:

Changed to 23000 and got this:

Error occurred during initialization of VM
Could not reserve enough space for 2355200KB object heap

ERROR!!!! DEODEXING FAILED!!!!

lol hmmmm maybe 3000? xD
[Android General] Ticklefish:
There doesn't seem to be any easy way of finding out how big a heap size a particular computer can have. My PC at work is hardly a powerhouse but worked with 4112 without any troubles at all.

This thread seems to suggest it's to do with whether the computer is 32 bit or 64: https://stackoverflow.com/questions/909018/avoiding-initial-memory-heap-size-error But halfway down the thread there's a suggestion that it isn't.

So I don't know.

The annoying bit is that I don't think I'll be able to get TOAD to work it out programmatically. We'll have to edit the batch file to do it.

Try 3000m and see what happens. Maybe we might get away it if we use just enough to cover the file?
[Android General] msubhani:
Will try tomorrow then let you know. boss have you watch video that i pm you? I think in android 8.0 and above there is issue in deodexing framework thats why a plugin vdex2dex to use for deodex i am using that mentioned in video for deodex services.jar and i am successfully done, my phone booted with that deodex services.jar. Btw i am not pro may be i am wrong [emoji57]
[Android General] ShaDisNX255:
Every time I go up on the value (3000 or even 4000) I get the result that it could not reserve space for XXXX MB (always being higher than the value I set up in the batch, 31XXX when I select 3000 MB and 41XXXX when I select 4000 MB)

It seems I can only go up to 4050 MB, if I try 4100 MB or above I get the error

The specified size exceeds the maximum representable size.

Do you need info on my PC to see if THAT's the problem? Hmmm :confused:

The link you provided mentions something about changing the VM to 64-bit, but I wouldn't know exactly where to change or add this "-d64"

My PC is 64 bits with 8 GB of RAM, maybe this could help? :)

Ok so I replaced

-Xmx4000m

with

-d64 -Xmx5000m

just to see if it would let me go above 41000 but I get this on TOAD:

Error: This Java instance does not support a 64-bit JVM.

Does this mean I have 32-bit java in my PC or does that mean that it's something with the program?
[Android General] Ticklefish:
8.1 needs to deodex by processing the VDEX files. Which uses vdexextractor. I've already got that in ROAD and 27.bat uses it.

8.0 deodexes by processing the ODEX files with baksmali and smali.jar.

As long as we can get them to work, that is!

It does look like we need to add the -d64 option to force Java to make a 64-bit virtual machine. That seems to be the best way to create the heap size we need.

But you need to have 64-bit Java on your PC. It sounds like you only have 32-bit.

Have a look here: https://stackoverflow.com/questions/24987440/this-java-instance-does-not-support-a-64-bit-jvm
[Android General] ShaDisNX255:
It catches my attention that you mention (it rhymes, lol) that 8.1 uses VDEX. I've got 8.0 and I've got both ODEX and VDEX files in the same oat/arm folder (SystemUI, for example), will it still deodex using baksmali and smali, or will VDEX get in the way?

Sorry, I'm fairly new to Oreo lol I've been working in MM my whole life xD

I will download the 64 bit java and give it a try anyway, will report back with results
[Android General] levone1:
Ok, I just got around to checking it out, and I see that others have already figured out the problem I had, (same error about heap size, etc.). Going to read through your posts since then, and try again with newer version.

Update - [MENTION=4315551]Ticklefish[/MENTION] - Interesting... I'm running it now, and while it's running, the ui is flickering on and off with every app it's trying, and I can see an error message flashing about being unable to create jvm, but, when I check the log, each app log ends with '... everything is ok', and the app is in the folder, deodexed, without odex folder. Going to flash the zip, and see what happens...

Update - ok, so the flashable zip that was created did not flash the new files to the phone, (although there were no errors in recovery when flashing), but anyway, I see when comparing the new files to the original ones, that the new 'deodexed' ones are all slightly smaller than the originals, making me think that deodex didn't happen properly, and something to the error about 'can't create jvm'.
[Android General] levone1:
I changed heap size in Java config to bigger, then tried again, but I noticed that the error is '...heap size exceeds the maximum represented...' or something, so I guess maybe we need to actually make it smaller?
[Android General] msubhani:
[MENTION=4315551]Ticklefish[/MENTION] as [MENTION=336881]levone1 mentioned after changing to 512m it is successfully deodex all files. But i notice one thing regarding app when i minimise app or did any other thing on pc during deodexing the app stopped working.
[Android General] stonecool:
Screenshot of TOAD log

Sorry for my delay couldn't log in to my account until today. hope this helps.

thanks again for your time.
[Android General] nodz13:
Link please
[Android General] Ticklefish:
Okay, that's just weird. Is it possible you can share your files please?

Have you looked in the DOWNLOADS tab?
[Android General] stonecool:
[MENTION=4315551]Ticklefish[/MENTION] sure thing man, what files do you require and should I PM'em?
[Android General] Ticklefish:
Thank you. I'll need your build.prop and your framework folder. They can be shared here if you want. Basically I want to try to duplicate what you're trying to do on my system so I can see what's going wrong.
[Android General] stonecool:
help with files requested

Hi there [MENTION=4315551]Ticklefish[/MENTION], trying to attach both the file and folder but I believe even compressed is big to attach to a message . Would you mind advising a way to share it? thanks in advance.
[Android General] Fredy24:
Not work for Rom Pie 9.0
[Android General] Ticklefish:
Probably best to upload it all to a filesharing site like dropbox or androidfilehost.

In what way doesn't it work? It's worked on all the Pie roms I've tried. If I know more details I can try to fix it.
[Android General] stonecool:
[MENTION=4315551]Ticklefish[/MENTION] PM'ed file and folder links.
[Android General] Ticklefish:
Thanks for sharing your files. I put them into the Your_Files folder, ran the tool and it worked without any trouble.

​

This is using the latest 64bit version downloaded from the downloads tab a few minutes earlier..
[Android General] stonecool:
I'll give it another try with 64 bit when I get home and I'll report back to you. Thanks for looking into it.
[Android General] stonecool:
Finally was able to get it to run.

[MENTION=4315551]Ticklefish[/MENTION] thanks so much for your help, finally got it to run without hiccups. I should mention it was on my end the mistake or mistakes I was doing.

1st. Wasn't getting TOAD folder out of Toad. 3.0.0.7 folder after extracted.

2nd. Was trying in an outdated computer finally ran it on my every day and worked flawlessly.

Thanks a bunch again.
[Android General] Ticklefish:
Hey, that's excellent news! Thanks for letting me know! :highfive:
[Android General] IceDreams:
I tried deodex Sony stock Oreo, everything works fine, but there is an error here, how to fix it?

Process: .dataservices
PID: 9192
Flags: 0x3888be4d
Package: com.quicinc.cne.CNEService v1 (1.1)
Package: com.qti.dpmserviceapp v26 (8.0.0)
Foreground: No
Build: Sony/suzu/suzu:8.0.0/OPR1.170623.026/1:user/dev-keys
UUID: 98945f81-b066-4543-9753-ebf48c9cb61e

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/qti/dpm/DpmService;
at com.qti.dpmserviceapp.DpmServiceApp.onCreate(DpmServiceApp.java:32)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3412)
at android.app.ActivityThread.-wrap4(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1691)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:251)
at android.app.ActivityThread.main(ActivityThread.java:6589)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.qti.dpm.DpmService" on path: DexPathList[[zip file "/system/framework/com.qti.location.sdk.jar", zip file "/system/priv-app/dpmserviceapp/dpmserviceapp.apk"],nativeLibraryDirectories=[/system/priv-app/dpmserviceapp/lib/arm64, /system/lib64, /system/vendor/lib64, /system/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 10 more
[Android General] Ticklefish:
When do you get that error?
[Android General] IceDreams:
after I flash twrp, after entering the home screen and immediately get the notification
[Android General] Ticklefish:
The interesting bit here, I think, is this line:

Didn't find class "com.qti.dpm.DpmService" on path: DexPathList[[zip file "/system/framework/com.qti.location.sdk.jar", zip file "/system/priv-app/dpmserviceapp/dpmserviceapp.apk"],nativeLibraryDirectories=[/system/priv-app/dpmserviceapp/lib/arm64, /system/lib64, /system/vendor/lib64, /system/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)

I'm no expert but this seems to be suggesting that there's a class missing from "com.qti.location.sdk.jar" and/or "[/b]dpmserviceapp.apk[/b]".

Look at your log file - did these two definitely deodex correctly?
[Android General] IceDreams:
yes both deodex are correct.

After I decompile com.qti.location.sdk.jar and dpmserviceapp.apk I did not find smali com / qti / dpm / DpmService but after I used com.qti.location.sdk.jar and dpmserviceapp.apk from another deodex and I decompile I also did not find smali com / qti / dpm / DpmService but can go to the homescreen, the problem is in the jar or at dpmserviceapp.apk sir
[Android General] Ticklefish:
I'll be honest - I'm not completely sure what's going wrong here. If you're able to share your files I can try it out on my setup and see if I can work out a solution.
[Android General] rhendytay:
hi i have using this tool, but when i run the exe the exe open and closing immediately.

why the exe can’t run ?

btw my rom version android 6.0.1

Thanks
[Android General] Ticklefish:
This could be for a few different reasons. Could you possibly share your files please?
[Android General] howdeedodat:
are u using a 32bit of windows?

where did u put ur TOAD files on C:\ drive or D:\ drive?

cause when u using 32bit n not put in C drive it will be like that

m not sure but my friend have the same issue
[Android General] Gemini0607China:
Miui of China can not use this tool very well

My android is android Pie.I can not use this tool very well.Just use on original android？
[Android General] Ticklefish:
MIUI isn't constructed the same way as stock Android. So it can cause problems. What problems are you having?
[Android General] Gemini0607China:
Not all of apks and jars can deodex.Just part of them.I hope I can deodex all of them whatever it is.
[Android General] aarush.chaurasiya:
TOAD.exe automatically closes on launch

Api v- 28
[Android General] Ticklefish:
The deodex process is not perfect. The "log.txt" file will tell you the error messages that are shown during the process. This might help you work out where the problem is.

Please don't quote the entire OP - it clutters the thread.

Can you share your "log.txt" please? It might give me an idea of what's going on.
[Android General] aarush.chaurasiya:
--@1310 --- Deodexing Process Started

TOAD Version: 3.0.0.4

ABI detected as: "arm64"

API level detected as: "28"

"28.bat" to be used
[Android General] Ticklefish:
Hmm. Can you share your files please? I can try it on my side and see if I can replicate the issue.
[Android General] aarush.chaurasiya:
https://xdaforums.com/galaxy-a7/development/rom-rocketrom-stock-v1-t3959553

Go to the link and download my rom and files
[Android General] Ticklefish:
I tried using your files and the tool worked without crashing. In fact I was able to deodex most of your rom without any real trouble.

Here's the resulting ZIP for you: http://www.mediafire.com/file/3chrcprfw1yrrnk/TOAD_deodex_31082019-1342.zip/file
[Android General] aarush.chaurasiya:
Than you so much for this
[Android General] Ticklefish:
Anytime. :highfive:
[Android General] aarush.chaurasiya:
After flashing zip that u provided causes bootloop
[Android General] Ticklefish:
Damn. I've no idea what could have caused that, sorry. I wonder if it's something to do with the layout of the framework folder..?

This is the trouble with deodexing - it's an imprecise science. I'll have a think and see if I can come up with a solution.
[Android General] Ticklefish:
Can you give this one a try? I think I have an idea what went wrong previously. https://www.mediafire.com/file/s5w1g6bzblsqoiw/TOAD_deodex_06092019-1408.zip/file
[Android General] Ticklefish:
Android 10 (API 29) Compatibility

Android 10 has just launched and it's only going to be a matter of time before people will want to be able to deodex it. TOAD was designed to be easily updateable - to deodex Android 10, we just need to create a "29.bat" in the "Method_Files" folder.

But what will be in that method file? How do we deodex Android 10's files?

At the moment...I don't know. I've looked at the AOSP rom by [MENTION=7638319]SagarMakhar[/MENTION] (found here: https://xdaforums.com/asus-zenfone-max-pro-m1/development/rom-aosp-10-0-t3964820) and there's a new file type that could be an issue.

Android 10 has "apex-*.vdex" files in the framework folder ("apex-apache-xml.vdex", "apex-bouncycastle.vdex", etc). VDEX files are the ones we have to process when deodexing Android Pie so we may have to process these as well. But VDEX files could be safely ignored when deodexing Android Oreo so that might be true here as well. It's a mystery.

APEX is a new thing for Android. There's a news post about it here: https://www.xda-developers.com/android-q-apex-biggest-thing-since-project-treble/. That post goes over my head very quickly - I just don't know enough to understand what it's saying.

So these files could be significant for the deodex process....or they might not be. Either way there doesn't seem to be anything available yet that can decode them, as far as I can tell.

So, in summary, TOAD can't deodex Android 10 yet. It'll be easy to update the tool to get it to do so, I just need somebody cleverer than I am to work out what's actually needed.

To summarise the summary..watch this space.
[Android General] ЯazoR:
This is the ultimate deodexer, thank you for taking your time to develop it!
[Android General] Ant4rez:
Hello Tickeflish thank you so much for this utility, but i'm having a trouble with 2 files and i don't know what to do, thank you:D
[Android General] Ticklefish:
Thank you for your feedback! Always happy to get it. :D

This error message is saying that there's something not right with the checksum for those files. There's not a lot I can do about that, unfortunately - this is down to the way the files are created.

Smali and baksmali have recently been updated (https://github.com/JesusFreke/smali/wiki). I doubt you'd have any more luck using that for these files but it might be worth trying it.
[Android General] gloeyisk:
I'm sorry, I can't seems to find the download link :confused:
[Android General] Ticklefish:
It's in the "Downloads" tab, near the top of the screen.
[Android General] gloeyisk:
Not found, how about to provide me the direct link in here?

Edit: I found it, kinda difficult to find by using XDA Labs app.
[Android General] gloeyisk:
ROM: Phh AOSP (Oreo 8.1 - GSI)

Error: Couldn't deodex some files

Screenshot and log attached.
[Android General] Ticklefish:
I have an idea about this. Give me a few minutes and I'll see what I can come up with.
[Android General] Ticklefish:
Could you please download the new "27.bat" attached to this post and put in your "\Method_Files" folder?

Try running the tool again and it should hopefully process those two files it couldn't before.

Let me know what happens and, if it works, I'll update the tool. If it doesn't work, I do have a plan but it'll take a while to put into code..
[Android General] gloeyisk:
The hotfix seems to be working, but I don't have time to flash it yet (because I'm not running those ROM at this moment, I just want to try the magic that come from this tool haha). Will report back here either these modified framework is working or not.

Anyway, since the default ones is come with those folders (oat, arm, arm64), how can I flash these modified framework on top of it? Because I assumed it'll replaced the specific files (e.g. old service.jar will be replaced with a new service.jar) but my question is how about those folders (oat, arm, arm64)?

Here's the log if you want to check.

Edit: Found a script to delete all of them haha.
[Android General] Ticklefish:
Thank you. Looks like the two files that couldn't be processed last time have been done. I'll upload the revised version of the tool in a few minutes.

TOAD does replace the APK and JAR files that have been deodexed..but also deletes the relevant folders as well. It creates an updater-script that contains all the necessary commands. Have a look at the updater-script in the finished ZIP if you want to see what it does.
[Android General] gloeyisk:
I checked for both /app and /priv-app, it seems it's odexed for the whole ROM. My question, how to deodex them?

Because when I try to copy both app and priv-app folders, the TOAD says "Sorry, I don't have all the files I need".
[Android General] Ticklefish:
You'll need to include your framework folder and build.prop as well.

TOAD always needs the build.prop file to work out what version of Android and what CPU architecture you have. Some versions of Android can only be deodexed if the framework folder is provided. So you'll need to include both.