您的位置:首页 > 其它

odex反编译dex异常 Cannot locate boot class path file /system/framework/core.odex

2013-12-05 18:40 411 查看
为了将ROM中system/app下的CertInstaller.odex反编译为CertInstaller.dex,输入命令:

java -jar baksmali.jar -x
CertInstaller.odex

出现如下错误:

org.jf.util.ExceptionWithContext: Cannot locate boot class path file /system/framework/core.odex

at org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:2

17)

at org.jf.dexlib2.analysis.ClassPath.fromClassPath(ClassPath.java:161)

at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:59)

at org.jf.baksmali.main.main(main.java:274)

提示的意思是找不到
/system/framework/的“core.odex”

解决方法:在当前文件夹下新建system文件夹,并在system文件夹下建立framework文件夹,然后将

常用的一些odex放入framework文件夹下,如core.odex, ext.odex, framework.odex, android.policy.odex, services.odex(在相应ROM中system/framework/下提取,或从相应源码中out/.../system/framework/获得),

再输入命令:

java -jar baksmali.jar -x
CertInstaller.odex
-d ./system/framework

按照它的提示缺哪个就将相应的odex放入framework文件夹,直到命令成功运行不报错误,成功后会在

当前文件夹下会生成一个out文件夹

最后输入命令:

java -Xmx512M -jar smali.jar out -o classes.dex

即可生成classses.dex文件

若继续转化为jar文件:

d2j-dex2jar -f classes.dex

即可生成相应的classes_dex2jar.jar

把classes_dex2jar.jar拖到Jd-gui即可看到具体java代码。

其它

1.如果只是反编译APK中dex,可用7zip或其它压缩软件解压出APK包中dex文件

2.如果你熟悉smali语法可用

java -jar apktool.jar d yuan.apk yuan_fby

反编译出smali代码进行查看修改

3.如果你不仅想看还想回编刚才反编译出的smali到一个新的Apk

java -jar apktool.jar b yuan_fby
yuan_fby.apk


4.注意步骤3编译出的Apk是没有签名的,如果签名:

如果你有系统签名可以获得高权限:

java -jar signapk.jar
platform.x509.pem platform.pk8
yuan_fby.apk yuan_fby_signed.apk

如果没有系统签名则可用testkey签名:

java -jar signapk.jar testkey.x509.pem testkey.pk8

yuan_fby.apk yuan_fby_signed.apk

注意:

在Windows环境中回编译成Apk时确保当前目录下aapt.exe存在

本文链接:/article/7798108.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐