android APK提取内置软件odex转dex
细心的网友可能发现android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作
用呢? android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中
没有dex文件。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的
,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导
出使用。
很多网友可能想到的是合并odex和apk变成apk中包含dex文件的,这样合并后最终apk文件安
装
在/data/中,而rom存放时在 /system/bin中,所以最终导致了用户可装在android手机中的软件会变
少,占用系统空间。
用android手机会遇到如何将APK制作成内置软件,即将APK软件分解xxx.apk和xxx.odex并放到/system/app,看教程:android 制作内置软件制作odex方法
当你看到手机内置软件有好的软件想提取出来,就要将xxx.odex转为classes.dex,压缩到xxx.apk里,再签名apk。
apk实际是一个zip文件,可用压缩工具直接打开或解压,也可以更改后缀名为 .zip。
该教程基于 XP SP3 32位的系统下试验制作!
准备软件和文件:
odex转dex要在Java环境下制作,下载软件java jdk 7
网盘下载 下载
下载下windows x86 的,要点选ACCEPT才能下载,或点此直接下载
下载baksmali.jar和smali.jar,版本是1.2.8
点此下载
如果你的电脑安装了360,可能会出现提示,点选允许所有操作和不在提示,或把它卸载了安装完再装回去。
将手机/system/下的framework整个文件夹复制到电脑上,应为到时需要/system/framework下的某些文件。
下载:framework ,仅供提供的calculator.apk和calxulator.odex使用,提取自己手机内置软件的用自己手机的framework。
安装好Java jdk7后在D盘下建一个文件abc,把baksmali.jar和smali.jar放到文件夹下,把framework里的所有文件也放到abc下,把需要提取的内置软件xxx.odex放到abc下,
下载:calculator.zip
唤出CMD: 开始—运行—输入CMD后点确定或按ENTER回车键,唤出CMD后输入下面命令后按回车键:
d: 进入D盘
cd abc 进入abc文件夹
首先通过odex生成class文件,命令如下:
java -jar baksmali.jar -x calculator.odex
为了输入方便也可将odex命名为a.odex
java -jar baksmali.jar -x a.odex
执行完上面这行命令后,会生成一个out 文件夹里面是calculator.odex的class文件。
参考:出现问题,根据提示可以从rom的 /system/framework 中的xxx.jar放到pc上的java环境变量中一起生成。 已将framework下的所有文件放到abc下,不成功也不是这个问题。
通过class生成classes.dex 文件,命令如下:
java -Xmx512M -jar smali.jar out -o classes.dex
注意输入命令区分大小写:Xmx512M,和转下一个odex文件前要删除out文件夹
成功的命令图如下:
输入代码麻烦则可下载批处理:Odex转class转dex.zip ,将解压得到的批处理放到abc文件
夹下,将要处理的xxx.odex拖到odex转class转dex.bat文件的图标就会自动生成classes.dex了。使用该批处理“abc”可放到任意盘和位置都可
bat批处理文件实际上是txt文件,可用记事本等编辑器打开,或改后缀名为 .txt ,bat批处理是把你在CMD里输入的所有代码保存到记事本,再改后缀名为bat即可。如上面calculator.odex制作为bat,代码如下:
d:
cd abc
java -jar baksmali.jar -x calculator.odex
android软件java -Xmx512M -jar smali.jar out -o classes.dex
pause
用记事本保存改后缀名为bat后双击执行即可,麻烦的是处理不同的odex文件要将calculator.odex改代码为要处理的odex文件名。
odex转class转dex.bat的代码如下:
cd /d %~dp0
java -jar baksmali.jar -x %1
java -jar smali.jar out/ -o classes.dex
rd out /Q /S
pause
odex转dex成功后将class.dex放回apk压缩包里不能使用,apk要签名才可使用.
将calculator.apk解压到calculator文件夹,将生成的classes.dex放到calculator文件夹,
下载签名批处理:auto-sign ,解压,把解压出来的 APK签名.bat和_data文件夹, 和calculator文件夹放到任意盘根目录,建议C盘,拖动calculator文件夹到APK签名.bat的图标上就会自动签名和打包回apk。
相关BAT,ODEX和DEX转class.bat class转dex.bat
ODEX转dex教程二:
下载并安装软件java jdk 7 点此下载
下载 全自动 odex 2 dex(改)
安装好Java jdk 7 ,将 全自动 odex 2 dex解压到任意盘任意目录,将要处理的所有xxx.apk和xxx.odex放到file文件夹里,将手机里/system/framework下的所有文件复制出来放到make文件夹下,双击打开 开始.bat ,生成的对应程序文件夹在OK文件夹下,用auto-sign批处理签名打包即可。
下载签名批处理:auto-sign ,解压,把解压出来的 APK签名.bat和_data文件夹, 和OK下
的文件夹放到任意盘根目录,建议C盘,拖动文件夹到APK签名.bat的图标上就会自动签名和打包成apk。
亦可使用 全自动 odex 2 dex(原) + 远离命令行和批处理软件: apktool beta 1.3.5亦即apktool_GUI_1. ,将apk拖到签名栏即可。apktool beta 1.3.5运行需安装JAVA,软件运行如下图:
教程二结束!
android内置软件提取教程结束!
重要的问题:当你将一个apk用压缩软件解压后会看到某些APK有一个 lib 文件夹,这个就是驱动文件,官方rom是放在 /system/lib 下 的 .so 文件就是apk的驱动。官方ODEX化的apk把驱动全部都放到了/system/lib 里,所以想知道哪些 .so文件是哪个apk的很难,没有驱动apk不能正常运行的。 不带lib 的apk就没有问题!
本文地址:abc/android/odextodex.htm
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论