testwhat / SmaliEx

A wrapper to get de-optimized dex from odex/oat/vdex.
529 stars 142 forks source link

Lollipop boot.oat v48 issues #46

Open brainvision opened 7 years ago

brainvision commented 7 years ago

Hi guys.. I'm trying to deodex my stock ROM and I got this output when launching decompiling boot.oax

`D:\Programmi\Android\smali>java -jar ..\oat2dex.jar boot boot.oat 10-31 17:38:05:932 Output raw dex: D:\Programmi\Android\smali\odex\core-libart.dex 10-31 17:38:05:935 Output raw dex: D:\Programmi\Android\smali\odex\conscrypt.dex 10-31 17:38:05:936 Output raw dex: D:\Programmi\Android\smali\odex\okhttp.dex 10-31 17:38:05:936 Output raw dex: D:\Programmi\Android\smali\odex\core-junit.dex 10-31 17:38:05:938 Output raw dex: D:\Programmi\Android\smali\odex\bouncycastle.dex 10-31 17:38:05:940 Output raw dex: D:\Programmi\Android\smali\odex\ext.dex 10-31 17:38:05:949 Output raw dex: D:\Programmi\Android\smali\odex\framework.dex 10-31 17:38:05:953 Output raw dex: D:\Programmi\Android\smali\odex\framework-classes2.dex 10-31 17:38:05:958 Output raw dex: D:\Programmi\Android\smali\odex\telephony-common.dex 10-31 17:38:05:959 Output raw dex: D:\Programmi\Android\smali\odex\voip-common.dex 10-31 17:38:05:960 Output raw dex: D:\Programmi\Android\smali\odex\ims-common.dex 10-31 17:38:05:961 Output raw dex: D:\Programmi\Android\smali\odex\mms-common.dex 10-31 17:38:05:962 Output raw dex: D:\Programmi\Android\smali\odex\android.policy.dex 10-31 17:38:05:964 Output raw dex: D:\Programmi\Android\smali\odex\apache-xml.dex 10-31 17:38:05:968 Output raw dex: D:\Programmi\Android\smali\odex\com.intel.config.dex 10-31 17:38:05:969 Output raw dex: D:\Programmi\Android\smali\odex\com.intel.aware.awareservice.dex 10-31 17:38:05:970 Output raw dex: D:\Programmi\Android\smali\odex\com.intel.multidisplay.dex 10-31 17:38:06:328 Art version=48 (boot.oat) 10-31 17:38:06:357 De-optimizing /system/framework/core-libart.jar 10-31 17:38:09:831 Output to D:\Programmi\Android\smali\dex\core-libart.dex 10-31 17:38:09:831 De-optimizing /system/framework/conscrypt.jar 10-31 17:38:10:762 Output to D:\Programmi\Android\smali\dex\conscrypt.dex 10-31 17:38:10:762 De-optimizing /system/framework/okhttp.jar 10-31 17:38:10:938 Output to D:\Programmi\Android\smali\dex\okhttp.dex 10-31 17:38:10:939 De-optimizing /system/framework/core-junit.jar 10-31 17:38:10:953 Output to D:\Programmi\Android\smali\dex\core-junit.dex 10-31 17:38:10:953 De-optimizing /system/framework/bouncycastle.jar 10-31 17:38:12:180 Output to D:\Programmi\Android\smali\dex\bouncycastle.dex 10-31 17:38:12:180 De-optimizing /system/framework/ext.jar 10-31 17:38:13:065 Analysis error in class=Lgov/nist/javax/sip/header/SIPHeaderNamesCache; method= Method: Lgov/nist/javax/sip/header/SIPHeaderNamesCache;->()V Near line: 18 (address 25) Instructions: [11] move-result-object regA=5 [12] const-class regA=6 [13] invoke-virtual-quick regC=5 regD=6 <----- [14] move-result regA=5 [15] if-eqz regA=5

10-31 17:38:13:070 org.jf.dexlib2.analysis.AnalysisException: Invalid register type (Integer) for register v5. at org.jf.dexlib2.analysis.MethodAnalyzer.checkRegister(MethodAnalyzer.java:2746) at org.jf.dexlib2.analysis.MethodAnalyzer.getAndCheckSourceRegister(MethodAnalyzer.java:2729) at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInvokeVirtualQuick(MethodAnalyzer.java:2512) at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1257) at org.jf.dexlib2.analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:258) ...(Skip 26 traces) at org.rh.smaliex.OatUtil.convertToDex(OatUtil.java:323) at org.rh.smaliex.OatUtil.convertDexFromBootOat(OatUtil.java:246) at org.rh.smaliex.OatUtil.bootOat2Dex(OatUtil.java:130) at org.rh.smaliex.Main.mainImpl(Main.java:101) at org.rh.smaliex.Main.main(Main.java:42)

10-31 17:38:13:073 Failed to re-construct dex java.lang.ClassCastException: org.jf.dexlib2.analysis.UnresolvedOdexInstruction cannot be cast to org.jf.dexlib2.iface.instruction.formats.Instruction35ms 10-31 17:38:13:075 convertToDex: skip /system/framework/ext.jar 10-31 17:38:13:076 De-optimizing /system/framework/framework.jar 10-31 17:38:19:534 Output to D:\Programmi\Android\smali\dex\framework.dex 10-31 17:38:19:534 De-optimizing /system/framework/framework.jar:classes2.dex 10-31 17:38:24:419 Analysis error in class=Landroid/widget/NumberPicker; method= Method: Landroid/widget/NumberPicker;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V Near line: 742 (address 619) Instructions: [305] const/16 regA=16 [306] move/from16 regA=0 regB=16 [307] invoke-virtual-quick regC=6 regD=15 regE=0 <----- [308] move-result regA=5 [309] invoke-virtual-quick regC=14 regD=5

10-31 17:38:24:423 org.jf.dexlib2.analysis.AnalysisException: Invalid register type (Integer) for register v6. at org.jf.dexlib2.analysis.MethodAnalyzer.checkRegister(MethodAnalyzer.java:2746) at org.jf.dexlib2.analysis.MethodAnalyzer.getAndCheckSourceRegister(MethodAnalyzer.java:2729) at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInvokeVirtualQuick(MethodAnalyzer.java:2512) at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1257) at org.jf.dexlib2.analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:258) ...(Skip 26 traces) at org.rh.smaliex.OatUtil.convertToDex(OatUtil.java:323) at org.rh.smaliex.OatUtil.convertDexFromBootOat(OatUtil.java:246) at org.rh.smaliex.OatUtil.bootOat2Dex(OatUtil.java:130) at org.rh.smaliex.Main.mainImpl(Main.java:101) at org.rh.smaliex.Main.main(Main.java:42)

10-31 17:38:24:426 Failed to re-construct dex java.lang.ClassCastException 10-31 17:38:24:427 convertToDex: skip /system/framework/framework.jar:classes2.dex 10-31 17:38:24:428 De-optimizing /system/framework/telephony-common.jar 10-31 17:38:25:970 Output to D:\Programmi\Android\smali\dex\telephony-common.dex 10-31 17:38:25:970 De-optimizing /system/framework/voip-common.jar 10-31 17:38:26:042 Output to D:\Programmi\Android\smali\dex\voip-common.dex 10-31 17:38:26:042 De-optimizing /system/framework/ims-common.jar 10-31 17:38:26:079 Output to D:\Programmi\Android\smali\dex\ims-common.dex 10-31 17:38:26:079 De-optimizing /system/framework/mms-common.jar 10-31 17:38:26:082 Output to D:\Programmi\Android\smali\dex\mms-common.dex 10-31 17:38:26:082 De-optimizing /system/framework/android.policy.jar 10-31 17:38:26:229 Output to D:\Programmi\Android\smali\dex\android.policy.dex 10-31 17:38:26:230 De-optimizing /system/framework/apache-xml.jar 10-31 17:38:26:939 Output to D:\Programmi\Android\smali\dex\apache-xml.dex 10-31 17:38:26:940 De-optimizing /system/framework/com.intel.config.jar 10-31 17:38:26:942 Output to D:\Programmi\Android\smali\dex\com.intel.config.dex 10-31 17:38:26:943 De-optimizing /system/framework/com.intel.aware.awareservice.jar 10-31 17:38:26:952 Output to D:\Programmi\Android\smali\dex\com.intel.aware.awareservice.dex 10-31 17:38:26:952 De-optimizing /system/framework/com.intel.multidisplay.jar 10-31 17:38:26:962 Output to D:\Programmi\Android\smali\dex\com.intel.multidisplay.dex`

Do you have any hint for me how to try to solve that?

brainvision commented 7 years ago

sorry forgot to provide the boot.oat file: https://mega.nz/#!PQpHBSRA!7Hv2PIoguTvPzh3ADnLUgv1GK9jQLZ-76s1N64vLodg

EDIT: updated link with key included.. :)

drbourbon commented 7 years ago

similar issue here.

here are boot.oat + app.odex: https://mega.nz/#!OgMVQLyJ

03-23 12:05:43:825 Analysis error in class=Landroid/widget/NumberPicker; method= Method: Landroid/widget/NumberPicker;->(Landroid/content/Context;Landroid/util/AttributeSet;II)V Near line: 604 (address 75) Instructions: [36] const/4 regA=15 [37] move-object/from16 regA=0 regB=19 [38] iput-quick regA=15 regB=0 <----- [39] const/16 regA=15 [40] const/16 regA=16

03-23 12:05:43:826 org.jf.dexlib2.analysis.AnalysisException: Could not resolve the field in class (Null) at offset 824 in at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeIputIgetQuick(MethodAnalyzer.java:2408) at org.jf.dexlib2.analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:1269) at org.jf.dexlib2.analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:259) at org.jf.dexlib2.analysis.MethodAnalyzer.(MethodAnalyzer.java:190) at org.rh.smaliex.DexUtil$ODexRewriterModule$1$1.getInstructions(DexUtil.java:505) ...(Skip 24 traces) at org.rh.smaliex.OatUtil.convertToDex(OatUtil.java:321) at org.rh.smaliex.OatUtil.convertDexFromBootOat(OatUtil.java:244) at org.rh.smaliex.OatUtil.bootOat2Dex(OatUtil.java:128) at org.rh.smaliex.Main.mainImpl(Main.java:101) at org.rh.smaliex.Main.main(Main.java:42)

03-23 12:05:43:826 Failed to re-construct dex java.lang.ClassCastException: org.jf.dexlib2.analysis.UnresolvedOdexInstruction cannot be cast to org.jf.dexlib2.iface.instruction.formats.Instruction22cs 03-23 12:05:43:826 convertToDex: skip /system/framework/framework.jar:classes2.dex