From fb8a7ca1040cdc783d414a95fa4e7e94f02d4aa1 Mon Sep 17 00:00:00 2001 From: Nex Date: Mon, 31 Jan 2022 11:30:49 +0100 Subject: [PATCH] Enforce consistency in Android modules --- mvt/android/modules/adb/dumpsys_accessibility.py | 14 ++++++++------ mvt/android/modules/adb/dumpsys_activities.py | 16 +++------------- mvt/android/modules/adb/dumpsys_receivers.py | 15 +++------------ 3 files changed, 14 insertions(+), 31 deletions(-) diff --git a/mvt/android/modules/adb/dumpsys_accessibility.py b/mvt/android/modules/adb/dumpsys_accessibility.py index 5635786..b30b33d 100644 --- a/mvt/android/modules/adb/dumpsys_accessibility.py +++ b/mvt/android/modules/adb/dumpsys_accessibility.py @@ -27,13 +27,9 @@ class DumpsysAccessibility(AndroidExtraction): self.detected.append(result) continue - def run(self): - self._adb_connect() - - stats = self._adb_command("dumpsys accessibility") - + def process_accessibility(self, output): in_services = False - for line in stats.split("\n"): + for line in output.split("\n"): if line.strip().startswith("installed services:"): in_services = True continue @@ -54,4 +50,10 @@ class DumpsysAccessibility(AndroidExtraction): log.info("Identified a total of %d accessibility services", len(self.results)) + def run(self): + self._adb_connect() + + output = self._adb_command("dumpsys accessibility") + self.process_accessibility(output) + self._adb_disconnect() diff --git a/mvt/android/modules/adb/dumpsys_activities.py b/mvt/android/modules/adb/dumpsys_activities.py index 92ade47..8d6164b 100644 --- a/mvt/android/modules/adb/dumpsys_activities.py +++ b/mvt/android/modules/adb/dumpsys_activities.py @@ -30,18 +30,11 @@ class DumpsysActivities(AndroidExtraction): self.detected.append({intent: activity}) continue - def parse_activity_resolver_table(self, data): - """Parse output of dumpsys package. - - :param data: Output of dumpsys package command. - :type data: str - - """ - + def parse_activity_resolver_table(self, output): in_activity_resolver_table = False in_non_data_actions = False intent = None - for line in data: + for line in output.split("\n"): if line.startswith("Activity Resolver Table:"): in_activity_resolver_table = True continue @@ -92,9 +85,6 @@ class DumpsysActivities(AndroidExtraction): self._adb_connect() output = self._adb_command("dumpsys package") - if not output: - return - - self.parse_activity_resolver_table(output.split("\n")) + self.parse_activity_resolver_table(output) self._adb_disconnect() diff --git a/mvt/android/modules/adb/dumpsys_receivers.py b/mvt/android/modules/adb/dumpsys_receivers.py index 8fd9f09..a762480 100644 --- a/mvt/android/modules/adb/dumpsys_receivers.py +++ b/mvt/android/modules/adb/dumpsys_receivers.py @@ -52,17 +52,11 @@ class DumpsysReceivers(AndroidExtraction): self.detected.append({intent: receiver}) continue - def parse_receiver_resolver_table(self, data): - """Parse output of dumpsys package. - - :param data: Output of dumpsys package command. - :type data: str - - """ + def parse_receiver_resolver_table(self, output): in_receiver_resolver_table = False in_non_data_actions = False intent = None - for line in data: + for line in output.split("\n"): if line.startswith("Receiver Resolver Table:"): in_receiver_resolver_table = True continue @@ -113,9 +107,6 @@ class DumpsysReceivers(AndroidExtraction): self._adb_connect() output = self._adb_command("dumpsys package") - if not output: - return - - self.parse_receiver_resolver_table(output.split("\n")) + self.parse_receiver_resolver_table(output) self._adb_disconnect()