2010-08-30 116 views
74

有没有办法提取和查看.apk文件的内容?如何查看Android APK文件的内容?

+1

检出[android-apktool](http://code.google.com/p/android-apktool/)。 – Macarse 2010-08-30 10:27:43

+0

apktool已移至https://ibotpeaches.github.io/Apktool/ – Kirk 2015-05-11 18:30:31

回答

95

实际上,apk文件只是一个zip压缩文件,因此您可以尝试将文件重命名为theappname.apk.zip并使用任何zip实用程序(例如7zip)将其解压缩。

androidmanifest.xml文件和资源将被提取并且可以被看作而源代码不是在包 - 刚编译.DEX文件(“的Dalvik可执行”)

+2

在大多数Linux发行版中,您甚至不需要重命名该文件;您只需双击它,它就会打开相应的文件存档(zip)实用程序,因为文件通常由其[签名](http://en.wikipedia.org/wiki/File_format#Magic_number)标识比扩展。 – bmaupin 2012-07-02 23:06:04

+1

每当我尝试这个,我得到一个没有任何有用的内容的二进制文件 – 2015-11-08 20:11:16

8

还有zzos。 (完全披露:我写的)。它只反编译实际的资源,而不是dex部分(baksmali,我没有写,在处理这个部分方面做得非常出色)。

Zzos与apktool相比知名度要低得多,但是有些APK可以更好地处理它(反之亦然 - 稍后会介绍更多)。大多数情况下,包含自定义资源类型(非修饰符)的APK在上次检查时未由apktool处理,并且由zzos处理。还有一些情况是zzos处理得更好。

在消极的一面,zzos(当前版本)需要一些支持工具来安装。它是用perl编写的(与用Java编写的APKTool相对),并使用aapt进行实际的反编译。它也不反编译属性资源(APKTool的)。

该名称的含义是“aapt”,Android的资源编译器向下移动了一个字母。

7

虽然解压缩,就会发现资源,AndroidManifest.xml将被编码。 apktool可以在许多其他事物中解码这个文件。

要使用最为包库的可用应用程序App.apk解码成文件夹App,运行

apktool decode App.apk App 

apktool不包括在官方Android SDK,但。

1

,Android电子的APK

http://www.decompileandroid.com/

APK上传从本地机器

一个在线反编译等待某些时刻zip格式

下载源代码。

解压缩后,您可以正确查看所有资源,但所有java文件都没有正确反编译。

对于全部细节visit this answer

0

您还可以使用Jadx - https://github.com/skylot/jadx。我已经使用了本页中提到的所有工具,并发现Jadx工作得最好。清单文件和其他类文件尽可能通过此工具转换为可读格式。

PS - http://www.javadecompilers.com/apk也使用jadx反编译器在线做同样的工作。更简单,如果你想解开一个单一的apk。

干杯!

3

根据你想提取APK的原因,APK分析器可能就足够了。它显示你的目录和文件大小。它还显示按包分组的方法计数,您可以深入分析。

APK分析器内置于Android Studio。您可以从顶级菜单生成 - >分析APK来访问它。

7

它现在与Android Studio一起发货。 只要到编译/分析APK ...然后选择您的APK :)

enter image description here

0
unzip my.apk 

会做的伎俩从Linux命令行。