How to Deodex a Rom


First thing you must be rooted

What you’ll need:
A Windows based machine
xUltimate v2.2

-Unzip xUltimate v2.2, and launch “Main.exe”

-If everything goes well xUltimate should recognize the phone and make a connection. You now should see a list of options.

-Run option 1. After option 1 is done, run option 2.

-Now these well take a while. Run option 3.

-IMPORTANT: After you have run option 3, you MUST navigate to the xUltimate folder and find “origi_frame” folder, and delete “guava.odex” (if you even have it). It’s a bad file, and interferes with deodexing process.

-Now run option 4, and wait.

-Exit xUltimate, and put the phone in USB mass storage.

-Go back into the xUltimate folder and copy “done_frame”, and “done_app”, and move them to the root of the sdcard.

-Open a command prompt, and do the following:

adb shell
mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
cp /sdcard/done_app/* /system/app/
cp /sdcard/done_frame/* /system/framework/
rm /system/app/*.odex
rm /system/framework/*.odex
mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system

and voila your phone is deodexed 

Full credit to webst3r on xda & jazux for editing it a little bit so you can understand it better.