我想将odex文件转换为dex文件。我已经从系统中删除了框架文件夹。我试过" java -jar baksmali-2.1.2.jar -d system / framework -x temp.odex"命令,但产生了错误 - 错误信息如下所示。
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)
我找不到" core.jar"在我的android系统框架文件夹中。
答案 0 :(得分:5)
截至2017-06-09 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
答案 1 :(得分:2)
这是@kakopappa答案的扩展。
从here获取最新版本的baksmali和smali jar,并将它们放在文件夹中,如果您是mac / linux用户,则将此方法添加到.bash_profile文件中。
在计算机中获取baksmali和smali jar并将其从终端分配给这些变量。
BAKSMALI_JAR_PATH =“”
SMALI_JAR_PATH =“”
注意:编辑后的值应类似于 BAKSMALI_JAR_PATH =“ /用户/兔子/工具/baksmali-2.2.7.jar” SMALI_JAR_PATH =“ /Users/rabbit/tools/smali-2.2.7.jar”
复制将此脚本粘贴到您的终端中,然后重新启动终端。这是一个快捷功能,将添加到.bash_profile
中,您将可以方便使用。
echo "BAKSMALI_JAR_PATH="$BAKSMALI_JAR_PATH >> ~/.bash_profile
echo "SMALI_JAR_PATH="$SMALI_JAR_PATH >> ~/.bash_profile
echo >>
function odextodex() {
odex_file_name=$1
deassembled_file=${odex_file_name%.odex}
java -jar $BAKSMALI_JAR_PATH d $1 -o $deassembled_file
java -jar $SMALI_JAR_PATH ass $deassembled_file -o $deassembled_file.dex
rm -rf $deassembled_file
}
完成此操作后,键入odextodex
filename.odex-您应该在当前目录中看到filename.jar文件。
答案 2 :(得分:1)
请改为尝试:
java -jar baksmali-2.1.2.jar -c boot.oat -d system/framework/arm/boot.oat -x temp.odex
boot.oat的具体路径可能不同。
另请注意,baksmali尚不支持对N预览图像进行解码。
答案 3 :(得分:0)
这对我有用adb pull /system/framework/arm/boot.oat /tmp/framework/boot.oat
放置apk和odex文件baksmali.jar -x -c boot.oat -d /tmp/framework APKname.odex -o APKname
答案 4 :(得分:0)
我不确定我是否正确理解了你的问题(如果我错了,请善意纠正我),但是如果你想将odex转换为dex,我已经在这里回答了类似的问题: https://reverseengineering.stackexchange.com/questions/12393/reverse-engineering-android-vendor-system-apps/12406#12406
无论如何,据我所知,你有两个选择:
oat2dex
。