安卓odex与apk合并

安卓odex与apk合并

我们如果从安卓系统中提取应用,就会发现有的apk是被优化过的,生成了odex文件,直接安装apk会报错缺少DEX文件【INSTALL_FAILED_DEXOPT】,缺少什么就给他补充什么,我们虽然没有dex文件,但是我们可以拿到odex文件,只要转码一下补充进去不就OK了?说干就干。

1. 准备必要的工具(baksmali-2.4.0.jar、smali-2.4.0.jar、oat2dex.jar[art虚拟机才需要])

前两个可以在这里下载:https://bitbucket.org/JesusFreke/smali/downloads/

oat2dex.jar在这下载:https://github.com/testwhat/SmaliEx

下载完成后,将上述三个文件和提取出来的apk以及odex文件都放在同一级目录中,命令进入该目录

例如:

2. 如果是art虚拟机,需要执行这一步,否则可以直接执行3

java -jar oat2dex.jar odex

例如:

java -jar oat2dex.jar odex Dialer.odex

这一步执行完会在当前目录生成一个文件夹 名称为 Dialer.odex-odex,里面放的就是我们需要的dex文件,名称为Dialer.dex

3. 反编译dex

java -jar [baksmali jar包路径] d [dex路径] -o [输出目录]

例如:

java -jar baksmali-2.4.0.jar d Dialer.dex -o dial

执行完此步骤,会在当前目录下生成一个文件夹 dial

4. 编译classes.dex

java -Xmx512M -jar [smali jar包路径] assemble [回编smali目录,对应上面的输出目录] -o [输出路径]

例如:

java -Xmx512M -jar smali-2.4.0.jar assemble dial -o classes.dex

执行完此步骤,会在当前目录下生成一个文件classes.dex

5. 将classes.dex直接拖到之前提取出来的apk中

6.将apk重新签名即可安装

apk可以成功安装,但是打开闪退

相关推荐

英国手机版365 公司简介

公司简介

📅 09-14 👁️ 1976
日博365怎么样 大良炒牛奶

大良炒牛奶

📅 08-18 👁️ 7456
365体育app官方下载 西部魔影2022皮肤与通行证全信息汇总攻略