From 7252cc82a7bbda1fe14e66b895e8d0e0b594ef43 Mon Sep 17 00:00:00 2001 From: Nex Date: Mon, 30 Aug 2021 22:20:05 +0200 Subject: [PATCH] Added module to dump full output of dumpsys --- mvt/android/modules/adb/__init__.py | 3 ++- mvt/android/modules/adb/dumpsys_full.py | 35 +++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 mvt/android/modules/adb/dumpsys_full.py diff --git a/mvt/android/modules/adb/__init__.py b/mvt/android/modules/adb/__init__.py index a67939d..2784ce2 100644 --- a/mvt/android/modules/adb/__init__.py +++ b/mvt/android/modules/adb/__init__.py @@ -5,6 +5,7 @@ from .chrome_history import ChromeHistory from .dumpsys_batterystats import DumpsysBatterystats +from .dumpsys_full import DumpsysFull from .dumpsys_packages import DumpsysPackages from .dumpsys_procstats import DumpsysProcstats from .dumpsys_receivers import DumpsysReceivers @@ -18,5 +19,5 @@ from .whatsapp import Whatsapp ADB_MODULES = [ChromeHistory, SMS, Whatsapp, Processes, DumpsysBatterystats, DumpsysProcstats, - DumpsysPackages, DumpsysReceivers, + DumpsysPackages, DumpsysReceivers, DumpsysFull, Packages, RootBinaries, Logcat, Files] diff --git a/mvt/android/modules/adb/dumpsys_full.py b/mvt/android/modules/adb/dumpsys_full.py new file mode 100644 index 0000000..23311d2 --- /dev/null +++ b/mvt/android/modules/adb/dumpsys_full.py @@ -0,0 +1,35 @@ +# Mobile Verification Toolkit (MVT) +# Copyright (c) 2021 The MVT Project Authors. +# Use of this software is governed by the MVT License 1.1 that can be found at +# https://license.mvt.re/1.1/ + +import logging +import os + +from .base import AndroidExtraction + +log = logging.getLogger(__name__) + +class DumpsysFull(AndroidExtraction): + """This module extracts stats on battery consumption by processes.""" + + def __init__(self, file_path=None, base_folder=None, output_folder=None, + serial=None, fast_mode=False, log=None, results=[]): + super().__init__(file_path=file_path, base_folder=base_folder, + output_folder=output_folder, fast_mode=fast_mode, + log=log, results=results) + + def run(self): + self._adb_connect() + + stats = self._adb_command("dumpsys") + if self.output_folder: + stats_path = os.path.join(self.output_folder, + "dumpsys.txt") + with open(stats_path, "w") as handle: + handle.write(stats) + + log.info("Full dumpsys output stored at %s", + stats_path) + + self._adb_disconnect()