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


309

是否可以查看Androidmanifest.xml文件?

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

如何查看Androidmanifest.xml文件?


我有一个APK文件。我需要查看Androidmanifest.xml文件。因为我使用了一个框架。该APK文件也使用了相同的框架。因此,我需要查看如何从该APK文件配置Androidmanifest文件。
巴拉特

@Jason Rogers:AFAIK,您可以查看该信息。看到这个
Vikas Patidar'2

Answers:


220

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

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

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

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

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

apktool d HelloWorld.apk ./HelloWorld

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

HelloWorld.apk是您的Android APK文件。

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


15
很好,但是我想知道如何仅查看AndroidManifest.xml而不必下载所有这些内容。是加密还是压缩?
JohnnyLambada 2011年

1
@JohnnyLambada:是的,您可以在诸如WinRar / WinZip / 7Zip的存档工具中打开和查看它,但由于它采用加密形式,因此没有任何意义。
维卡斯·帕蒂达

9
apktool已弃用。最好参考他们的项目主页以获取最新版本。
德庆

1
我得到:线程“ main”中的异常brut.androlib.AndrolibException:多种资源:在brut.androlib.res.data.ResConfig.addResource(Unknown Source)
WindRider 2012年

3
现在命令已更改为最新版本apktool d your_destination youraApk.apk
Pranoy Sarkar

109

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


3
该功能是最近添加的,除非您热衷于使用命令行并且在路径中设置了平台工具,否则我也建议您这样做。
anthonymonori

8
这应该成为最好的答案,其他方法现在不必要地变得复杂。
塞巴斯蒂安'18

3
也有一个内置的命令行版本:stackoverflow.com/a/54874783/89818
caw

46

aapt d xmltree com.package.apk AndroidManifest.xml

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

aapt (Android资产打包工具)是Android SDK随附的内置工具。


45

Dianne Hackborn 在该线程中告诉我们,我们可以使用aapt从AndroidManifest中获取信息。

我整理了这个快速的unix命令以获取版本信息:

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

即使在Android应用程序中也可以做到吗?另外,是否可以获得所有清单文件而不仅仅是版本名称?
android开发人员

36

Google刚刚发布了一种跨平台的开源工具,用于检查APK(许多其他二进制Android格式):

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

ClassyShark屏幕截图


3
这比Apktool容易10000倍!
Guilherme Campos Hazan

18

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

/path/to/android-sdk/tools/bin/apkanalyzer manifest print /path/to/app.apk

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


8
这应该是公认的答案,因为它不需要安装任何未经验证的来源。
c4k

请注意,这似乎在Windows上不起作用:( stackoverflow.com/a/54593118/997940
Yoav Feuerstein,

我收到错误:线程“ main”中的异常java.lang.IllegalStateException:未设置tools目录属性,请确保您正在执行apkanalyzer,我不知道如何解决
jk2K

如果您使用的是macOS,这很可能是您需要的路径:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Frederik

15

您可以使用以下命令:保存到文件 AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt

2
d是的缩写dump,这使得这个答案相同的这一个,它被张贴超过去年同期。
Dan Dascalescu'8

4
是的,但是此代码保存在file中> AndroidManifest.txt
艾哈迈德·阿加莎德

大声笑,这是相同的答案,转储文件没有什么不同
Leonardo Sapuy


7

有一个在线工具可让您上载APK,然后对其进行反编译,最后使您可以下载包含所有源的zip文件,清单XML文件等反编译的文件,而无需在计算机上安装任何程序: http:/ /www.javadecompilers.com/apk

另外,如果您只想检查一些参数,可以通过其UI


8月开发了一个APK,11月没有开发另一个APK
Dan Dascalescu

apktools似乎没有为我创建带有输出的目录,并且aapt并未以XML格式显示结果。该网站的魅力十足。
kregus


5

Android SDK构建工具中包含的Aapt2可以做到这一点-无需第三方工具。

$(ANDROID_SDK)/build-tools/28.0.3/aapt2 d --file AndroidManifest.xml app-foo-release.apk

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

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

这不会输出原始的XML,但是如果我只需要查看其中的值而不必提取APK或写入临时文件,那将很方便。
拉齐尔


0

这是一个老话题,但我想我想提一下,您的手机具有root用户,您可以使用root Explorer应用程序直接在手机上查看它。您甚至不必提取它就能看到。


-1

该文件需要反编译(或不确定是否要反编译)。但这是另一种方法:

-Download free Tickle My Android tool on XDA: https://forum.xda-developers.com/showthread.php?t=1633333https://forum.xda-developers.com/showthread.php?t=1633333
-Unzip
-Copy APK into \_WorkArea1\_in\ folder
-Open "Tickle My Android.exe"
-Theming Menu
-Decompile Files->Any key to continue (ignore warning)
-Decompile Files->1->[Enter]->y[Enter]
-Wait for it to decompile in new window... Done when new window closes
-Decompiled/viewable files will be here: \_WorkArea3\_working\[App]\

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.