[HOW-TO] Manually deodex your phone.

Search This thread

ghostlypickel

Senior Member
Jan 6, 2010
58
25
I AM NOT RESPONSIBLE FOR WHATEVER HAPPENS TO YOUR PHONE!

You must be rooted!


This is a guide on manually deodexing, you phone. (Duh!)

The reason I am making this tutorial is because I could not get my theme to work with Teenfaces deodexed nandroid. You may want to follows this if you have the same problem as me, or if you just want to take a shot at doing it.

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

Process:

1. Unzip xUltimate v2.2, and launch "Main.exe"
2. If everything goes well xUlt should recognize the phone and make a connection. You now should see a list of options.
3. Run option 1. After option 1 is done, run option 2.
4. Now these well take a while. Run option 3.
5. IMPORTANT: After you have run option 3, you MUST navigate to the xUltimate folder and find "origi_frame" folder, and delete "guava.odex". It's a bad file, and interferes with deodexing process.
6. Now run option 4, and wait.
7. Exit xUltimate, and put the phone in USB mass storage.
8. Go back into the xUltimate folder and copy "done_frame", and "done_app", and move them to the root of the sdcard.
9. Put the phone in PC mode
10. Open a command prompt, and do the following:

Code:
adb shell
su
stop
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
reboot

Your phone should now be deodexed!

You may notice an increase in speed, and you now have the ability to edit certain files with greater effects. (i.e. services.jar)

Credits:
Rainabba and Mike919: For initially working with me to get a white clock, and later deodex.
toxman: For testing, and being a huge risk taker.
teenfaces: For letting me use his services.jar
And especially Xeudoxus: For letting me a guinea pig, for xUltimate, and answering my questions. And also for the making the xUltimate tool. It defiantly makes thing easier.
 
Last edited by a moderator:

makickal

Member
Aug 26, 2010
10
0
Tested and does NOT work with Droid 2 2.2. Phone locks up at "cp /sdcard/done_app/* /system/app"
 

ghostlypickel

Senior Member
Jan 6, 2010
58
25
This must be done one 2.2. I Never ;put of a warning because I assumed the majority of people have already switched.
 

Xxq TZ pxX

Senior Member
May 2, 2010
120
1
I got to step 4 (which is pressing 3 to start deodexing) and I got this message on the third element:


Starting Bluetooth.odex
*****************************************
* Deodexing... *


Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find superclass Ljavax/obex/ServerRequestHandler;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadSuperclass(ClassPath.java:784)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:668)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:163)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPathFromOdex(ClassPath.java:110)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:93)
at org.jf.baksmali.main.main(main.java:278)
Error while loading class Lcom/android/bluetooth/opp/BluetoothOppObexServerSession; from file .\origi_app\Bluetooth.odex
Error while loading ClassPath class Lcom/android/bluetooth/opp/BluetoothOppObexServerSession;

* *
*****************************************
Restarting Bluetooth.odex
*****************************************
* ERROR! Trying something different! *
* Deodexing... *


Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find superclass Lcom/htc/app/HtcAlertActivity;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadSuperclass(ClassPath.java:784)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:668)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:163)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPath(ClassPath.java:131)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:100)
at org.jf.baksmali.main.main(main.java:278)
Error while loading class Lcom/android/bluetooth/opp/BluetoothOppBtEnableActivity; from file .\origi_app\Bluetooth.odex
Error while loading ClassPath class Lcom/android/bluetooth/opp/BluetoothOppBtEnableActivity;

Press any key to continue . . .


*****************************************
MAJOR ERROR!! WITH DEODEXING! Bluetooth.odex
*****************************************
********DELETING INCORRECT FILES*********
please exit out of window "***Deodexing ADB Window, DO NOT EXIT!***"

Press any key to continue . . .



My DInc. is rooted and running 2.2: 3.21.605.1
Do I need to be in recovery with system mounted to make this work?
Does this only work on the Droid X?
 
Last edited:

ghostlypickel

Senior Member
Jan 6, 2010
58
25
I got to step 4 (which is pressing 3 to start deodexing) and I got this message on the third element:


Starting Bluetooth.odex
*****************************************
* Deodexing... *


Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find superclass Ljavax/obex/ServerRequestHandler;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadSuperclass(ClassPath.java:784)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:668)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:163)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPathFromOdex(ClassPath.java:110)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:93)
at org.jf.baksmali.main.main(main.java:278)
Error while loading class Lcom/android/bluetooth/opp/BluetoothOppObexServerSession; from file .\origi_app\Bluetooth.odex
Error while loading ClassPath class Lcom/android/bluetooth/opp/BluetoothOppObexServerSession;

* *
*****************************************
Restarting Bluetooth.odex
*****************************************
* ERROR! Trying something different! *
* Deodexing... *


Error occured while loading boot class path files. Aborting.
org.jf.dexlib.Code.Analysis.ClassPath$ClassNotFoundException: Could not find superclass Lcom/htc/app/HtcAlertActivity;
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.loadSuperclass(ClassPath.java:784)
at org.jf.dexlib.Code.Analysis.ClassPath$ClassDef.<init>(ClassPath.java:668)
at org.jf.dexlib.Code.Analysis.ClassPath.loadClassDef(ClassPath.java:280)
at org.jf.dexlib.Code.Analysis.ClassPath.initClassPath(ClassPath.java:163)
at org.jf.dexlib.Code.Analysis.ClassPath.InitializeClassPath(ClassPath.java:131)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:100)
at org.jf.baksmali.main.main(main.java:278)
Error while loading class Lcom/android/bluetooth/opp/BluetoothOppBtEnableActivity; from file .\origi_app\Bluetooth.odex
Error while loading ClassPath class Lcom/android/bluetooth/opp/BluetoothOppBtEnableActivity;

Press any key to continue . . .


*****************************************
MAJOR ERROR!! WITH DEODEXING! Bluetooth.odex
*****************************************
********DELETING INCORRECT FILES*********
please exit out of window "***Deodexing ADB Window, DO NOT EXIT!***"

Press any key to continue . . .



My DInc. is rooted and running 2.2: 3.21.605.1
Do I need to be in recovery with system mounted to make this work?
Does this only work on the Droid X?

Lol, sorry to be rude. But this is in teh Droid X section. I'm sure the Dinc has some way of being deodexed.
 

bigdade

Senior Member
Apr 13, 2010
99
7
Hi I'm a noob when it comes to droid x and theming can you run the code from terminal emulator on the droid x or do you need a laptop to do it thanks
 
Aug 26, 2009
45
2
45
South Ga.
When I ran "mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system" at the end of the process I got "Device or Resource Busy", is that ok or am I going to have trouble?
 

Zaphod-Beeblebrox

Senior Member
Dec 3, 2009
1,426
863
Virginia
When I ran "mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system" at the end of the process I got "Device or Resource Busy", is that ok or am I going to have trouble?

I had this as well. All that part does is re-mount the system partition as RO (Read Only). This is done when you reboot as well. So if you rebooted at the end of the process, it was taken care of.
 

mezdup

Senior Member
Jul 15, 2010
110
17
i have a rooted Droid X running 2.2 with some bloatware removed. am i a candidate for this?

also how's the success/failure rate with this method?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    I AM NOT RESPONSIBLE FOR WHATEVER HAPPENS TO YOUR PHONE!

    You must be rooted!


    This is a guide on manually deodexing, you phone. (Duh!)

    The reason I am making this tutorial is because I could not get my theme to work with Teenfaces deodexed nandroid. You may want to follows this if you have the same problem as me, or if you just want to take a shot at doing it.

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

    Process:

    1. Unzip xUltimate v2.2, and launch "Main.exe"
    2. If everything goes well xUlt should recognize the phone and make a connection. You now should see a list of options.
    3. Run option 1. After option 1 is done, run option 2.
    4. Now these well take a while. Run option 3.
    5. IMPORTANT: After you have run option 3, you MUST navigate to the xUltimate folder and find "origi_frame" folder, and delete "guava.odex". It's a bad file, and interferes with deodexing process.
    6. Now run option 4, and wait.
    7. Exit xUltimate, and put the phone in USB mass storage.
    8. Go back into the xUltimate folder and copy "done_frame", and "done_app", and move them to the root of the sdcard.
    9. Put the phone in PC mode
    10. Open a command prompt, and do the following:

    Code:
    adb shell
    su
    stop
    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
    reboot

    Your phone should now be deodexed!

    You may notice an increase in speed, and you now have the ability to edit certain files with greater effects. (i.e. services.jar)

    Credits:
    Rainabba and Mike919: For initially working with me to get a white clock, and later deodex.
    toxman: For testing, and being a huge risk taker.
    teenfaces: For letting me use his services.jar
    And especially Xeudoxus: For letting me a guinea pig, for xUltimate, and answering my questions. And also for the making the xUltimate tool. It defiantly makes thing easier.
    1
    So when you run the test and everything passes except odex, does that mean the deodex worked? it seems like nothing would be left odexed because you deodexed it. does that sound right. I know this was mentioned through the thread but was never fully answered.

    How do you know for sure if it worked or not?

    Thanks, Hell
    1
    ghostlypickel; said:
    1. Unzip xUltimate v2.2, and launch "Main.exe"
    2. If everything goes well xUlt should recognize the phone and make a connection. You now should see a list of options.
    3. Run option 1. After option 1 is done, run option 2.
    4. Now these well take a while. Run option 3.
    5. IMPORTANT: After you have run option 3, you MUST navigate to the xUltimate folder and find "origi_frame" folder, and delete "guava.odex". It's a bad file, and interferes with deodexing process.
    6. Now run option 4, and wait.
    7. Exit xUltimate, and put the phone in USB mass storage.
    8. Go back into the xUltimate folder and copy "done_frame", and "done_app", and move them to the root of the sdcard.
    9. Put the phone in PC mode
    10. Open a command prompt, and do the following:

    Code:
    adb shell
    su
    stop
    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
    reboot

    Your phone should now be deodexed!

    You may notice an increase in speed, and you now have the ability to edit certain files with greater effects. (i.e. services.jar)

    Many thanks to all involved to make this possible.http://media.xda-developers.com/images/smilies/smile.gif

    I wanted to say I used this on the fascinate gingerbread leak.
    Here is what I had to change to get it to work properly.

    step 5 does not apply to (or at least not on the leak).

    In adb shell I had to change
    Code:
    mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
    to
    mount -t rfs -o remount,rw /dev/block/stl9 /system

    Also I had a problem of
    cp: write error: No space left on device

    to solve this problem I simply ran the
    Code:
    rm /system/app/*.odex
    rm /system/framework/*.odex
    before the
    Code:
    cp /sdcard/done_app/* /system/app/
    cp /sdcard/done_frame/* /system/framework/
    and that solved all my problems.

    My first attempt at this and it went great.
    I hope this information will help others.
    1
    NOOB QUESTION : Will deleting all the .odex files from system/app counted as deodexing ?? :angel:

    simple answer. no