admin管理员组

文章数量:1533915

2024年1月10日发(作者:)

2.手把手教你配置java环境变量

难度系数:1

失败概率:3

危险系数:0

(满分为5)

本帖隐藏的内容

这一步比较简单,基本度娘可以帮你解决一切,但是要求细心。新手配置的时候很可能会失败的,所以失败概率为3。

至于java环境配置的意义,我想也不用多说了。安卓是基于java语言的,因此apk需要在java环境里头进行编译跟反编译。所以,配置好java环境变量是所有工作的第一步。

配置步骤(win7,32位为例):

第一步,下载jdk1.7 ,我网盘里头提供下载。

第二步,然后安装,建议默认目录,当然也可以自己选择,安装后要记住安装的路径。

第三步,安装成功之后可以进行配置,右键我的计算机-属性-高级系统选项,如图:

第四步,点开环境变量选项卡

新建变量

1.变量名:JAVA_HOME 值:C:Program FilesJavajdk1.7.0 (以你安装目录为准,确认里面有bin和lib,jre等多个文件夹)

2.变量名:CLASSPATH 值:.;%JAVA_HOME%lib;%JAVA_HOME%;(千万别漏了开

头的小点)

如果变量目录下没有PATH这个变量,还需要新建一个

3.变量名:PATH 值:%JAVA_HOME%bin;%JAVA_HOME%jrebin;

如果已经存在PATH,就在值前面加上面的一段路径就可以了,末尾有;隔开。

用表格表示可能会比较清晰...

变量名称 值

C:Program FilesJavajdk1.7.0(即安装目JAVA_HOME

录)

CLASSPATH .;%JAVA_HOME%lib;%JAVA_HOME%;

PATH

JAVA环境变量到此配置完成,结果只有两个,成功,与失败。

下面是检验方法:打开开始菜单,输入cmd,输入javac

如果出现以下中文提示,恭喜你,你成功了。如果你失败了,从新检查环境变量的值。很容易错的。

%JAVA_HOME%bin;%JAVA_HOME%jrebin;

第一章到此完结。

第二章:从解包说起

本帖隐藏的内容

一、解包sbf详解

大家一直用sbf刷底包,相信对sbf也不会太陌生。其实sbf就是一个经过签名的压缩文件而已。让我们把它拆开看看。

a.下载我提供的解包工具并解压,得到三个文件,其中MotoAndroidDepacker就是专门解包sbf的文件。

打开看到全英的界面:

点击open From File 打开固件,为方便起见,建议把sbf放在同一目录下。并改一个比较短的名字,否则容易出错。

打开固件后按split to folder自动解压,直到提示splited解包成功。得到如下文件夹。

下面是两个重要文件的说明。其中CG35是内核文件,CG39是系统文件。

打开explore2fs,选择CG39文件打开,又看到我们熟悉的系统文件夹的结构。

这一步可以直接提取你需要的文件,按文件夹或者文件右键就可以解压了。

b.提取内核

进入刚才解包所得的文件夹,把以CG开头的文件删除,只留下CG35即内核文件。

再次打开MotoAndroidDepacker,按Open Files 选取所得文件夹。

点击compile file 即打包内核。

最后得到一个的文件,可以直接用RSD刷入。这就是所谓的替换内核了。

本小节结束。

二、DIY自己的ROM(以修改V大的ROM为例)

本帖隐藏的内容

众多rom中,V大的rom最为简单,结构简明易懂,下面以新中欧179纯净版1.0为例进行讲解。

打开zip文件看到结构如下:

a.打开脚本文件夹看到update-script文件

并把update-script用notepad++打开

代码如下:

1. show_progress 0.1 0

2. copy_dir PACKAGE:system SYSTEM:

3. run_program PACKAGE:

4. show_progress 0.2 0

5.

6.

7.

复制代码

如果你懂一点点英文的,其实很简单。

第二行开始,每一行的意思是

2.复制system文件夹并合并

3.运行外置脚本

两个意思...

这个copy_dir PACKAGE:system SYSTEM: 是覆盖的意思,在我们打补丁的时候经常用到。

同样办法,拆开我出的美化包,提取升级脚本,得到代码如下:

1. show_progress 0.1 0

2. delete_recursive SYSTEM:app

3. delete_recursive SYSTEM:framework

4. copy_dir PACKAGE:system SYSTEM:

5. show_progress 0.2 0

6.

7.

8.

复制代码

其中多了一句代码delete_recursive SYSTEM:app 这就是删除的意思了。

一般rom的制作,只需要用到这两句命令,覆盖跟删除。不过删除要用得谨慎。因为这是一个文件夹删除的。

b.懂了升级脚本之后,再看外置脚本,

1. #!/sbin/sh

2.

3.

4. rm /system/app/

5. rm /system/app/

6. rm

/system/app/esmusica_2_0_0012_embed_Signed_2010-04-13_

7. rm /system/app/

8. rm /system/app/

9. rm /system/app/GOTV_

10. rm /system/app/

11. rm

/system/app/hiphopofficial_2_0_0012_embed_Signed_2010-04-13_

12. rm /system/app/

13. rm /system/app/

14. rm /system/app/Quickoffice_BasicViewer_

15. rm

/system/app/revolver_2_0_0012_embed_Signed_2010-04-13_

16. rm /system/app/

17. rm /system/app/

18. rm

/system/app/truecountry_2_0_0012_embed_Signed_2010-04-13_

19. rm /system/app/

20. rm /system/app/

21. rm /system/lib/

22.

复制代码

显然,这是一个精简的脚本,rm 就是删除的意思...大家可以参考这个脚本,制作出自己需要的精简脚本...

最新发现,sh脚本是支持支持通配符*的!!!,大家可以试一试...精简需谨慎!

c.最后再看系统文件夹~

如同上一节所讲的system结构一模一样,不再累述,同样可以提取跟精简app文件夹已达到精简的目的...还可以把apk复制到app这个文件夹,达到绑定应用程序的目的...

学会以上,你已经是一个Rom的修改者了!!

与edify

本帖隐藏的内容

上一节说到,V大的包包结构,是rom中最简单的,为amend脚本。然而最近新出的recovery都只支持edify脚本,而CM7以及O大的包包都是edify脚本。有什么办法让所有recovery支持你的rom呢?

这一节将会向你讲述amend与edify异同以及一键转化的方法。

首先是学会鉴别两种脚本,如果你打开脚本文件夹发现update-binary文件,证明这个脚本是edify,否则为amend。

学会简单判别之后,看上一节所说的amend脚本

1. show_progress 0.1 0

2. delete_recursive SYSTEM:app

3. delete_recursive SYSTEM:framework

4. copy_dir PACKAGE:system SYSTEM:

5. show_progress 0.2 0

复制代码

只有几行,把它转化为edify之后

1. ui_print("Script generated by amend2edify v1.0.1.0.");

2. ui_print("***********************************************");

3. ui_print("");

4. ui_print("Mounting ");

5. run_program("/sbin/mount", "/dev/block/stl9", "/system");

6. run_program("/sbin/mount", "/dev/block/stl10", "/data");

7. run_program("/sbin/mount", "/dev/block/stl11", "/cache");

8. show_progress(0.1, 0);

9. delete_recursive("/system/app");

10. delete_recursive("/system/framework");

11. package_extract_dir("system", "/system");

12. show_progress(0.2, 0);

13. ui_print("Unmounting ");

14. run_program("/sbin/umount", "/system");

15. run_program("/sbin/umount", "/data");

16. run_program("/sbin/umount", "/cache");

17. ui_print("Update Complete.");

复制代码

其中ui_print部分只是控制屏幕输出,可以忽略,甚至可以删除。

就这段脚本而言,其实就分别添加了加载,和卸载分区两段命令。

显然edify结构要比amend复杂,但是子要你细心比对,就能把他们联系上。不过这一贴的重点,不是讲述他们的异同,教大家转化脚本。

这里要感谢XDA的大神做出了一键转化的工具,我搬运到此并以此牟利。。。嘿嘿。。。3个金币。。。让所有recovery支持V大的包包。亲测可行。但并不对此造成的后果负责。

amend2edify_(877.06 KB, 下载次数: 1261, 售价: 3 金币)

这个软件的使用方法非常简单。

打开文件之后可以直接转化,按save即将完成自动转化,然后你可以用最新的recovery升级V大的包包了~

注意!!!

如果点上签名选项可以直接制作升级包。

假设转换之后的包包不能修改了...提示压缩包损坏

的话...先把所有文件解压出来,重新打包成zip文件,然后用本软件的签名功能签名...之后就随意修改了...(签名后脚本文件处会多出个updater-script文件)

谢谢大家!撒花~!

第3章 deodex

第1节 deodex的一般步骤

本帖隐藏的内容

这一章内容还是比较简单,但是操作需要谨慎。如果手贱,变砖是很容易的。例子就不举了,怕真有人手贱。

本章内容大多数取自eric8810大大的deodex教程,写在这里只是想形成一个完整的知识体系。另外有若干个小提醒小经验是本人总结的。注意这些细节会让你事半功倍!

进入正题,deodex大家应该都不陌生了,一部分apk是odex样式的,odex是整个apk的核心部分,负责功能实现,deodex就是把odex文件以的形式和apk整合成一个文件。以方便编译与反编译。jar的deodex原理也一样。

下面章节教的所有美化知识,都要在deodex的条件下完成,因此,这一步是所有美化的初步。

如何deodex,这本来应该是个繁琐的工作,但只要工具要到位了,就变得很简单。下载第一章提供的xultimate,并解压到一个相对简单的目录里面,方便使用。以下是deodex的一般步骤:

手机,打开usb调试并连接

2.打开工具目录中的得到如下界面,升级选no。

3.进入到程序主界面

解释一下上面各个选项:

1.把手机中的system/app目录复制到该目录下并保存为origi_app 2.复制framework目录并保存为origi_frame目录 origi_app 目录中的所有文件并保存为done_app

origi_frame 目录中的所有文件并保存为done_frame 5.1-4依次完成1次

一般而言,选5没问题,遇到特殊情况下面会讲述如何处理。

4.点5后,或者点deodex的选项后会出现如下界面,这期间你基本不用想做什么了,乖乖等吧。logo自动弹出

5.如果平安无事,就会出现成功的提示

6.但是也会出现失败的情况,如图

遇到这种情况,把其他deodex完回来单独deodex,如果还是不行,唯有从其他包包中提取该文件。

7.假设如果已经完全deodex无意外,你会得到以done开头的两个文件夹,把它们复制到sd卡根目录处。分别是done_app与done_frame。

8.然后打开cmd输入如下命令:

如图,根据注解进入adb shell 之后依次输入以下命令:

1. su

2.

3.

4.

5.

stop

mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system

cp /sdcard/done_app/* /system/app/

cp /sdcard/done_frame/* /system/framework/

6. rm /system/app/*.odex

7. rm /system/framework/*.odex

8. mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system

9. reboot

复制代码

第一条输入后,手机端会提示root权限获取,点允许才可以继续。stop是冻结屏幕,之后就不能对屏幕进行任何操作了。

倒数第二步经常会提示没有回响,直接跳到reboot,没有任何影响。

reboot之后你的手机已经成功deodex了,第一次启动需要很长很长很长的时间。请耐心等候。

如果上面那步出现了错误,会造成无限重启。如果出现这种情况,建议重刷底包了。可以用bootmenu解决,但是难度貌似比较大。不适合菜鸟折腾。

重要提示:

A.一定要确保你deodex之后的文件是齐全的,不然很可能卡M。具体只要中途不提示错误,就不会有问题了。一定不要忘了把两个done文件夹(done_app与done_frame)复制到sd卡根目录

B.遇到错误时可以把错误的文件单独保存好,另外把已经deodex的apk/jar文件也存到另外的地方,因为再次deodex会清空done文件夹。

C.再次deodex的时候可以把已经deodex的文件删除,这样可以加快速度,当然,上述B步骤要做好。

D.常见会deodex失败的文件有MyPhonebook和SyncMLTmo,当然不排除有特例。比方说,刚才deodex的UK177的gallery3D就deodex失败了。这时候需要到其他相近的包包里面提取,再deodex。祝你好运!

第一小节更新完毕。

第2节 免刷底包deodex技巧

本帖隐藏的内容

这一小节几行字就能完事儿了,按照以上deodex的步骤,你需要先刷入底包,再刷入汉化包,然后提取文件才能deodex。最后还要覆盖。

这样会耗费你很多的时间。通过第二章的学习,你懂得了zip升级包的升级原理,就是覆盖。你同时懂的了解包sbf,那么,你完全可以不刷底包,直接从底包里面提取app和framework目录,然后用zip里面相应的文件夹对其进行覆盖。

然后连接手机,把上述两个已经覆盖好的文件夹放到xultimate的目录下,并命名为origi_app,和origi_frame,依次选3,和4两个选项,分别进行deodex。

这步完成之后,你甚至可以把你deodex的文件覆盖到sbf解包而来的目录下,手工删除odex文件,然后复制到zip文件夹进行升级。联系第二章的知识,你可以不用刷入底包,也可以制作属于自己的deodex包包了。甚至可以对其进行美化,修改与精简。

第三章更新完毕!

第四章 反编译教程

第1节 反编译的目的

本帖隐藏的内容

为什么要反编译apk呢?我们从上面说了deodex的概念,其实apk(已经deodex的)是一个压缩包。里面包含若干个文件,其中有些文件可以直接解压得到,然而有些重要的文件却不能解压得到。至少不能再windows用rar解压得到。

为了得到,并修改这些文件,我们需要反编译。

先解开一个apk来看,我把北欧1.26fix的作为示例,并命名为。

首先把apk文件重命名为zip文件。用rar打开看其结构如下

然后把它解压你会发现打开res文件夹结构如下:

纠错:这个不是签名文件,这个文件定义了一个程序的大部分信息,比如程序的包名:,这个是QQ的包名,还有其他一些参数,activity,软件的图标等等,而并不是签名文件

不要以为很多,当我们反编译成功之后,res文件夹的结构如下:

很多吧。。。= =但是resource文件在反编译之后已经不见了,分散到各个文件夹中去。其中,xml文件反编译前后的表示方式也会不一样。

反编译后xml文件可以直接被我们读懂还有修改。

举个例子。下面是反编译后的文件

1.

2.

3. xmlns:android="/apk/res/android">

4.

android:maxLevel="2" />

5.

android:maxLevel="7" />

6.

android:maxLevel="15" />

7.

android:maxLevel="25" />

8.

android:maxLevel="35" />

9.

android:maxLevel="45" />

10.

android:maxLevel="55" />

11.

android:maxLevel="65" />

12.

android:maxLevel="75" />

13.

android:maxLevel="85" />

14.

android:maxLevel="95" />

15.

android:maxLevel="100" />

16.

17.

复制代码

而直接解压也可以得到这个文件,但是打开是怎么样的呢?在这里就不列出来了,用三个字概括就是看不懂。有兴趣的同学可以自行解开文件看看没有反编译的xml文件长啥样的。

第2节 apk反编译的一般步骤

本帖隐藏的内容

上一节讲了apk反编译的目的以及原理,这一节纯粹是操作教程,无原理讲述。

需要工具apktool,从第一章下载,并且解压到相对简单的目录下面方便使用。

只需要记住两条命令:apktool d (反编译) 还有apktool b sample (重新编译就可以了)

当然,sample要换成你自己所反编译与 编译的文件及文件夹名称。

操作步骤图示:

1.把你所需要反编译的apk放到apktool目录下。

2.打开cmd,并设置apktool的路径,输入apktool d

之后会生成一个与你的apk同名的文件夹,这时表示你已经反编译成功了。当你修改完你所需要的数值之后。

3.在cmd中输入apktool b sample进行重新编译

这时候在sample文件夹里头,会出现一个build文件夹,里面就有需要的,已经经过编译的文件。

最后就把已经编译好的resource,和xml文件覆盖到原apk文件里头。具体方法就是把apk改名为zip文件,然后复制黏贴。

注意:无论修改什么都得替换...如果是修改xml文件,编译后仍有xml文件的话,即还需替换xml文件!

至于各文件的具体的作用与修改,会在下一章讲述。

补充内容:

上述方法适用于大部分的apk~但是当编译与反编译系统apk的时候会出错...这时候需要配置框架文件...

方法如下...

把framework里头的 复制到apk目录下...

在cmd依次输入命令

1. apktool if

2. apktool if

3. apktool if

复制代码

即可按照正常步骤进行编译与反编译

本小节结束。

第3节 jar文件的反编译与编译

本帖隐藏的内容

本章依然是操作教程,没有原理讲述,而且我感觉截图都不必要了,需要的工具是class。

下面以为例。

1.反编译。

把已经deodex的文件重命名为文件,把其解压,复制文件到class目录里面。用鼠标左键拖动到文件的上方放手。即可以完成反编译。

反编译完成之后会得到一个相应的文件夹classes,修改好你需要的值之后。可以进行重新编译。

2.重新编译

拖动classes文件夹到上方,即完成重新编译。重新编译以后在classes文件夹里面会生成一个新的文件,把其覆盖到原来的文件即完成重新编译。

最后把zip文件命名为文件即可。

本文标签: 文件文件夹反编译脚本打开