关闭

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

标签: android反编译异常odex dexcore.odex
4616人阅读 评论(4) 收藏 举报
分类:
为了将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存在


本文链接:http://blog.csdn.net/lechengyuyuan/article/details/17146729

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:60991次
    • 积分:867
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:5篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论