安卓反编译教程文档格式.docx

上传人:b****8 文档编号:22293939 上传时间:2023-02-03 格式:DOCX 页数:31 大小:1.15MB
下载 相关 举报
安卓反编译教程文档格式.docx_第1页
第1页 / 共31页
安卓反编译教程文档格式.docx_第2页
第2页 / 共31页
安卓反编译教程文档格式.docx_第3页
第3页 / 共31页
安卓反编译教程文档格式.docx_第4页
第4页 / 共31页
安卓反编译教程文档格式.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

安卓反编译教程文档格式.docx

《安卓反编译教程文档格式.docx》由会员分享,可在线阅读,更多相关《安卓反编译教程文档格式.docx(31页珍藏版)》请在冰豆网上搜索。

安卓反编译教程文档格式.docx

%JAVA_HOME%\jre\bin;

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

隔开。

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

变量名称

JAVA_HOME

\ProgramFiles\Java\jdk1.7.0(即安装目录)

CLASSPATH

PATH

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

下面是检验方法:

打开开始菜单,输入cmd,输入javac

如果出现以下中文提示,恭喜你,你成功了。

如果你失败了,从新检查环境变量的值。

很容易错的。

58上传

下载附件(99.52KB)

第一章到此完结。

 

第二章:

从解包说起

一、解包sbf详解

大家一直用sbf刷底包,相信对sbf也不会太陌生。

其实sbf就是一个经过签名的压缩文件而已。

让我们把它拆开看看。

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

打开看到全英的界面:

2011-6-1719:

52上传

下载附件(41.04KB)

点击openFromFile打开固件,为方便起见,建议把sbf放在同一目录下。

并改一个比较短的名字,否则容易出错。

打开固件后按splittofolder自动解压,直到提示splited解包成功。

得到如下文件夹。

下载附件(8.79KB)

下面是两个重要文件的说明。

其中CG35是内核文件,CG39是系统文件。

下载附件(73.81KB)

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

下载附件(49.61KB)

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

b.提取内核

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

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

下载附件(92.63KB)

点击compilefile即打包内核。

最后得到一个firmware.sbf的文件,可以直接用RSD刷入。

这就是所谓的替换内核了。

本小节结束。

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

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

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

2011-6-1720:

36上传

下载附件(40.94KB)

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

下载附件(12.55KB)

并把update-script用notepad++打开

代码如下:

1.show_progress0.10

2.copy_dirPACKAGE:

systemSYSTEM:

3.run_programPACKAGE:

tasks.sh

4.show_progress0.20

5.

6.

7.

复制代码

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

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

2.复制system文件夹并合并

3.运行外置脚本tasks.sh

两个意思...

这个copy_dirPACKAGE:

是覆盖的意思,在我们打补丁的时候经常用到。

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

2.delete_recursiveSYSTEM:

app

3.delete_recursiveSYSTEM:

framework

4.copy_dirPACKAGE:

5.show_progress0.20

8.

其中多了一句代码delete_recursiveSYSTEM:

app这就是删除的意思了。

一般rom的制作,只需要用到这两句命令,覆盖跟删除。

不过删除要用得谨慎。

因为这是一个文件夹删除的。

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

1.#!

/sbin/sh

2.

3.

4.rm/system/app/AmazonKindle.apk

5.rm/system/app/CardioTrainer.apk

6.rm/system/app/esmusica_2_0_0012_embed_Signed_2010-04-13_11-05-17.apk

7.rm/system/app/Facebook.apk

8.rm/system/app/GenieWidget.apk

9.rm/system/app/GOTV_Altitude.apk

10.rm/system/app/GreekIME.apk

11.rm/system/app/hiphopofficial_2_0_0012_embed_Signed_2010-04-13_11-08-31.apk

12.rm/system/app/LatinIME.apk

13.rm/system/app/MySpace.apk

14.rm/system/app/Quickoffice_BasicViewer_2.0.61.apk

15.rm/system/app/revolver_2_0_0012_embed_Signed_2010-04-13_11-07-08.apk

16.rm/system/app/ScreenReader.apk

17.rm/system/app/Swype.apk

18.rm/system/app/truecountry_2_0_0012_embed_Signed_2010-04-13_11-06-12.apk

19.rm/system/app/YouTube.apk

20.rm/system/app/ZoomService.apk

21.rm/system/lib/libSwypeCore.so

22.

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

最新发现,sh脚本是支持支持通配符*的!

!

大家可以试一试...精简需谨慎!

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

下载附件(28.87KB)

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

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

3.amend与edify

上一节说到,V大的包包结构,是rom中最简单的,为amend脚本。

然而最近新出的recovery都只支持edify脚本,而CM7以及O大的包包都是edify脚本。

有什么办法让所有recovery支持你的rom呢?

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

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

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

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

1.ui_print("

Scriptgeneratedbyamend2edifyv1.0.1.0."

);

2.ui_print("

***********************************************"

3.ui_print("

PerformingUpdate..."

4.ui_print("

Mountingmountpoints..."

5.run_program("

/sbin/mount"

"

/dev/block/stl9"

/system"

6.run_program("

/dev/block/stl10"

/data"

7.run_program("

/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"

12.show_progress(0.2,0);

13.ui_print("

Unmountingmountpoints..."

14.run_program("

/sbin/umount"

15.run_program("

16.run_program("

17.ui_print("

UpdateComplete."

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

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

显然edify结构要比amend复杂,但是子要你细心比对,就能把他们联系上。

不过这一贴的重点,不是讲述他们的异同,教大家转化脚本。

这里要感谢XDA的大神做出了一键转化的工具,我搬运到此并以此牟利。

嘿嘿。

3个金币。

让所有recovery支持V大的包包。

亲测可行。

但并不对此造成的后果负责。

amend2edify_v1.0.1.0.zip(877.06KB,下载次数:

1261,售价:

3金币)

2011-6-1818:

点击文件名下载附件

售价:

3金币[记录][购买]

下载积分:

金币-2

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

53上传

下载附件(22.79KB)

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

注意!

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

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

谢谢大家!

撒花~!

第3章deodex

第1节deodex的一般步骤

这一章内容还是比较简单,但是操作需要谨慎。

如果手贱,变砖是很容易的。

例子就不举了,怕真有人手贱。

本章内容大多数取自eric8810大大的deodex教程,写在这里只是想形成一个完整的知识体系。

另外有若干个小提醒小经验是本人总结的。

注意这些细节会让你事半功倍!

进入正题,deodex大家应该都不陌生了,一部分apk是odex样式的,odex是整个apk的核心部分,负责功能实现,deodex就是把odex文件以classes.dex的形式和apk整合成一个文件。

以方便编译与反编译。

jar的deodex原理也一样。

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

如何deodex,这本来应该是个繁琐的工作,但只要工具要到位了,就变得很简单。

下载第一章提供的xultimate,并解压到一个相对简单的目录里面,方便使用。

以下是deodex的一般步骤:

1.root手机,打开usb调试并连接usb...

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

2011-6-2315:

22上传

下载附件(39.46KB)

3.进入到程序主界面

下载附件(88.62KB)

解释一下上面各个选项:

1.把手机中的system/app目录复制到该目录下并保存为origi_app2.复制framework目录并保存为origi_frame目录3.deodexorigi_app目录中的所有文件并保存为done_app4.deodexorigi_frame目录中的所有文件并保存为done_frame5.1-4依次完成1次

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

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

logo自动弹出

下载附件(72.32KB)

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

下载附件(11.27KB)

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

下载附件(67.97KB)

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

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

分别是done_app与done_frame。

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

下载附件(56.07KB)

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

1.su

2.stop

3.mount-orw,remount-text3/dev/block/mmcblk1p21/system

4.cp/sdcard/done_app/*/system/app/

5.cp/sdcard/done_frame/*/system/framework/

6.rm/system/app/*.odex

7.rm/system/framework/*.odex

8.mount-oro,remount-text3/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的framework-res.apk作为示例,并命名为sample.apk。

首先把apk文件重命名为zip文件。

用rar打开看其结构如下

2011-6-2316:

18上传

下载附件(89.43KB)

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

下载附件(26.32KB)

纠错:

AndroidManifest.xml这个不是签名文件,这个文件定义了一个程序的大部分信息,比如程序的包名:

com.tencetn.qq,这个是QQ的包名,还有其他一些参数,activity,软件的图标等等,而并不是签名文件

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

下载附件(220.42KB)

很多吧。

==但是resource文件在反编译之后已经不见了,分散到各个文件夹中去。

其中,xml文件反编译前后的表示方式也会不一样。

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

举个例子。

下面是反编译后的battery.xml文件

1.<

?

xmlversion="

1.0"

encoding="

utf-8"

>

2.<

level-list

3.xmlns:

android="

4.<

itemandroid:

drawable="

@drawable/stat_sys_battery_0"

android:

maxLevel="

2"

/>

5.<

@drawable/stat_sys_battery_5"

7"

6.<

@drawable/stat_sys_battery_15"

15"

7.<

@drawable/stat_sys_battery_20"

25"

8.<

@drawable/stat_sys_battery_30"

35"

9.<

@drawable/stat_sys_battery_40"

45"

10.<

@drawable/stat_sys_battery_50"

55"

11.<

@drawable/stat_sys_battery_60"

65"

12.<

@drawable/stat_sys_battery_70"

75"

13.<

@drawabl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1