Win10激活
Win10激活
CAD2010
CAD2010
福昕PDF套件
福昕PDF套件
虚拟光驱
虚拟光驱
360杀毒
360杀毒
360安全卫士
360安全卫士
360浏览器
360浏览器
人生日历
人生日历
2345浏览器
2345浏览器
Photoshop
Photoshop
卓易市场
卓易市场
360浏览器
360浏览器
唯品会
唯品会
QQ浏览器
QQ浏览器
搜狐视频
搜狐视频
豌豆荚
豌豆荚
应用宝
应用宝
陌陌
陌陌
360手机助手
360手机助手
UC浏览器
UC浏览器
当前位置:系统大全站>教程 > 手机应用教程 > 安卓应用APK文件的解包打包和修改教程

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

更新时间:2016-11-30 来源:本站整理 我要评论

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

1.APK文件简介

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

resources.arsc

编译后的二进制资源文件

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

该目录存放资源文件

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

下面对这些文件和目录做些基本的注释和介绍。?AndroidManifest.xml

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

classes.dex文件
 

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

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


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

 

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

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

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

2.APK文件的解包和打包
 

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

1)APKtool软件包

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

运行apktools.jar需要java环境(1.6.0版本以上)。apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。2)APK文件的解包

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

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

apktoolbABCNew-Contacts.apk这里“b”表示要打包

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

New-Contacts.apk是打包后产生的新的APK文件。4)Framework框架文件

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

apktoolifframework-res.apk

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

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

解包批处理命令:

for%%iin(*.apk)dojava-jarapktool.jard%%i_%%i&&move_%%iModifying_Files&?%%iBackuped_Raw_Files&&@echoFile[%%i]unpackingprocessiscompleted!

打包和签名批处理命令:

 

for/d%%iin(*)docd..&&java-jarapktool.jarbModifying_Files\%%i&&

java

-jar

signapk.jar

testkey.x509.pem

testkey.pk8

Modifying_Files\%%i\dist\*.apk%%i&&ren%%iNew%%i&&moveNew%%iModified_Signed_Files&&@

热门软件

电脑软件 手机软件 手机游戏 更多>
装机必备

最新 最热

//pc教程 //admin55_shidazhang