2016-04-28 218 views
2

我想将odex文件转换为dex文件。我已经从系统中拉出框架文件夹。我尝试了“java -jar baksmali-2.1.2.jar -d system/framework -x temp.odex”命令,但是产生了错误 - 错误信息如下所示。将odex文件转换为dex文件

Error occurred while loading boot class path files. Aborting. org.jf.util.ExceptionWithContext: Cannot locate boot class path file /system/framework/core.jar 
     at org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:277) 
     at org.jf.dexlib2.analysis.ClassPath.fromClassPath(ClassPath.java:182) 
     at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:67) 
     at org.jf.baksmali.main.run(main.java:113) 
     at org.jf.baksmali.main.main(main.java:322) 

我在我的android系统框架文件夹中找不到“core.jar”。

+0

这是否与达尔维克?还是艺术? – JesusFreke

+0

这是与艺术。 –

回答

1

试试这个:

java -jar baksmali-2.1.2.jar -c boot.oat -d system/framework/arm/boot.oat -x temp.odex 

您boot.oat的具体路径可能会有所不同。

另请注意,baksmali尚不支持对N个预览图像进行解码。

+0

我试过了,但又产生了另一个错误。加载引导类路径文件时发生错误。中止。 org.jf.util.ExceptionWithContext:不能org.jf.dexlib2.analysis在org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:2 77) 定位引导类路径文件boot.oat 。 ClassPath.fromClassPath(ClassPath.java:182) 在org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:67) 在org.jf.baksmali.main.run(main.java:113) 的组织。 jf.baksmali.main.main(main.java:322) –

+0

就像我说过的,你的boot.oat的具体路径可能会有所不同。 – JesusFreke

0

这为我工作adb pull /system/framework/arm/boot.oat /tmp/framework/boot.oat配售baksmali.jar -x -c boot.oat -d /tmp/framework APKname.odex -o APKname

+0

我试过这样。 java -jar baksmali-2.1.2.j ar -x -c boot.oat -d system/framework Test.odex -o Test.apk。但产生了错误。加载引导类路径文件时发生错误。中止。 org.jf.util.ExceptionWithContext:无法找到org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:2 77)上的引导类路径文件boot.oat,位于org.jf.dexlib2.analysis.ClassPath.fromClassPath( Classpath.java:182)at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:67)at org.jf.baksmali.main.run(main.java:113)at org.jf.baksmali.main.main (main.java:322) –

+1

确保文件boot.oat在system/framework中应该是代码 'java -jar baksmali-2.1.2.jar -x -c boot.oat -d system/framework温度。odex -o temp' –

+0

我从系统/框架中拉出boot.oat并重试它。但同样的错误被转载。 –

0

我不知道,我已经明白正确你的问题的apk和ODEX文件(好心纠正我,如果我错了),但是如果你想转换一个ODEX到DEX,我已经回答了类似的问题在这里:https://reverseengineering.stackexchange.com/questions/12393/reverse-engineering-android-vendor-system-apps/12406#12406

反正据我所知,你有两个chooice:

好运

+0

我用oat2dex试了一下。但是erro被制造出来了。错误信息是“OAT Hader Checking ..:FAIL!OAT2DEX File Check File FAIL”。 –

+0

谢谢。我成功了。 –

2

截至2017年6月9日baksmali发生了变化。它是这样工作的。

java -jar baksmali-2.2.0.jar d SamsungInCallUI.odex -o SamsungInCallUI 

然后组装dex文件。

java -jar smali-2.2.0.jar ass SamsungInCallUI -o SamsungInCallUI.dex