小米6/6X +关注 已有25138人关注 +发表新主题
tomcheni11111

内测粉丝组

  1. 5133 积分
  2. 4322 经验
  3. 400 贡献值

Ta的主页 发消息
签到
连续0天
0人
签到看排名
扫码下载App
一键签到 升级加速
回复

对jar和apk软件合并odex教程的最简便方法!!!

发表在 玩法&技巧 2017-11-24 03:10:27  来自PC 复制链接 手机看帖扫一扫!手机看帖更爽 275 7471

本帖最后由 tomcheni11111 于 2018-3-9 04:58 编辑

深夜突然看到我的手机屏幕下方出现未知错误,而且以前也经常跳出这4个字,我那时没有理会。自己知道这是因为安装了xp框架,导致云备份出现错误的提示,你们检查是不是也有这个错误?所以解决办法就是合并system/priv-app/CloudBackup文件夹里面的apk,就能解决云备份不能备份的问题!!!正好我的MIUI版本也是稳定版,不太喜欢经常升级,所以我就对云备份apk进行合并odex操作,解决这个简单的问题。其实之前,我早就知道合并odex的方法,也写了出来,只是很多人不用心,没有发现这个方法的好处和便利今天,我再次强调其重要性!!!

那就是手机端合并odex不需要电脑不需要配置Java环境不到半分钟就可搞定jar或者apk的合并,但是这里仅局限于单个文件的合并,避免了这个软件SVADeodexerForArt V5.5对整个MIUI系统进行合并odex操作费时费力费CPU,目前也没发现在手机端能够对整个系统进行odex合并。如果需要合并单个odex,解决某个问题时就用下面这个方法,我以services.jar为例,当然也可以CloudBackup.apk为例,解决未知错误的问题,非常便利!!!

合并odex教程(本次以jar为例,apk操作类同):

1、下载,安装工具:Apktool X.apk(下载链接:https://www.androidfilehost.com/?w=files&flid=149532,或者在最下面网盘附件里),授予该软件root权限,见图;


2、利用re管理器复制/system/framework/oat/arm64文件夹下的services.odex和/system/framework文件夹下的services.jar到储存目录中的某一个文件夹,命名为1或其他数字字母等,能找到就行;

3、然后打开之前安装的Apktool X.apk软件,找到第2步文件夹里面的文件,点击这个services.odex文件,出现一个界面选择“decompile odex for LP MM and N”反编译,等一会儿可以得到一个services_odex文件夹;

4、再长按services_odex文件夹(没有毛病哦~~),选择“编译”,就会生成service.dex文件(注意是dex,不是odex哦~~)

5、最后点击刚生成的service.dex文件,选择“添加到jar”,你会发现services.jar是不是变大了~


总结:你现在生成的这个services.jar文件,也就是我们需要的文件,就是目标文件。可以替换到/system/framework文件夹,改权限为0644(rw-r-r)然后把/system/framework/oat/arm64文件夹下的services.odex文件删除,不删也没有关系,重启可正常开机。其实整个过程并没有修改什么,只是合并了一下odex文件,仅此而已。

以下内容被隐藏,回复本帖后可见


附件:

以下内容被隐藏,回复本帖后可见

[/hide]

你们也可以考虑用电脑合并odex,欢迎大家探讨~~

但是比较麻烦哦,可以看这个帖子:

http://www.miui.com/forum.php?mod=viewthread&tid=8394519&highlight=%E5%90%88%E5%B9%B6odex%E7%A5%9E%E5%99%A8&mobile=2

对比一下复杂度,就知道谁最简便!!!


< type="text/"\>function thumbImg(objmethod) { if(!obj) { return; } obj. = null; file = obj.src; zw = obj.offsetWidth; zh = obj.offsetHeight; zr = zw / zh; method = !method ? 0 : 1; if(method) { fixw = obj.getAttribute('_width'); fixh = obj.getAttribute('_height'); if(zw > fixw) { zw = fixw; zh = zw / zr; } if(zh > fixh) { zh = fixh; zw = zh * zr; } } else { fixw = 720; if(zw > fixw) { zw = fixw; zh = zw / zr; obj.style.cursor = 'pointer'; } } obj.width = zw; obj.height = zh;}

扫描二维码,手机查看本帖
发表
最新评论 | 正序排列
只看楼主|楼层直达:
回复