2010-11-16 91 views
233

可以查看Androidmanifest.xml文件吗?如何从APK文件查看AndroidManifest.xml?

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

如何查看Androidmanifest.xml文件?

+0

嗨 据我所知这是不可能的, 你试图得到什么信息? – 2010-11-16 06:43:54

+0

我有一个APK文件。我需要查看Androidmanifest.xml文件。因为我使用了一个框架。该APK文件也使用了相同的框架。所以我需要看看如何从APK文件中配置Androidmanifest文件。 – bharath 2010-11-16 06:48:09

+0

@Jason Rogers:AFAIK你可以查看这些信息。请参阅[this](http://stackoverflow.com/questions/4191762/how-to-view-androidmanifest-xml-from-apk-file/4191807#4191807) – 2011-02-22 12:54:17

回答

199

是的,你可以查看Android APK文件的XML文件。有这个工具:android-apktool

这是逆向工程3 党的工具,封闭的,二进制Android应用

如何做到这一点在你的Windows系统:

  1. Download apktool-install-windows-* file
  2. Download apktool-* file
  3. 解包到您的Windows目录ectory

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

apktool d HelloWorld.apk ./HelloWorld 

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

这里HelloWorld.apk是你的Android APK文件。

更多信息请参见下面的屏幕截图: alt text

+12

这很好,但我想知道如何只需查看AndroidManifest.xml而不必下载所有这些内容。它是加密还是压缩? – JohnnyLambada 2011-01-15 00:59:15

+1

** @ JohnnyLambada **:是的,您可以打开并查看它的存档工具,如:** WinRar/WinZip/7Zip **,但没有任何意义,因为它是加密形式。 – 2011-02-19 09:24:46

+0

是否可以解密,稍微改变一下(例如minSdkVersion),然后将它放回到apk中? – 2012-07-13 08:25:35

40

在这种thread,戴安娜Hackborn告诉我们,我们可以得到的信息出AndroidManifest使用AAPT的。

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

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

即使在Android应用程序中也可以做到这一点吗?另外,是否有可能获得所有的清单文件而不仅仅是版本名称? – 2014-02-23 18:17:57

237

您可以直接使用aapt l -a name.apk命令来查看manifest.xml中。

此链接可能会帮助http://elinux.org/Android_aapt

(这也将转储资源表。)

+5

aapt包含在Android SDK中,您也可以使用'--target-sdk-version'来插入清单。 – 2013-06-25 16:43:15

+0

如何解密XML只? – aelam 2013-11-28 14:47:07

+11

这是最简单的方法。我总是使用它。位于$ {ANDROID_HOME}/build-tools/[version]'forlder中的'aapt'。要打印应用程序想要使用的所有权限,请运行:'$ aapt l -a app.apk | grep android.permission' – ddmytrenko 2015-09-04 12:45:00

8

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

+1

该工具在几年内还没有更新。 Google刚刚在2016年11月发布了一个[Android二进制检测工具](http://stackoverflow.com/questions/4191762/how-to-view-androidmanifest-xml-from-apk-file/40686067#40686067)。 – 2016-11-18 21:19:43

1

这是一个古老的线程,但我想我会提到,您的手机有root用户,您可以使用root explorer应用程序直接在手机上查看它。你甚至不必提取它看。

+0

Where你能准确地看到清单吗? – barq 2016-02-08 09:28:55

30

aapt d xmltree com.package.apk AndroidManifest.xml

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

aapt(Android资产打包工具)是一款内置于Android SDK的工具。

6

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

此外,如果你想只是去检查一些PARAMS就可以了,通过他们的UI

+0

八月份在APK上工作,在11月没有在另一个工作。 – 2016-11-18 21:07:57

9

你可以使用这个命令:保存到文件AndroidManifest.txt

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

'd'是'dump'的缩写,它使得这个答案与[this one]相同(http://stackoverflow.com/questions/4191762/how-to-view-androidmanifest-xml-from-apk-file/28464940#28464940),这是超过一年前发布的。 – 2016-08-09 22:53:58

+4

是的,但是这个代码保存在文件'> AndroidManifest.txt'中。 – 2016-08-10 08:01:28

+5

差别很大!!! 111 – 2016-08-10 18:39:50

30

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

+1

最近增加了这个功能,我也想提出这个建议,除非你非常喜欢使用命令行,而且你有平台工具在您的路径设置。 – anthonymonori 2016-11-18 21:31:04

18

谷歌刚刚进行检查的APK(许多其他二进制的Android格式中)释放出跨平台的开源工具:

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

ClassyShark screenshot

0

您还可以使用我的应用程序App Detective查看您设备上安装的任何应用程序的清单文件。