Мне нужно извлечь функции фильтра намерений из файлов APK, и я могу извлечь разрешение и компонент Hardware с помощью androguard, которая является библиотекой с открытым исходным кодом, и я использовал ее класс APK для извлечения функций, но для намерения фильтра возникла ошибка.
*************
filter_intent_accepted = apk.get_intent_filters()
TypeError: get_intent_filters() missing 2 required positional arguments: 'itemtype' and 'name'
Process finished with exit code 1
Я также проверил функцию, к которой они добавили комментарий.Я перепробовал все возможные аргументы, но ничего не получил.
функция:
def get_intent_filters(self, itemtype, name):
"""
Find intent filters for a given item and name.
Intent filter are attached to activities, services or receivers.
You can search for the intent filters of such items and get a dictionary of all
attached actions and intent categories.
:param itemtype: the type of parent item to look for, e.g. `activity`, `service` or `receiver`
:param name: the `android:name` of the parent item, e.g. activity name
:return: a dictionary with the keys `action` and `category` containing the `android:name` of those items
"""
d = {"action": [], "category": []}
for i in self.xml:
# TODO: this can probably be solved using a single xpath
for item in self.xml[i].findall(".//" + itemtype):
if self._format_value(item.get(NS_ANDROID + "name")) == name:
for sitem in item.findall(".//intent-filter"):
for ssitem in sitem.findall("action"):
if ssitem.get(NS_ANDROID + "name") not in d["action"]:
d["action"].append(ssitem.get(NS_ANDROID + "name"))
for ssitem in sitem.findall("category"):
if ssitem.get(NS_ANDROID + "name") not in d["category"]:
d["category"].append(ssitem.get(NS_ANDROID + "name"))
if not d["action"]:
del d["action"]
if not d["category"]:
del d["category"]
return d
Какие аргументы я должен передать функции?Я попробовал его пример определения, но я не мог понять это.заранее спасибо.