您当前的位置: 首页 > 游戏

安卓应用APK文件的解包打包和修改教程

2019-01-11 21:12:17

相信每位玩机的人对APK文件都不陌生。你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具、插件、好玩的游戏等等。。。你可曾知道这些每天都伴随着你的APK文件是什么吗?怎样对它们作些修改呢?比如说:对英文版进行汉化、修改功能、修改文字描述、去掉广告等等。本文介绍APK的基本知识、结构、APK文件的解包、打包及签名,以及对APK文件的常规修改。

K文件简介

APK是AndroidPackage的缩写,即即Androidapplicationpackage文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android中执行即可安装。APK文件其实就是zip格式,但其扩展名被改为apk,用解压软件可以直接打开。通过WinRAR或UnZip解压后,你会看到有几个文件和文件夹。一个典型的APK文件通常有下列内容组成:l程序全局配置文件xDalvik字节码

sc

编译后的二进制资源文件

META-INF\该目录下存放的是签名信息res\

该目录存放资源文件

assets\该目录可以存放一些配置文件

下面对这些文件和目录做些基本的注释和介绍。 l

该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。

x文件

x是java源码编译后生成的java字节码文件。dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。 sc

编译后的二进制资源文件。 META-INF目录

META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染

和恶意修改增加了难度,有助于保护系统的安全。 res目录

res目录存放资源文件。包括图片,字符串等等。解包后,几乎所有可能的修改和工作基本都在这里。 assets目录

assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。

K文件的解包和打包

APK文件是用专业软件eclipse编译生成的文件包。在上可以找到许多软件来对APK的内容进行反编译,例如:可以通过AXMLPrinter2工具和命令:l解开在apk中的l。近,业界有一个功能强大的解包打包工具包apktool,可以在Windows下用来方便快速地对APK文件进行解包和打包,给修改和工作带来许多方便。下面来介绍它的使用。

1)APKtool软件包

APKtool软件包有2个程序组成:r和e另外提供一个批处理文件:t,其内容为:java-jar %~dp0\r %1%2%3%4%5%6%7%8%9

运行r需要java环境(1.6.0版本以上)。r用于解包,r和e联合用于打包。2)APK文件的解包

下面以解开k为例。首先把k复制到当前工作目录下(例:Test)。在DOS下打入命令kABC

这里 d 表示要解码。k是要解包的APK文件。ABC是子目录名。所有解包的文件都会放在这个子目录内。3)APK文件的打包在DOS下打入命令

k这里 b 表示要打包

ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。

k是打包后产生的新的APK文件。4)Framework框架文件

在解开APK文件时,apktool需要框架文件(k)来解码和打包。Apktool已经包含了标准的框架,所以在大多数APK文件的解包时,不需要另外提供框架文件。但是,某些制造商使用了他们自己的框架文件,为了解包,就不得不从中把框架文件(k)提取出来,然后安装到计算机。安装命令是:

k

安装后就会得到:~\apktool\framework\k5)解包、解包和签名批处理

在实际使用时,可能对多个APK文件进行处理。方便的做法是写成批处理文件。打包和签名可以一次完成。

解包批处理命令:

for%%iin(*.apk)rd%%i_%%i move_%%iModifying_Files %%iBackuped_Raw_Files @echoFile[%%i]unpackingprocessiscompleted!

打包和签名批处理命令:

for/d%%iin(*)docd.. rbModifying_Files\%%i

java

-jar

r

m

8

Modifying_Files\%%i\dist\*.apk%%i ren%%iNew%%i moveNew%%iModified_Signed_Files @echo%%iCompleterepackingandSigning! cdModifying_Files

初心哆咪怎么代理
广告垃圾箱厂家
跑得快
推荐阅读
图文聚焦