如何从APK文件中查看AndroidManifest.xml?

bha*_*ath 292 xml android android-manifest apk aapt

有可能查看Androidmanifest.xml文件吗?

我只是将apk文件的扩展名更改为zip.该zip文件包含该Androidmanifest.xml文件.但我无法查看内容Androidmanifest.xml.它是完全加密的.

我该如何查看该Androidmanifest.xml文件?

Vik*_*dar 217

是的,您可以查看XML文件的Android APK文件.有一个工具:android-apktool

它是逆向工程第三方,封闭式二进制Android应用程序的工具

如何在Windows系统上执行此操作:

  1. 下载apktool-install-windows-*文件
  2. 下载apktool-*文件
  3. 将两者解压缩到Windows目录中

现在APK也将该文件复制到该目录中,并在命令提示符中运行以下命令:

apktool d HelloWorld.apk ./HelloWorld
Run Code Online (Sandbox Code Playgroud)

这将HelloWorld在当前目录中创建一个目录" ".在其中,您可以找到AndroidManifest.xml解密格式的文件,还可以XML"HelloWorld/res/layout"目录中找到其他文件.

HelloWorld.apk是您的Android APK文件.

有关更多信息,请参见下面的屏幕截图: 替代文字

  • 这很好,但我想知道如何只需查看AndroidManifest.xml而无需下载所有这些内容.是加密还是压缩? (14认同)
  • 不推荐使用apktool.最好参考他们的[项目主页](http://code.google.com/p/android-apktool/)获取最新版本. (8认同)
  • 现在,命令已更改为最新版本`apktool d your_destination youraApk.apk`。 (3认同)
  • **@JohnnyLambada**:是的,您可以在归档工具中打开并查看它,例如:**WinRar/WinZip/7Zip**,但它没有任何意义,因为它是加密形式。 (2认同)

Jon*_*jan 91

Android Studio现在可以显示此内容.转到Build> Analyze APK...并选择您的apk.然后你可以看到AndroidManifset文件的内容.

  • 这应该被认为是最好的答案,其他方法现在不必要地复杂化. (5认同)
  • 这个内置的还有一个命令行版本:/sf/answers/3841234841/ (4认同)
  • 最近添加了此功能,除非您热衷于使用命令行并且在路径中设置了platform-tools,否则我还是建议这样做. (2认同)
  • 什么都没发生。 (2认同)

Joh*_*ada 45

在这个帖子中,Dianne Hackborn告诉我们,我们可以使用aapt从AndroidManifest中获取信息.

我掀起了这个快速的unix命令来获取版本信息:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"
Run Code Online (Sandbox Code Playgroud)


Geo*_*Boo 43

aapt d xmltree com.package.apk AndroidManifest.xml

将从AndroidManifest.xml指定的APK 转储.它不是XML格式,但您仍然可以阅读它.

aapt (Android资产包装工具)是Android SDK附带的内置工具.


Dan*_*scu 31

谷歌刚刚发布了一个用于检查APK的跨平台开源工具(以及许多其他二进制Android格式):

ClassyShark是面向Android开发人员的独立二进制检查工具.它可以可靠地浏览任何Android可执行文件并显示重要信息,如类接口和成员,dex计数和依赖项.ClassyShark支持多种格式,包括库(.dex,.aar,.so),可执行文件(.apk,.jar,.class)和所有Android二进制XML:AndroidManifest,资源,布局等.

ClassyShark截图

  • 这比Apktool容易10000倍! (2认同)

Ahm*_*deh 13

您可以使用此命令:save to file AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt
Run Code Online (Sandbox Code Playgroud)

  • 是的,但是此代码保存在文件`> AndroidManifest.txt`中. (4认同)
  • `d` 是 `dump` 的缩写,这使得这个答案与 [this one](http://stackoverflow.com/questions/4191762/how-to-view-androidmanifest-xml-from-apk-file/ 28464940#28464940),发布于一年多以前。 (3认同)
  • 大声笑,这是相同的答案,转储文件没有区别 (2认同)
  • 这是一个更好的书面答案:我跳过了另一个,因为我认为输出将是二进制的,但在这里很明显 AndroidManifest.txt 将是人类可读的 ASCII。 (2认同)

Ami*_*deh 10

AndroidManifest.xml使用axmldec解码文件:

axmldec -o output.xml AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)

或者

axmldec -o output.xml AndroidApp.apk
Run Code Online (Sandbox Code Playgroud)


twl*_*yao 9

AXMLParserAPKParser.jar也可以做的工作,你可以看到该链接.AXMLParser

  • 该工具已经多年没有更新了。Google 刚刚于 2016 年 11 月发布了 [Android 二进制检查工具](http://stackoverflow.com/questions/4191762/how-to-view-androidmanifest-xml-from-apk-file/40686067#40686067)。 (2认同)

Bit*_*Dog 8

包含在 Android SDK 构建工具中的 Aapt2 可以执行此操作 - 无需第三方工具。

$(ANDROID_SDK)/build-tools/28.0.3/aapt2 d --file AndroidManifest.xml app-foo-release.apk
Run Code Online (Sandbox Code Playgroud)

从 build-tools v29 开始,您必须添加命令xmltree

$(ANDROID_SDK)/build-tools/29.0.3/aapt2 d xmltree --file AndroidManifest.xml app-foo-release.apk
Run Code Online (Sandbox Code Playgroud)


use*_*695 7

有一个在线工具,可以让你上传一个APK它反编译它,最后让你下载一个包含所有来源的zip,清单反编译的XML文件等,所有这一切都无需在你的计算机上安装任何程序: http:/ /www.javadecompilers.com/apk

此外,如果您希望通过他们的UI检查一些参数


caw*_*caw 7

您可以使用apkanalyzer,Android SDK附带的APK分析器的命令行版本。只需在CLI上执行以下命令:

/path/to/android-sdk/tools/bin/apkanalyzer manifest print /path/to/app.apk
Run Code Online (Sandbox Code Playgroud)

您只需要替换/path/to/android-sdk为您的Android SDK版本的正确路径以及/path/to/app.apkAPK文件的路径即可。

  • 这是可以接受的答案,因为它不需要安装任何未经验证的来源。 (3认同)
  • 我收到错误:线程“main”中出现异常 java.lang.IllegalStateException:未设置工具目录属性,请确保您正在执行 apkanalyzer,我不知道如何解决它 (3认同)