【教程】安卓.odex反编译教程。小白经验,解决各种编译失败问题
n760吧
全部回复
仅看楼主
level 12
小白的个人见解,高手或行家勿喷勿笑。[呵呵]
想制作一个属于自己的个性ROM,对ROM的美化是个重点。而美化ROM必须要用到的就是反编译。很多小白都尝试去做过反编译,但是很少人却能成功反编译或者回编译,基本上都会存在某些问题,导致编译失败,然后较劲脑汁尝试好多遍还是没能找到失败的原因,或者成功反编译。
一般小白反编译文件失败存在如下原因:
2012年11月30日 15点11分 1
level 12
1.执行反编译的工具版本过低。网上很多反编译教程都是安卓2.2版本的,2.3是不通用。
2.胡乱套用反编译教程。网上有很多版本的反编译工具,各种版本的JAVA执行命令不同。因此胡乱套用反编译命令也会导致编译出来。
3.不理解反编译语句。可能教程作者失误,语句出错,导致小白跟着编译语句,步骤执行还是屡试屡败。作者失误这种情况比较少,但是小白反编译不出来很常见。
4.JAVA环境变量设置错误。现在网上有jra1.6 和jra1.7 的各种版本。要说最主流的还是jra1.6。jra 1.7是Sun Microsystems公司最新退出的jra版本,内部做了很大的改变。所以网上很多jra文件都无法兼容执行。所以建议小白下载jra的时候下载最主流的jra1.6不要贪新,不然你的反编译工作无法完成。[开心]
2012年11月30日 15点11分 2
楼主在吗 有急事相求 关于反编译 !! 可以的话请加我406786872
2013年01月20日 02点01分
jre 1.6
2013年01月28日 02点01分
level 12
JAVA环境变量设置好了。接下来就是反编译工作了。下载最新的反编译工具。baksmali和smali。网上的反编译工具很多,版本也很多。所以要下载最新版本,现在最新版本貌似是1.4.1的。我现在用的就是1.4.1版本的,前些天刚从官网下载下来。[怒]都是英文啊,文盲找了好久才找到的。下载时务必以下四个文件全部都要下载下来。
2012年11月30日 16点11分 4
要工具的留邮箱。不介意的话粉硪一下下,看到秒发[开心]
2012年11月30日 17点11分
2013年09月16日 11点09分
急需要工具,邮箱 [email protected] 谢谢
2013年10月12日 09点10分
给一个工具包 [email protected]
2013年11月19日 07点11分
level 12
唉!睡不着。那今晚就晚点睡把教程都带出来吧,其实也不多。再续写教程之前,带出
bin升级包和zip刷机包转换制作。小白也可自己动手diy 此帖教程,之前只教了大家如何将bin转化为zip,完了那段时间有点瞎忙所以还有一半的教程就没给写出来,然后吧友也没人反映,所以就一直懒得再把教程带出来。今天刚好有时间有为网友有提议,然后就把第二部分教程带出来了。虽然不难,有工具你们也可以举一反三自己研究的,但是有些细节还是得提出来,不然粗心大意的朋友可能做不出来。教程是我临时编的,bin制作完没有试刷,所以不知道出不出得来结果。反正bin升级包是出的来。有兴趣的朋友可以去试一试。因为前段时间跟朋友聊天聊得忘情竟然捏着小N在手里转了起来,不小心把小N掉地上屏幕摔碎了,出现了明显的黑色裂痕,所以现在都懒得去折腾手机了。
帖子传送门,度娘娘不删。https://tieba.baidu.com/p/1990572216?pn=2 [开心]
2012年11月30日 17点11分 8
level 12
以反编译services.odex为例。反编译services.odex文件前要先对services.odex文件进行解包。解包某.odex文件时需要如下四个文件。(有可能还不够)
这四个文件位于zip刷机包中的system/framework文件夹中。将以上四个文件提取出来和下载的四个baksmali反编译工具放在同一个文件夹中,还有你要解包的services.odex文件也放到一起。重新命名文件夹为ABC,将ABC移到C盘根目录。
2012年12月01日 05点12分 10
level 12
开始-运行-cmd-回车,弹出管理员窗口。输入 cd.. 回车 cd..回车 出现C:\> 输入 cd abc
进入abc文件夹目录。执行反编译语句(odex解包):java -jar baksmali-1.4.1.jar -a 12 -x services.odex
如果出现上图则反编译(odex解包)成功。反编译成功后会在abc文件家中生成一个out文件夹,然后就可以对该文件夹中的文件进行改写。一般用于任务栏字体颜色更改,包括日期,时间,通知。改写完以后输入回编译语句(odex打包):java -jar smali-1.4.1.jar out/ -o classes.dex
执行完毕之后会在ABC文件夹中生成一个classes.dex文件。
把该文件移动到services.jar(用压缩文件打开)文件中。完了移到zip刷机包中的system/framework文件夹中更换就行了,或者移到手机system/framework目录中替换,更改权限就行了。
2012年12月01日 06点12分 11
请问需要把刷机包中的system/framework下的services.odex删除吗?
2014年09月02日 01点09分
level 12
此楼为编译过程中失败原因和解决办法。
如果编译过程中出现上图情况,解决办法就是把system/framework文件夹下的所有odex文件全部移到abc文件夹目录下。
如果编译过程出现UNEXPECTED命令,失败原因就是smali和baksmali工具版本过低。下载最新版本解决此问题。
2012年12月01日 06点12分 12
楼主,我照你方法试过,也不能解包,最新的smali,咋办? at org.jf.dexlib.OffsettedSection.readItems(OffsettedSection.java:48) at org.jf.dexlib.Section.readFrom(Section.java:143) at org.jf.dexlib.DexFile.<init>(DexFile.java:431) at org.jf.baksmali.main.main(main.java:269)
2012年12月03日 13点12分
回复 anly1985 :前面的错误代码是什么?没发给我。失败有以上两种原因,你是哪种?是不是版本过低。去下载最新版本吧。
2012年12月03日 13点12分
回复 祈恩丶生日快乐 :我用的是1.4.1最新版本,还是不能反编,配置都正确,我刚刚百度了一下终于找到原因了。是你发的那个baksmaki反编语句命令有点问题,我不能反编framework.odex 不过还是要谢谢你。
2012年12月03日 14点12分
回复 anly1985 :哦。是这样的,我前面几楼不是有说不同版本的反编译软件语句不同么。
2012年12月03日 14点12分
level 12

PS:
.odex解包语句:java -jar baksmali-1.4.1.jar -a 12 -x services.odex
.odex打包语句:java -jar smali-1.4.1.jar out/ -o classes.dex
下面为大家剖析以上两条命令,小白之解。
java-jar(指通过电脑搭建的JAVA环境变量执行为前提)
baksmali-1.4.1.jar(指的是解包工具)/smali-1.4.1.jar(指的是打包工具)
-a 12 -x services.odex(X为解包命令,即为解包services.odex)、
out/ -o classes.dex(o为打包命令,即为打包out文件,生成classes.dex)
1.整条语句:java -jar baksmali-1.4.1.jar -a 12 -x services.odex 的意思
在JAVA的变量环境中通过baksmali-1.4.1.jar解包工具解包services.odex、
2.整条语句:java -jar smali-1.4.1.jar out/ -o classes.dex 的意思
在JAVA的变量环境中通过smali-1.4.1.jar打包工具将out文件夹打包成classes.dex
2012年12月01日 06点12分 13
level 12
自己顶起了。
2012年12月12日 16点12分 22
1