Hi,
I got myself the android.policy.jar (313bytes) and android.policy.odex (350.584bytes) from the /system/framework.
I then copied the whole /system/framework folder from my P880 for baksmali, also.
I then baksmalied the android.policy.odex with:
java -Xmx512m -jar baksmali.jar -x android.policy.odex -d framework -o output
and resmalied it (this is a test) with:
java -Xmx512m -jar smali.jar output/ -o classes.dex
This all works without an error message.
I end up with the classes.dex (314.716bytes).
Here my trouble begins. I put classes.dex with 7zip and normal compression into the original android.policy.jar (now 143.886bytes)
I removed the ORIGINAL android.policy.odex and android.policy.jar from my phone and copied the new android.policy.jar (143.886bytes) into the their place (/system/framework).
After reboot I am stuck with a bricked phone
To investigate, I then reodexed android.policy.jar with
dexopt-wrapper android.policy.jar new.android.policy.odex /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar:/system/framework/com.lge.bluetooth.jar:/system/framework/com.lge.core.jar
which works fine, but my NEW android.policy.odex is not the original 350.584bytes, but 322.368bytes
I added the file signature from the old odex, but the size remains the same.
My questions:
Why did my android.policy.jar (143.886bytes) not work, although I changed none of the coding?
Why did my android.policy.odex (322.368bytes) not have the same size as the original odex in the rom?
I attach these two files for you. Please help me. :crying:
Thank you!
PS: I had to rename the odex to txt, because it cant be attached otherwise.
Related
Guys, I'm editing some files in services.jar. So I extract the classes.dex, which is about 1mb. Using baksmali, I disassemble all the files to the com folder, which ends up being 8-9mb uncompressed. After making my changes, I try reassembling the classes.dex, but my file ends up being 9mb. Even if I insert it into the services.jar, that file is still 4.5mb. Obviously I am unable to boot. Can anyone let me know how to get this to work?
These are the commands I am using.
disassembling:
java -Xmx512m -jar baksmali-1.2.1.jar -o c:\smali classes.dex
and reassembled later:
java -Xmx512m -jar smali-1.2.1.jar -o classes.dex c:\smali
Maybe this should be in development......
eViL D: said:
Guys, I'm editing some files in services.jar. So I extract the classes.dex, which is about 1mb. Using baksmali, I disassemble all the files to the com folder, which ends up being 8-9mb uncompressed. After making my changes, I try reassembling the classes.dex, but my file ends up being 9mb. Even if I insert it into the services.jar, that file is still 4.5mb. Obviously I am unable to boot. Can anyone let me know how to get this to work?
These are the commands I am using.
disassembling:
java -Xmx512m -jar baksmali-1.2.1.jar -o c:\smali classes.dex
and reassembled later:
java -Xmx512m -jar smali-1.2.1.jar -o classes.dex c:\smali
Click to expand...
Click to collapse
The commands I use I got from this post.
Thanks for you answer, I got it figured out.
hmmm how did you get this working? Cause that post just has what you did here...
I'm having the same problem, I just get boot loops after pushing my custom jar file :-/
oops I spoke too soon.. managed to get it working after like 10th or so try lol
For some reason I need to deodex a framework.odex, that is the /system/framework/framework.odex.
Look at this, there are 2 files list in /system/framework/:
[email protected]:~/experiement# adb -d shell ls /system/framework/frame*
/system/framework/framework.odex
/system/framework/framework.jar
using baksmali, I need to specify -d <Dir>, where <DIR> is a dir containing framework.jar etc.
Obviously this is a recursive loop.
So Is it possible to deodex framework.odex?
BTW, below are my commands to deodex a framework.odex, and its output.
[email protected]:~/experiement# baksmali -a 15 -x framework.odex -d .
#make some changes to some file in out dir and smali it
[email protected]:~/experiement# smali -a 15 -x -o framework.odex.m out/
[email protected]:~/experiement# file framework.odex*
framework.odex: Dalvik dex file (optimized for host) version 036
framework.odex.m: Dalvik dex file version 036
It sound that framework.odex is an odex file while framework.odx.m is not an odex file.
So If I push framework.odex.m to /system/framework/framework.odex, the phone will not boot, I believe.
Is there a way to turn out dir to a new framework.odex file and push it to /system/framework/framework.odex, and the phone will boot OK?
whogiawho said:
It sound that framework.odex is an odex file while framework.odx.m is not an odex file.
So If I push framework.odex.m to /system/framework/framework.odex, the phone will not boot, I believe.
Click to expand...
Click to collapse
I bricked my phone that way.
The smali will not create an odex file, its a dex file.
(Yet, the baksmali will actually read an odex, strange enough.)
You should copy the dex as classes.dex one into the original jar (with 7zip).
If you want the odex you need to "dexopt-wrapper" this new jar (with the classes.dex inside).
I dont think you need the odex for your new jar to work, the classes.dex inside the new framework.jar should suffice. As long as you replace the original framework.jar with with your new jar and delete the original framework.odex. (which no longer fits your new framework.jar anyhow)
Creating the new ODEX on top is optional.
In fact I did all that and it still bricked my phone
Hello
I am trying to Deodex my SG4 stoke rom secphone.odex
I read almost all threads here before posting this but still have some errors..
that's the steps I did
1-Pull framework folder from my phone and put it under c:\framework
2-run this command
java -jar baksmali.jar -d C:\framework -x secphone.odex
and it generate the "out" folder..
3- run this command
java -Xmx512m -jar smali.jar out -o classes.dex
and it generates the classes.dex file
4-Open the secphone.apk with 7zip and add the classes.dex on the root..
now when i put the secphone.apk on my phone and set permissions, the phone app always gives error that it stopped and keep poping this error until i restore the original apk..
whats missing me here to have it work?
regards
Hi Romeo,
Did you found a solution? I have the same problem.
Thanks
Me too, same problem.
Hi guys, i am trying to make my first deodex of android.policy but somehow after deodex and reboot, my samsung i8582 (Grand Quattro) never reboots.
Disassembling android.policy.odex ...
java -Xmx512m -jar baksmali.jar -a 16 -d ../framework -x android.policy.odex
Assembling into classes.dex ...
java -Xmx512m -jar smali.jar -a 16 -o classes.dex out
Found android.policy.jar
Removing android.policy.odex ...
Put classes.dex into android.policy.jar ...
My question is: Do i have to deodex ALL files in /system/framework and /system/apps to make it work ? Or can i have a few files odexed and others deodexed ?
I pulled /system/framework/services.jar three times now, and extracted the classes.dex. Then decompiled the classes.dex with "java -jar baksmali.jar -o classout/ classes.dex" and navigated to classout/com/android/server. The problem is the dir is missing the "status" folder. I did this with VTS 10, colorchange.jar, and manually .. same result. Thoughts?