DISCLAIMER: I am not responsible for what you do and how that affects your phone.
I know manual deodex tutorials exist out there for *other* phones already, but these instructions are particular to the Droid Charge using things already available on the Charge forum.
These are for Windows machines only as I do not have anything else. It assumes you have converted to ext4, are rooted, and are running a CWM Recovery.
Grab the latest xUltimate version here.
Unzip xUltimate to a folder of its own.
Plug your Charge in via USB and run Main.exe, phone should be recognized and a list of numerical options should be presented to you.
Choose #5 (Pull and Deodex all). This will take quite awhile. Be patient. It will beep and turn green and say "Press any key to continue..." when it is finished.
Exit out of xUltimate and mount the phone as USB Mass Storage.
Copy/Move "done_frame" and "done_app" to the root of your sdcard.
Reboot the phone into CWM Recovery and verify under mounts and storage that /sdcard and /system are mounted.
Open a command prompt window and do the following:
Code:
adb shell
su // You should see a # prompt at this point, if not, you can't continue.
stop
mount -o rw,remount -t ext4 /dev/block/stl10 /system
cp /sdcard/done_app/* /system/app/
cp /sdcard/done_frame/* /system/framework/
rm /system/app/*.odex
rm /system/framework/*.odex
exit // May need to exit twice to get to base command prompt.
adb reboot
Congratulations! Your phone should now be deodexed. You can now utilize something like http://code.google.com/p/smali/ to make changes to .dex files, though this is only recommend if you absolutely know what you're doing.
when i get to cp /sdcard/done_app/* /system/app/
It wont read
Related
I seem to be frequently flashing or messing up my G1 so I decided to write some shell scripts to help out but they seem to only half work if at all. Actually I'm not sure what they did because they displayed no output.
This script is supposed to backup the default init.rc and mountd.conf files then replace the existing ones with the modified ones.
Though it does not work.
Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
mkdir /system/sd
busybox cp -a /system/etc/mountd.conf /sdcard/recovery/mountd.conf.bak
busybox cp -a /system/init.rc /sdcard/recovery/init.rc.bak
busybox cp -a /sdcard/recovery/mountd.conf /system/etc/mountd.conf
busybox cp -a /sdcard/recovery/init.rc /system/init.rc
then this is the next set to move the apks and the program caches which doesn't work.
Code:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
busybox cp -a /data/app /system/sd
rm -r /data/app
ln -s /system/sd/app /data/app
busybox cp -a /data/app-private /system/sd/app-private
rm -r /data/app-private
ln -s /system/sd/app-private /data/app-private
rm -R /data/data/com.android.browser/cache/webviewCache
ln -s /sdcard/cache/webviewCache /data/data/com.android.browser/cache/webviewCache
rm -R /data/data/com.android.vending/cache
ln -s /sdcard/cache/marketCache /data/data/com.android.vending/cache
rm -R /data/data/com.google.android.street/cache
ln -s /sdcard/cache/streetCache /data/data/com.google.android.street/cache
reboot
Plus both run and output no errors either. Who knows what problems I'll run into because I have no idea what they actually did.
Anyone see anything wrong here?
Well I'll help you.
1-) After you back up the mount and stuff and put the other back, you MUST reboot before keep going.
2-)After boot then you can copy the files or make the symlink. I suggest you dont copy the app to the sdcard on teh scrip since they should be there already. so do that manually once then the script just delete the folders and then crate the symlinmks.
I have a menu that does that and I have got some experience as why it works one day and not the other.
Rafase282 said:
Well I'll help you.
1-) After you back up the mount and stuff and put the other back, you MUST reboot before keep going.
Click to expand...
Click to collapse
I took the reboot out after the mountd.conf and init.rc did not appear to copy due to the lack of /dev/mmcblk0p2 hoping to see some sort of output why it did not run. Unfortunately it runs and backs up the files but does not replace them with the modded ones.
Rafase282 said:
2-)After boot then you can copy the files or make the symlink. I suggest you dont copy the app to the sdcard on teh scrip since they should be there already. so do that manually once then the script just delete the folders and then crate the symlinmks.
Click to expand...
Click to collapse
Not copying the apps is a good idea, modified the script to not do so.
Rafase282 said:
I have a menu that does that and I have got some experience as why it works one day and not the other.
Click to expand...
Click to collapse
Does Android require that you do a chmod on all shell scripts first?
On Debian I usually just use sudo sh ./ and it runs the script w/o changing anything on the file permissions so I figured Android would be similar if I just ran them as root. Still I see a lot of people requiring a chmod 777 on any guide referring to running shell scripts.
I will try that and report back with my findings. Thanks for replying.
Does Android require that you do a chmod on all shell scripts first? I just have to type m oon anywhere in the androud shell and my scripts run, for that i put it on /system/bin and do a chmod 4755 to the file. it is still needed to type su before you run the script.
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
mkdir /system/sd
cp /sdcard/media/Data/mountd.conf /system/etc/mountd.conf
cp /sdcard/media/Data/init.rc /system/init.rc
Thats my code for copying the modified files to the right place. So maybe you should try that.
Oh for androoid you dont unless you put it on /system/bin then you will have to use sude and sometiems it still wont run due to lack or permisions so is better to do a chmod 4755
Well I made the changes suggested and did a chmod on all the files prior to running but with no luck.
The odd thing is if I use the shell scripts as a guide list it works perfectly but if I try to launch them as a shell script all sorts of strange undesirable things happen to my phone.
The time consumed trying to use the scripts and recover from what happens from what they do out weight the effects of typing everything in.
joshtheitguy said:
Well I made the changes suggested and did a chmod on all the files prior to running but with no luck.
The odd thing is if I use the shell scripts as a guide list it works perfectly but if I try to launch them as a shell script all sorts of strange undesirable things happen to my phone.
The time consumed trying to use the scripts and recover from what happens from what they do out weight the effects of typing everything in.
Click to expand...
Click to collapse
you can only run the script once .. when the "ln -s" has already been done it has to be undone before trying to run the script again .. otherwise you would be copying the files onto themselves .. not sure if you've tried running it more than once
LucidREM said:
you can only run the script once .. when the "ln -s" has already been done it has to be undone before trying to run the script again .. otherwise you would be copying the files onto themselves .. not sure if you've tried running it more than once
Click to expand...
Click to collapse
These scripts were intended for my usage after a system restore from a update.zip file which wipes /system in the process.
My intentions were to:
1. remount the fs rw
2. copy the original init and mountd files to the sd then copy the modified to their respective places in the system folders then reboot
3. reboot then create the sym links appropriately then move my caches too
Well unfortunately the only thing that works is the backing up of the original init and mountd files.
joshtheitguy said:
These scripts were intended for my usage after a system restore from a update.zip file which wipes /system in the process.
My intentions were to:
1. remount the fs rw
2. copy the original init and mountd files to the sd then copy the modified to their respective places in the system folders then reboot
3. reboot then create the sym links appropriately then move my caches too
Well unfortunately the only thing that works is the backing up of the original init and mountd files.
Click to expand...
Click to collapse
yes .. but you can't create the sym links when they already exist .. running the update.zip only wipes the /system .. not /data .. if the links were there before the update.zip they will be there after
I updated my rom and there are some omitted apps that I would like to get back into system/apps/ for example VoiceDialer.apk, but I cannot seem to get them back on. I am using Fresh Rom 0.4 and the phone is obviously rooted. maybe I am doing something wrong in adb shell but I keep getting one of 2 different erors. Either permission denied or adb not found. Thank you in advance for your help.
flaav8r said:
I updated my rom and there are some omitted apps that I would like to get back into system/apps/ for example VoiceDialer.apk, but I cannot seem to get them back on. I am using Fresh Rom 0.4 and the phone is obviously rooted. maybe I am doing something wrong in adb shell but I keep getting one of 2 different erors. Either permission denied or adb not found. Thank you in advance for your help.
Click to expand...
Click to collapse
1) Permission denied - make sure that when you do an adb shell, you're root (have the # prompt) and make sure you've mounted /system as rw (adb remount)
2) adb not found - make sure there's only one adb.exe on your computer and that it's the one from the SDK and that the SDK's /tools directory is in your path (to be safe, you can always just run adb from that directory)
jmanley69 said:
1) Permission denied - make sure that when you do an adb shell, you're root (have the # prompt) and make sure you've mounted /system as rw (adb remount)
2) adb not found - make sure there's only one adb.exe on your computer and that it's the one from the SDK and that the SDK's /tools directory is in your path (to be safe, you can always just run adb from that directory)
Click to expand...
Click to collapse
1. the procedure I used is this: from the cmd prompt in the androidsdk/tools/ directory:
adb shell
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/app
# adb push VoiceDialer.apk system/app
but its a no go. Can't understand why.
BTW, I have the VoiceDialer.apk file in the androidsdk/tools folder just to make the push easier.
Ok, here is a screen shot from my command prompt window. I know someone knows what the hell I'm doing wrong. Just wanna get the damn voice dialer back on my phone. Please help, thank you.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Barry>cd \
C:\>cd androidsdk\tools\
C:\AndroidSDK\tools>adb shell
* daemon not running. starting it now *
* daemon started successfully *
$ su
su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# adb push VoiceDialer.apk /system/app/
adb push VoiceDialer.apk /system/app/
adb: not found
#
you cant do adb push while in shell ($ or #). Exit out and just try tying the adb push
goku14238 said:
you cant do adb push while in shell ($ or #). Exit out and just try tying the adb push
Click to expand...
Click to collapse
When I do that I get permission denied or something to that effect.
Yeah there's a post about this in the Fresh thread.
The most straightforward way is this:
Reboot to the recovery partition.
adb shell into the phone.
Issue the following command to mount the system partition:
mount -t yaffs2 /dev/block/mtdblock3 /system
Type exit to exit the shell.
Then do:
adb push c:\directory-with-the-apks /system/app
jonnythan said:
Yeah there's a post about this in the Fresh thread.
The most straightforward way is this:
Reboot to the recovery partition.
adb shell into the phone.
Issue the following command to mount the system partition:
mount -t yaffs2 /dev/block/mtdblock3 /system
Type exit to exit the shell.
Then do:
adb push c:\directory-with-the-apks /system/app
Click to expand...
Click to collapse
Thank-you, I will give it a try.
Hi.
There is (i think) an easy way to deodex (for ADB users).
First step, download this file who contain they flashable .zip for CWM : Link
Push this zip into your sdcard.
Then, connect you phone with USB, open your cmd.exe and put this commands :
Code:
adb shell
su (only if you dont got the "#" sign)
mount -o remount,rw /dev/block/stl9 /system
rm -r /system/app/*.apk
rm -r /system/app/*.odex
rm -r /system/framework/*.jar
rm -r /system/framework/*.odex
reboot recovery
Put those line ONE by ONE for sure to not missing a step (Dont care about Force close on the phone )
After your phone is reboot on CWM, choose "install zip from sdcard", and choose "XWJPI_deodex_signed.zip", wait few moment, then reboot
Enjoy
Thanks to Rudolf for show us the way to deodex
I did not write these scripts. I claim zero credit for them. I pulled them from somewhere (another ROM or a mod for another phone, I can't remember.) I am simply passing on the information.
Here is a way you can add two scripts to change your /system from read-only to read-write and visa-versa. I am not going to hold your hand through this one. If you don't understand it, then don't do it. This is only for those that want a command line script to set their system filesystem to RW and back to RO in a simple way. This is only for people that are comfortable with the command prompt and adb shell to begin with. I am not responsible if you brick your phone.
I'll say it again. I am not responsible if you brick your phone.
Save a text file called: ro that contains:
Code:
#!/system/bin/sh
fs=`mount | grep system | awk '{print $5}'`
mount -t $fs -o remount,ro /dev/block/stl9 /system
Save a text file called: rw that contains:
Code:
#!/system/bin/sh
fs=`mount | grep system | awk '{print $5}'`
mount -t $fs -o remount,rw /dev/block/stl9 /system
Then open a command prompt and change directory to where you have the ro and rw files located. Notice that the ro and rw files DO NOT have any file extension on them. These should NOT show up as text files with Notepad icons when using Windows Explorer. If they do, then you need to take the .txt off the end of the filename. If you can't see it, then you have to be sure to show the hidden extensions.
The following steps assumes that you either have adb.exe and related files in the same directory as your rw and ro scripts OR you have added adb.exe to the PATH environment variable on your computer system.
When you are ready do this:
Code:
adb push rw /data/local/tmp/rw
adb push ro /data/local/tmp/ro
adb shell chmod 0755 /data/local/tmp/rw
adb shell
/data/local/tmp/rw
cp /data/local/tmp/rw /system/xbin/rw
cp /data/local/tmp/ro /system/xbin/ro
chmod 0755 /system/xbin/ro
chmod 0755 /system/xbin/rw
/system/xbin/ro
reboot
Notice that the last command will reboot your phone. This is only necessary if you want these scripts to be usable immediately. When you have rebooted, you should be able to type the command: rw to set your /system to read-write and ro to set your /system to read-only
Personally, I skip that last "reboot" command and I just run /system/xbin/ro manually until the next time I reboot my phone anyway.
These two scripts should be compatible with what ever file system you have on /system since if you read the script it actually checks the file system type first and then uses that response in the next line.
Use at your own risk, though.
EDIT: On Gingerbread, I had to use /dev/block/stl10 instead of /dev/block/stl9 above.
How to deox any firmware manually?
download htc kitchen.
put your ROM in the original update folder.
run menu file
select option "Deodex ROM"
If you want deodex a running phone you need a rooted phone and:
1-Download xUltimate
xUltimate v2.3.3
Extract xUltimate to a folder
2-Install JDK
Download JDK
3-Connect phone to PC, open main.exe in xUltimate folder
Select option 5.
Process will take along time.
After that, copy 2 folder done_app and done_frame to SDcard
Remember Disconnect USB on phone after copy
4-go to xUltimate folder press combo key: ctrl + shift + mouse right to jar folder. Select open command window here
A CMD is open copy an paste all commands below
Code:
adb shell
Code:
su
Code:
stop
Code:
mount -o rw,remount -t rfs /dev/block/stl12 /system
Code:
rm /system/app/*.odex
Code:
rm /system/framework/*.odex
Code:
cp /sdcard/done_app/* /system/app/
Code:
cp /sdcard/done_frame/* /system/framework/
if cp command doesnt work you need addition command before use cp
Code:
ln -s /system/xbin/busybox /system/xbin/cp
And start your phone after done
Code:
start
zcop said:
If you want deodex a running phone you need a rooted phone and:
1-Download xUltimate
xUltimate v2.3.3
Extract xUltimate to a folder
2-Install JDK
Download JDK
3-Connect phone to PC, open main.exe in xUltimate folder
Select option 5.
Process will take along time.
After that, copy 2 folder done_app and done_frame to SDcard
Remember Disconnect USB on phone after copy
4-go to xUltimate folder press combo key: ctrl + shift + mouse right to jar folder. Select open command window here
A CMD is open copy an paste all commands below
Code:
adb shell
Code:
su
Code:
stop
Code:
mount -o rw,remount -t rfs /dev/block/stl12 /system
Code:
rm /system/app/*.odex
Code:
rm /system/framework/*.odex
Code:
cp /sdcard/done_app/* /system/app/
Code:
cp /sdcard/done_frame/* /system/framework/
if cp command doesnt work you need addition command before use cp
Code:
ln -s /system/xbin/busybox /system/xbin/cp
And start your phone after done
Code:
start
Click to expand...
Click to collapse
Step 4 isnt working,, I have disconnected the usb still there is no "open command window here" comming,,, i am on windows xp.....