有没有办法提取和查看 .apk 文件的内容?
13 回答
实际上,apk 文件只是一个 zip 存档,因此您可以尝试将文件重命名为theappname.apk.zip
并使用任何 zip 实用程序(例如 7zip)解压缩它。
文件和资源将androidmanifest.xml
被提取并可以查看,而源代码不在包中 - 只是编译的 .dex 文件(“Dalvik 可执行文件”)
虽然解压缩会显示资源,但AndroidManifest.xml
会被编码。apktool
可以——在很多其他事情中——也可以解码这个文件。
要将应用程序解码App.apk
到文件夹App
中,请运行
apktool decode App.apk App
apktool
不包含在官方 Android SDK 中,但可以使用大多数数据包存储库。
还有zzos。(完全披露:我写的)。它只反编译实际资源,而不是 dex 部分(我没有编写的baksmali在处理该部分方面做得很好)。
Zzos 比 apktool 鲜为人知,但它可以更好地处理一些 APK(反之亦然 - 稍后会详细介绍)。大多数情况下,包含自定义资源类型(不是修饰符)的 APK 在我上次检查时并未由 apktool 处理,而是由 zzos 处理。在某些情况下,zzos 处理得更好。
不利的一面是,zzos(当前版本)需要安装一些支持工具。它是用 perl 编写的(与用 Java 编写的 APKTool 相反),并使用 aapt 进行实际的反编译。它还没有反编译属性资源(APKTool 会这样做)。
名字的意思是“aapt”,Android的资源编译器,下移了一个字母。
您有几个可用的工具:
Aapt(它是 Android SDK 的一部分)
$ aapt dump badging MyApk.apk $ aapt dump permissions MyApk.apk $ aapt dump xmltree MyApk.apk
-
$ java -jar apktool.jar -q decode -f MyApk.apk -o myOutputDir
APK 查看器
-
$ dex2jar/d2j-dex2jar.sh -f MyApk.apk -o myOutputDir/MyApk.jar
-
$ ninjadroid MyApk.apk $ ninjadroid MyApk.apk --all --extract myOutputDir/
-
$ apkinfo MyApk.apk
4种打开apk文件的建议方法:
1.通过Android Studio打开apk文件(对于照片,java代码和分析大小)最好的方法
2.通过应用程序winRar,7zip等打开(只是为了看照片和......)
3.使用网站javadecompilers(用于照片和java代码)
4.使用APK工具(用于照片和java代码)
unzip my.apk
这可以从 Linux 命令行实现,因为 APK 格式只是顶部的 ZIP 文件。
有一个针对 android apks 的在线反编译器
http://www.decompileandroid.com/
从本地机器上传 apk
稍等片刻
以 zip 格式下载源代码。
解压,可以正确查看所有资源,但是所有java文件都没有正确反编译。
有关完整详细信息,请访问此答案
根据您想要提取 APK 的原因,APK Analyzer 可能就足够了。它向您显示目录和文件大小。它还显示了按包分组的方法计数,您可以深入了解这些方法计数。
APK Analyzer 内置在 Android Studio 中。您可以从顶部菜单 Build -> Analyze APK 访问它。
如果是使用 cordova 和 angularjs 开发的混合应用程序,您可以:
1)将 .apk 文件重命名为 .zip
2)提取/解压缩内容
3)在 assets 文件夹中,您将获得 www 文件夹
您还可以使用 Jadx - https://github.com/skylot/jadx。我已经使用了本页中提到的所有工具,发现 Jadx 效果最好。清单文件和其他类文件通过该工具尽可能地转换为可读格式。
PS - http://www.javadecompilers.com/apk也使用 jadx 反编译器在线完成相同的工作。如果您想取消归档单个 apk,则更简单。
干杯!
您还可以在 Android 设备本身中查看 APK 文件的内容,这对调试有很大帮助。
包括应用程序清单在内的所有文件都可以通过电子邮件、云等方式查看和共享,无需生根。应用程序可从:
https://play.google.com/store/apps/details?id=com.dasmic.android.apkpeek
免责声明:我是这个应用程序的作者。