Before u read, u should know that this thread is for themers and modders only... and this is not a tool for odexing the whole ROM.

Hello everybody
While I was working on my ROM, and releasing an odex version, I suffered alot in working on the odex files and modifying them. Every time I should use the command line and copy certain commands from a notepad, in addition I have to edit the notepad file to make the commands odex other files... that was a pain...

ok.. the odex commands that were used are taken from this thread by sicopat, big thanks to his efforts. Actually I was thinking in how to make it easier for me to odex these modified files, so I tried to make a script that easily odex files, put the files in the right folder, run the script, and then write the name of the file u want to odex, then..... Waw the file is odexed in the phone and ready to run

For anyone that want to use these scripts, I wanted to share it with you, and I hope they would be useful to you.

Update (2/22/13) v2.1:
1. bootclasspath should be put manually from now, because $BOOTCLASSPATH doesn't work when no root in recovery.
2. Fixed a mistake in extracting and archiving files, now it's ok.
3. Now you can restore the original files if you like after odexing.
4. 7zip 32 bit is used instead of 64 bit, sorry for this, now it should work with 32 bit windows too.
5. Script re-arranged, and 7zip log operations saved in 7z_log.txt. you can check this one if you suspect in 7zip operation.
6. Backup of the original files before odexing and restore them after odexing.

Update (1/4/13) v2: All things automated, no need to edit the script for bootclasspath, and even no need to drag and drop the edited files from the modded apk or jar.

update (9/18/12) v1.3: adb added to the program, to make it work independently. And now you can pull the files after odexing if u need that.

update (9/10/12) v1.2: updated and added a missed command, it should works perfect. No need to put any files in your sdcard to make the operations... and the operations are commented so you can diagnose the problem if occurred.

Before you use, make sure u r running the corresponding odex rom in your device, then read how to use this tool.

How to use:
first extract the downloaded file to a folder then:
1. Put your bootclasspath in bootclasspath.txt (follow the instruction below in Important Note 2).
2. Put the original odex and apk (or jar) file in the "original" folder.
3. Put your modded deodexed apk (or jar) file in the "mod" folder
4. Connect your phone with usb and make sure adb is working. ( and don't forget to check the USB Debugging in the settings of your device).
5. It is better that you boot in recovery mod, specially when odexing framework files.
6. Now run the script (.bat file), choose the one for apk or for the jar, according to file you want to odex.
7. after the script opens, write the name of the apk (or jar) file without the .apk (or .jar)
8. Odexing......done.
9. after finishing odexing, u can pull the odexed apk or jar file by pressing 1 then Enter, the it will be pulled in the (pulled_files) folder. Or if you want to restore the original apk (or jar) file with its odex, then press 2.

If you find this thread useful, pressing the thanks button is appreciated.

Important note: If you r using a rooted stock kernel, then u could face problem in remounting, hence a problem in the script. To solve this problem check this post.

after that, you can right click and choose (mark), then mark the bootclasspath then press (enter) now you have copied the bootclasspath. go to bootclasspath.txt in the extracted folder of the script, then paste the bootclasspath and save the file.

OR

2. In the root of your device, in the init.rc file:

look for a line with (bootclasspath= ), then copy everything on the right hand of the equal mark. Go to bootclasspath.txt then paste it there, then save the file.

screenshot:

Credit:
Sicopat- for his guide on odexing.
M_j_Nazari- for his guide on odexing and his written commands for the odexing operation. thread link

Ok mate. I'll download it and try it when I get home. Just for future reference though, how do I add the ADB directory to system variables??

Go to my computer,then properties, in advanced there is Environment Variables, press it .. then in system variables add the (path) and write the directory that leads to the adb that u have when u installed android development tools ( it should be in platform-tools folder).

Try odexer first before doing that I can not try it cuz I don't know who to delete the adb from the system variables

Go to my computer,then properties, in advanced there is Environment Variables, press it .. then in system variables add the (path) and write the directory that leads to the adb that u have when u installed android development tools ( it should be in platform-tools folder).

Try odexer first before doing that I can not try it cuz I don't know who to delete the adb from the system variables

remounting
adb server is out of date. killing...
* daemon started successfully *
List of devices attached
0019295d0b1c9e device
remount failed: Operation not permitted
Enter the name of the .apk file u want to odex (without .apk): Mms
sending dexopt-wrapper to the device
failed to copy 'dexopt-wrapper' to '/system/bin/dexopt-wrapper': Read-only file
system
Unable to chmod /system/bin/dexopt-wrapper: Read-only file system
sending the deodexed file to the device
failed to copy 'mod\Mms.apk' to '/system/app/Mms.apk': Read-only file system
Odexing the file:
Unable to create '/system/app/new_Mms.odex': Read-only file system
No error found
pushing the original files to the system
failed to copy 'original\Mms.apk' to '/system/app/Mms.apk': Read-only file syste
m
failed to copy 'original\Mms.odex' to '/system/app/Mms.odex': Read-only file sys
tem
Setting permissions..
Unable to chmod /system/app/Mms.odex: Read-only file system
Unable to chmod /system/app/Mms.apk: Read-only file system
Unable to chmod /system/app/new_Mms.odex: No such file or directory
copying signature from original file:
/system/bin/sh: busybox: cannot execute - Permission denied
replacing with the new odex file
/system/bin/sh: cp: not found
settings permissions for the new odex file
Unable to chmod /system/app/Mms.odex: Read-only file system
Unable to chmod /system/app/Mms.odex: Read-only file system
deleting worked- on file
rm failed for /system/app/new_Mms.odex, No such file or directory
Finished
To odex a file again, press any key
To pull the apk file, press 1
To exit, press 0

That's the error I keep getting. What does it mean? Am I doing something wrong?

remounting
adb server is out of date. killing...
* daemon started successfully *
List of devices attached
0019295d0b1c9e device
remount failed: Operation not permitted
Enter the name of the .apk file u want to odex (without .apk): Mms
sending dexopt-wrapper to the device
failed to copy 'dexopt-wrapper' to '/system/bin/dexopt-wrapper': Read-only file
system
Unable to chmod /system/bin/dexopt-wrapper: Read-only file system
sending the deodexed file to the device
failed to copy 'mod\Mms.apk' to '/system/app/Mms.apk': Read-only file system
Odexing the file:
Unable to create '/system/app/new_Mms.odex': Read-only file system
No error found
pushing the original files to the system
failed to copy 'original\Mms.apk' to '/system/app/Mms.apk': Read-only file syste
m
failed to copy 'original\Mms.odex' to '/system/app/Mms.odex': Read-only file sys
tem
Setting permissions..
Unable to chmod /system/app/Mms.odex: Read-only file system
Unable to chmod /system/app/Mms.apk: Read-only file system
Unable to chmod /system/app/new_Mms.odex: No such file or directory
copying signature from original file:
/system/bin/sh: busybox: cannot execute - Permission denied
replacing with the new odex file
/system/bin/sh: cp: not found
settings permissions for the new odex file
Unable to chmod /system/app/Mms.odex: Read-only file system
Unable to chmod /system/app/Mms.odex: Read-only file system
deleting worked- on file
rm failed for /system/app/new_Mms.odex, No such file or directory
Finished
To odex a file again, press any key
To pull the apk file, press 1
To exit, press 0

That's the error I keep getting. What does it mean? Am I doing something wrong?

That's because your system isn't being set to read write. And it looks like your using an old adb

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?