128

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

4

13 回答 13

147

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

文件和资源将androidmanifest.xml被提取并可以查看,而源代码不在包中 - 只是编译的 .dex 文件(“Dalvik 可执行文件”)

于 2010-08-30T09:29:28.580 回答
44

它现在随 Android Studio 一起提供。只需转到Build/Analyze APK...然后选择您的 APK :)

在此处输入图像描述

于 2017-06-11T18:40:36.140 回答
17

虽然解压缩会显示资源,但AndroidManifest.xml会被编码。apktool可以——在很多其他事情中——也可以解码这个文件。

要将应用程序解码App.apk到文件夹App中,请运行

apktool decode App.apk App

apktool不包含在官方 Android SDK 中,但可以使用大多数数据包存储库。

于 2014-06-15T12:27:34.177 回答
11

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

Zzos 比 apktool 鲜为人知,但它可以更好地处理一些 APK(反之亦然 - 稍后会详细介绍)。大多数情况下,包含自定义资源类型(不是修饰符)的 APK 在我上次检查时并未由 apktool 处理,而是由 zzos 处理。在某些情况下,zzos 处理得更好。

不利的一面是,zzos(当前版本)需要安装一些支持工具。它是用 perl 编写的(与用 Java 编写的 APKTool 相反),并使用 aapt 进行实际的反编译。它还没有反编译属性资源(APKTool 会这样做)。

名字的意思是“aapt”,Android的资源编译器,下移了一个字母。

于 2012-07-08T15:31:08.220 回答
8

您有几个可用的工具:

  • Aapt(它是 Android SDK 的一部分)

    $ aapt dump badging MyApk.apk
    $ aapt dump permissions MyApk.apk
    $ aapt dump xmltree MyApk.apk
    
  • APK工具

    $ java -jar apktool.jar -q decode -f MyApk.apk -o myOutputDir
    
  • 安卓多功能工具

  • APK 查看器

  • ApkShellext

  • dex2jar

    $ dex2jar/d2j-dex2jar.sh -f MyApk.apk -o myOutputDir/MyApk.jar
    
  • 忍者机器人

    $ ninjadroid MyApk.apk
    $ ninjadroid MyApk.apk --all --extract myOutputDir/
    
  • AXML解析器

    $ apkinfo MyApk.apk
    
于 2014-01-25T01:43:28.140 回答
8

4种打开apk文件的建议方法:

1.通过Android Studio打开apk文件(对于照片,java代码和分析大小)最好的方法

在此处输入图像描述

2.通过应用程序winRar,7zip等打开(只是为了看照片和......)

3.使用网站javadecompilers(用于照片和java代码)

4.使用APK工具(用于照片和java代码)

于 2018-06-23T12:20:59.963 回答
7

unzip my.apk

这可以从 Linux 命令行实现,因为 APK 格式只是顶部的 ZIP 文件。

于 2017-10-31T08:26:01.763 回答
3

有一个针对 android apks 的在线反编译器

http://www.decompileandroid.com/

从本地机器上传 apk

稍等片刻

以 zip 格式下载源代码。

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

有关完整详细信息,请访问此答案

于 2014-12-03T06:23:30.990 回答
2

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

APK Analyzer 内置在 Android Studio 中。您可以从顶部菜单 Build -> Analyze APK 访问它。

于 2017-01-19T08:55:59.283 回答
2

如果是使用 cordova 和 angularjs 开发的混合应用程序,您可以:

1)将 .apk 文件重命名为 .zip
2)提取/解压缩内容
3)在 assets 文件夹中,您将获得 www 文件夹

于 2018-06-29T04:37:26.610 回答
1

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

PS - http://www.javadecompilers.com/apk也使用 jadx 反编译器在线完成相同的工作。如果您想取消归档单个 apk,则更简单。

干杯!

于 2016-08-11T11:30:12.410 回答
0

您还可以在 Android 设备本身中查看 APK 文件的内容,这对调试有很大帮助。

包括应用程序清单在内的所有文件都可以通过电子邮件、云等方式查看和共享,无需生根。应用程序可从:

https://play.google.com/store/apps/details?id=com.dasmic.android.apkpeek

免责声明:我是这个应用程序的作者。

于 2018-05-20T16:42:58.413 回答
0

APK扫描仪可以在PC上显示APK文件的信息。
此外,可以从 android 设备中提取 apk 文件。
并且可以链接到其他工具。(JADX-GUI,JD-GUI...)

在此处输入图像描述

于 2019-02-28T07:34:46.650 回答