【问题标题】:Extract "permissions" from Manifest by Python通过 Python 从 Manifest 中提取“权限”
【发布时间】:2018-02-14 12:53:39
【问题描述】:

我想从 Android Manifest 文件中打印“权限”。我已经对apk进行了逆向工程并获得了Android Manifest文件,并希望使用Python提取权限。

import string
test=string.printable
f=open('AndroidManifest.xml', 'r').read()
x=""
for n in f:
    if n in test:
     x+=n
    print (x)

这是我可以用来解析 XML 文件的 Python 脚本。我怎样才能找到权限并打印它。谁能帮我解决这个问题?

【问题讨论】:

  • developer.android.com/guide/topics/manifest/manifest-intro.html。应用所需的权限由<uses-permission> 标签给出。
  • @MichaelButscher 先生,我想找到所有权限并使用 python 打印它。此处给出的代码已经打印了整个 AndroidManifest.xml 文件,但我只想打印 AndroidManifest.xml 文件中使用的权限
  • @Subhasis 我们无法为您完成这项工作。我在回答中提供了有关 ElementTree 模块的一些详细信息。
  • @AbhishekKumar 先生,我不是要求做这项工作。我只是在问我可以做到的方式。谷歌搜索后,我尝试了各种方法,但都没有奏效。这就是我来这里的原因。
  • @Subhasis 先生,请看我的回答,看看它是否有效。

标签: android python printing permissions manifest


【解决方案1】:

XML 解析是一项非常常见的任务,通过编写一个模块来完成这项工作,您只是在重新发明轮子,最终得到一个粗略的非圆形设计。

Python 为此提供了一个设计更好的圆形轮子:xml.etree.ElementTree。您可以使用此模块轻松解析 XML 文件。

import xml.etree.ElementTree as ET

root = ET.parse("AndroidManifest.xml").getroot()
permissions = root.findall("uses-permission")

for perm in permissions:
    for att in perm.attrib:
        print("{}\t:\t{}\n".format(att, perm.attrib[att]))

这将打印<uses-permission> 标签的所有属性。有关详细信息,请参阅上面的链接。

注意:有关 Manifest 文件结构的更多详细信息,请参阅App Manifest page on Android Devs

【讨论】:

  • 非常感谢先生指导我完成这件事。非常感谢您的帮助。
  • 如果有效,您可以通过单击勾选来接受此答案。
  • 我做到了,先生。感谢您的建议
猜你喜欢
  • 2016-04-26
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 2018-10-21
  • 2018-06-06
相关资源
最近更新 更多