zhangwenan / smali

Automatically exported from code.google.com/p/smali
0 stars 0 forks source link

Help problem deodex #127

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What seems to be the problem?

I have problem!!! Decompiling framework.odex with backsmali 1.3.3

Error occured while disassembling class Landroid.bluetooth.AtParser; - skipping 
class
java.lang.RuntimeException: Invalid method index: 22
    at org.jf.dexlib.Code.Analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:150)
    at org.jf.dexlib.Code.Analysis.DeodexUtil.lookupInlineMethod(DeodexUtil.java:64)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1067)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:213)
    at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:379)
    at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:132)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:338)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:117)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:205)
    at org.jf.baksmali.main.main(main.java:297)

Error occured while disassembling class Landroid.content.Intent; - skipping 
class
java.lang.RuntimeException: Invalid method index: 22
    at org.jf.dexlib.Code.Analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:150)
    at org.jf.dexlib.Code.Analysis.DeodexUtil.lookupInlineMethod(DeodexUtil.java:64)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1067)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:213)
    at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:379)
    at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:132)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:338)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:116)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:205)
    at org.jf.baksmali.main.main(main.java:297)

Error occured while disassembling class Landroid.content.IntentFilter; - 
skipping class
java.lang.RuntimeException: Invalid method index: 22
    at org.jf.dexlib.Code.Analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:150)
    at org.jf.dexlib.Code.Analysis.DeodexUtil.lookupInlineMethod(DeodexUtil.java:64)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1067)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:213)
    at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:379)
    at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:132)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:338)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:116)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:205)
    at org.jf.baksmali.main.main(main.java:297)

Error occured while disassembling class 
Landroid.media.MediaScanner$MyMediaScannerClient; - skipping class
java.lang.RuntimeException: Invalid method index: 22
    at org.jf.dexlib.Code.Analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:150)
    at org.jf.dexlib.Code.Analysis.DeodexUtil.lookupInlineMethod(DeodexUtil.java:64)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1067)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:213)
    at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:379)
    at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:132)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:338)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:116)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:205)
    at org.jf.baksmali.main.main(main.java:297)

Error occured while disassembling class 
Lcom.android.internal.content.NativeLibraryHelper; - skipping class
java.lang.RuntimeException: Invalid method index: 22
    at org.jf.dexlib.Code.Analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:150)
    at org.jf.dexlib.Code.Analysis.DeodexUtil.lookupInlineMethod(DeodexUtil.java:64)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1067)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:213)
    at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:379)
    at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:132)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:338)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:116)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:205)
    at org.jf.baksmali.main.main(main.java:297)

Error occured while disassembling class 
Lcom.android.internal.telephony.cdma.CDMAPhone; - skipping class
java.lang.RuntimeException: Invalid method index: 22
    at org.jf.dexlib.Code.Analysis.InlineMethodResolver$InlineMethodResolver_version36.resolveExecuteInline(InlineMethodResolver.java:150)
    at org.jf.dexlib.Code.Analysis.DeodexUtil.lookupInlineMethod(DeodexUtil.java:64)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1067)
    at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:213)
    at org.jf.baksmali.Adaptors.MethodDefinition.addAnalyzedInstructionMethodItems(MethodDefinition.java:379)
    at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:132)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:338)
    at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:116)
    at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:205)
    at org.jf.baksmali.main.main(main.java:297)

What version of smali/baksmali are you using? What rom are you working
from?

Versin Baksmali 1.3.3 and Rom - sw w-s170 (v2.3.4 Android)

Please provide any additional information below: error messages, symptoms,
etc.

Bootpath=core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:serv
ices.jar:core-junit.jar:com.sktelecom.smartcard.jar:javax.obex.jar:android.test.
runner.jar:bmgr.jar:com.android.location.provider.jar:com.invensense.android.har
dware.jar:com.qualcomm.location.vzw_library.jar:ime.jar:input.jar:monkey.jar:pm.
jar:qcnvitems.jar:qcrilhook.jar:sqlite-jdbc.jar:svc.jar:am.jar:com.google.androi
d.maps.jar

Original issue reported on code.google.com by shirik1987@gmail.com on 6 Jul 2012 at 12:25

GoogleCodeExporter commented 9 years ago
Please provide the exact options you ran baksmali with

Original comment by jesusfreke@jesusfreke.com on 6 Jul 2012 at 12:51

GoogleCodeExporter commented 9 years ago
BOOTCLASS=core.jar:bouncycastle.jar:ext.jar:framework.jar:android.policy.jar:ser
vices.jar:core-junit.jar:com.sktelecom.smartcard.jar:javax.obex.jar:android.test
.runner.jar:bmgr.jar:com.android.location.provider.jar:com.invensense.android.ha
rdware.jar:com.qualcomm.location.vzw_library.jar:ime.jar:input.jar:monkey.jar:pm
.jar:qcnvitems.jar:qcrilhook.jar:sqlite-jdbc.jar:svc.jar:am.jar:com.google.andro
id.maps.jar

java -Xmx1024m -jar baksmali_1.3.3.jar -a 10 -c %BOOTCLASS% -d %Framework_PATH% 
-o %Decompiled_Source_JAR%\smali -x framework.odex

Original comment by shirik1987@gmail.com on 6 Jul 2012 at 1:07

GoogleCodeExporter commented 9 years ago
It looks like they added additional inline methods. The stock inline method 
table only has 22 entries (max index of 21).

You'll need to build deodexerant and run it on your device to dump out the 
inline method table. Dump the output from deodexerant to a file, and then pass 
that to baksmali via the -T option.

Original comment by jesusfreke@jesusfreke.com on 6 Jul 2012 at 1:27

GoogleCodeExporter commented 9 years ago
I forgot to mention, deodexerant can be found at:

https://code.google.com/p/smali/source/browse/#git%2Fdeodexerant

The README contains instructions for how to build it.

You can find more information on getting the AOSP source tree at:
http://s.android.com/source/initializing.html
http://s.android.com/source/downloading.html

Since you're working on a 2.3.4 device, you'll want to download the gingerbread 
branch of the Android source.

Original comment by jesusfreke@jesusfreke.com on 6 Jul 2012 at 1:29

GoogleCodeExporter commented 9 years ago

There is a compiled file deodexerant? To not install Linux. Thanks in 
advance!!!!!!

Original comment by shirik1987@gmail.com on 6 Jul 2012 at 4:22

GoogleCodeExporter commented 9 years ago
Company SK telesys does not give to the users of source codes of 
kernel(awfully!).

Original comment by shirik1987@gmail.com on 6 Jul 2012 at 4:27

GoogleCodeExporter commented 9 years ago
You don't need the kernel source. You just need the platform source (aosp).

I don't have a prebuilt binary.

Original comment by jesusfreke@jesusfreke.com on 6 Jul 2012 at 7:20

GoogleCodeExporter commented 9 years ago
Thanks for the great deodexerant!!! I am using c4droid for android has compiled 
and got the output file!

Issue resolved!

Original comment by shirik1987@gmail.com on 8 Jul 2012 at 3:17