不编译odex
㈠ Android编译是不是生成odex的设置
Android编译是否生成odex的设置
默认编译odex版本,如果需要非odex版本,请将device/huawei/k3v2_s10/BoardConfig.mk如下两个变量的值修改为:
DISABLE_DEXPREOPT := true
WITH_DEXPREOPT := false
其它说明
A. device/hisi/k3v2oem1/下面的配置文件不再使用,对应的配置文件在device/huawei/k3v2_s10/目录,以后如果需要修改配置文件, 请在该目录下进行修改。
B. out/target/proct/目录下的产品编译镜像k3v2oem1不再使用,对应华为自己的产品镜像,如out/target/proct/hws10101u
C. 【编APK,不生成odex】
目前库上的代码编译apk时,同时生成了apk和odex,push/install进去不生效。
解决方法:
(1不生成odex,只生成apk,将 LOCAL_DEX_PREOPT 的值改为 false 即可。
即 build\core\package.mk 中156行改为 LOCAL_DEX_PREOPT := false。
照上述修改后,全部重新编译,后续就可以mm单独编译apk方便调试了。
(2如果时间紧,又不想全编重新编译怎么办?
在相应的apk代码路径的Android.mk文件中加入WITH_DEXPREOPT := false。
添加后mm重新编译生成apk即可。
【编JAR包,不生成odex】
目前库上的代码编译framework时,同时生成了JAR和odex,此时push进去开机起不来。
解决方法:
编译时只生成jar包,不生成odex,即 build/core/java_library.mk 中37行改为 LOCAL_DEX_PREOPT := false。照上述修改后,全部重新编译,后续就可以mm单独编译jar包方便调试了
㈡ 安卓7.1后还要不要odex化
1,这个就是自己直接升级就行,前几天自己用应用宝找东西的时候就见这个了, 2,用手机安装一个应用宝,在首页上直接搜索下啥的,然后打开就能用了,各种的版本也是挺多的,然后玩的时候自己就是注意下啥的就行了,也挺方便的
㈢ 如何配置安卓模拟器 dex文件不被优化成odex
使用靠谱助手不会出现这个问题,这里有教程和下载http://www.zhuantilan.com/zt/kaopuzhushoujiaocheng/
㈣ 安卓反编译framework需要合并odex吗,我用的电脑apktool,回编后直接用re替换到系统可以吗
可以 啊,
㈤ 反编译.odex是 出现了下面的错误,意思是 缺少core.odex文件 但我已经把framework下的所有文件复制到
要先把core.apk和core.odex合并之后再进行反编译,不然就会提示这个。
㈥ 怎么让dex文件变成odex文件dexopt
简单来说odex的作用是优化后的dex 文件,可以提高加载速度。现在一般第三方ROM都把APK和odex合并起来了,可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。如果你的odex导出可能有问题,没有跟原本配在一起的APK合并在一起,导致导入的时候安装不了。
ODEX优点
1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。
2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有dex文件的apk是无法正常安装的。
3.会增加一些可安装应用的空间,虽然不是很多。
4.某些机身内存太小的手机优化的时候可以删除dex文件来达到制作大内存包的目的,但是这种大内存包会使手机软件启动速度变慢。适合不追求速度,需要更多内存装软件的用户。
效果
Odex化后系统启动和程序运行速度大大提高,稳定性不变。因此推荐做Odex化。
一般来说官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现在也没有统一的说法。官方rom大部分每个apk对应一个.odex文件,而deodex化的rom里面只有一个apk,把.odex转换成classes.dex放到apk包里面了。所以 odex rom的.apk+.odex=deodex化rom的1个.apk (简单地来说,其实就上一个合并的过程)
odex文件的生成
1、首先配置JAVA环境,相信大家都会
2、下载工具
adb工具包
dexopt-wrapper工具
3、用数据线将手机与电脑连接,手机中的设置----应用程序设置---开发下的USB调试、允许模拟地点要选上;将需要生成ODEX文件的***.apk文件放到 手机的data/local目录下(与dexopt-wrapper同一个目录)。
4:在电脑上(XP系统):
“运行”——cmd(回车)
输入 adb shell(回车)
Su(回车)
cd data/local(回车)
dexopt-wrapper ***.apk ***.odex (回车)(***.apk与***.odex中的***同名)
就这样ODEX就生成了(看不到的话退出local再进入local)
5、剪贴出来用winrar删除****.apk 里的classes.dex。
这样apk+odex就生成了。将这同名不同后缀的两文件拷到system\app 或data\app中修改权限重启手机就可用了。
Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反**,因为没有没有dex文件的apk是无**常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无**常导出使用
㈦ [求助]大神们谁知道怎么反编译framework.odex啊
错误的第一行信息 提示你 缺少文件..在命令中加入 java -Xmx512m -jar baksmali.jar -c:core-junit.odex(好像是这个名字反正在手机的system/framework/下面) -x framework.odex 这样就可以了.如果在报错 那么看缺少什么 就接着在-c后面拼 这个我也是研究了2天.在网上找了很久 都没有找到相关信息.后来摸索出来的..希望能给你或者以后看到的人一个帮助
㈧ 如何反编译Android 的apk/dex/odex,获得源码
关于APK,DEX的介绍
当我们编译一个安卓项目的时候,整个项目会被打包成一个 .apk文件。这个文件其实是一个标准的zip文件,因此可以用解压缩工具打开。这个apk文件一般都包含程序的代码(在classes.dex文件中), 资源文件, 证书, manifest 文件等。 其中对我们最重要的是classes.dex文件,因为编译后的字节码(bytecode)都是放在这个文件中。我们后面讲的反编译就是针对这个dex文件来的。
反编译普通的APK文件:
对于普通的APK/DEX文件的反编译,其实工具有很多, 包括:
ByteCode Viewer: 一个可视化的集成工具,说实话,不太好用,不够稳定,生成代码质量中等。
dex2jar + jd_gui: 这两个工具组合还可以, 用起来比ByteCode Viewer麻烦一些,但比较稳定,生成代码质量中等。
在线反编译工具JADX: http://www.javadecompilers.com/apk , 这是基于SourceForge上的JADX的开源工具来实现的。本来以为在线反编译质量不会好,但出人意料的是:JADX是我发现的最好的反编译工具, 不但使用简单(直接上传,转换,下载就ok),而且反编译出来的代码质量很高,特别是变量命名方面,可读性很不错。
反编译ODEX文件:
Android 5.0 Lollipop以后,Google用ART代替了以前的Dalvik,对于普通的app来说我们仍然可以用上面的方法来把dex文件反编译成Java源代码。但对于系统预装的App,特别是类似应用商店,播放器等, 你会发现这些应用的apk文件中找不到对应的classes.dex文件,而是会发现在其子目录下有个.odex文件。 那如何反编译这个odex文件呢?我通过google查了查,知道应该用baksmali,但从github上下载了几个版本都不行,报各种不同错误。经过反复搜索和尝试,终于找到了这篇文章
: http://www.naldotech.com/how-to-deodex-applications-on-android-5-0-lollipop/ 。 具体方法如下:
1. 从这里下载工具包, 解压缩到本地。 这里的baksmali的版本是2.0.3. 不同版本的baksmali针对的Android内核不同。有时候高版本反倒不好用。
2. 打开工具所在目录, 按住shift键, 点击鼠标右键,打开windows命令窗口
3. 把 odex文件拷贝到该目录
4. 在命令窗口运行: oat2dex.bat *.odex. 正常情况下,应该显示OK等信息。如果报错的话,说明这个文件无法转换,后面的也不用试了。
5. 运行 oat2dex.bat *.odex temp.dex . 运行后会创建一个temp.dex文件。
6. 运行 java -jar baksmali-2.0.3.jar -a 21 -x temp.dex -o source . 运行后会创建一个source的文件夹,并将temp.dex反编译到该文件夹。-a 21 表明的是Android内核的版本21
7. 运行 java -jar small-2.0.3.jar -a 21 source -o classes.dex, 反编译为classes.dex文件。
需要注意的是:由这种方式反编译成的classes.dex 文件相比原生的classes.dex 还是缺少了些信息,因此反编译这种classes.dex 文件后生成的java代码可读性会更差些。
8. 用在线工具JADX 来把 classes.dex 最终反编译为java代码。
㈨ 怎么设置android去掉dexopt优化
简单来说odex的作用是优化后的dex文件,可以提高加载速度。现在一般第三方ROM都把APK和odex合并起来了,可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。如果你的odex导出可能有问题,没有跟原本配在一起的APK合并在一起,导致导入的时候安装不了。ODEX优点1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有dex文件的apk是无法正常安装的。3.会增加一些可安装应用的空间,虽然不是很多。4.某些机身内存太小的手机优化的时候可以删除dex文件来达到制作大内存包的目的,但是这种大内存包会使手机软件启动速度变慢。适合不追求速度,需要内存装软件的用户。效果Odex化后系统启动和程序运行速度大大提高,稳定性不变。因此推荐做Odex化。一般来说官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现在也没有统一的说法。官方rom大部分每个apk对应一个.odex文件,而deodex化的rom里面只有一个apk,把.odex转换成classes.dex放到apk包里面了。所以odexrom的.apk+.odex=deodex化rom的1个.apk(简单地来说,其实就上一个合并的过程)odex文件的生成1、首先配置JAVA环境,相信大家都会2、下载工具adb工具包dexopt-wrapper工具3、用数据线将手机与电脑连接,手机中的设置----应用程序设置---开发下的USB调试、允许模拟地点要选上;将需要生成ODEX文件的***.apk文件放到手机的data/local目录下(与dexopt-wrapper同一个目录)。4:在电脑上(XP系统):“运行”——cmd(回车)输入adbshell(回车)Su(回车)cddata/local(回车)dexopt-wrapper***.apk***.odex(回车)(***.apk与***.odex中的***同名)就这样ODEX就生成了(看不到的话退出local再进入local)5、剪贴出来用winrar删除****.apk里的classes.dex。这样apk+odex就生成了。将这同名不同后缀的两文件拷到system\app或data\app中修改权限重启手机就可用了。Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢?如果你仔细观察会发现文件名时一一对应的,同时那些对应的apk文件中没有dex文件。这样做可以使其厂商保证一定的反**,因为没有没有dex文件的apk是无**常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无**常导出使用
㈩ 反编译官方framework.apk成功但不能回编译,不修改回编译也无法成功
1、合并odex了么
2、9.png文件替换没
3、换高版本的apktool
以后问东西把错误截图贴出来,回答个问题还要靠猜很蛋疼..........