From 94fe3c90e087575d647caa3a9d9425960b869419 Mon Sep 17 00:00:00 2001 From: Nex Date: Thu, 26 Aug 2021 15:23:54 +0200 Subject: [PATCH] Added logcat modules --- mvt/android/modules/adb/__init__.py | 5 +-- mvt/android/modules/adb/logcat.py | 48 +++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 mvt/android/modules/adb/logcat.py diff --git a/mvt/android/modules/adb/__init__.py b/mvt/android/modules/adb/__init__.py index 968ec14..3f50733 100644 --- a/mvt/android/modules/adb/__init__.py +++ b/mvt/android/modules/adb/__init__.py @@ -7,14 +7,15 @@ from .chrome_history import ChromeHistory from .dumpsys_batterystats import DumpsysBatterystats from .dumpsys_packages import DumpsysPackages from .dumpsys_procstats import DumpsysProcstats +from .dumpsys_receivers import DumpsysReceivers +from .logcat import Logcat from .packages import Packages from .processes import Processes from .rootbinaries import RootBinaries from .sms import SMS from .whatsapp import Whatsapp -from .dumpsys_receivers import DumpsysReceivers ADB_MODULES = [ChromeHistory, SMS, Whatsapp, Processes, DumpsysBatterystats, DumpsysProcstats, DumpsysPackages, DumpsysReceivers, - Packages, RootBinaries] + Packages, RootBinaries, Logcat] diff --git a/mvt/android/modules/adb/logcat.py b/mvt/android/modules/adb/logcat.py new file mode 100644 index 0000000..284f6b0 --- /dev/null +++ b/mvt/android/modules/adb/logcat.py @@ -0,0 +1,48 @@ +# 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 Logcat(AndroidExtraction): + """This module extracts details on installed packages.""" + + 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() + + # Get the current logcat. + output = self._adb_command("logcat -d") + # Get the locat prior to last reboot. + last_output = self._adb_command("logcat -L") + + if self.output_folder: + logcat_path = os.path.join(self.output_folder, + "logcat.txt") + with open(logcat_path, "w") as handle: + handle.write(output) + + log.info("Current logcat logs stored at %s", + logcat_path) + + logcat_last_path = os.path.join(self.output_folder, + "logcat_last.txt") + with open(logcat_last_path, "w") as handle: + handle.write(last_output) + + log.info("Logcat logs prior to last reboot stored at %s", + logcat_last_path) + + self._adb_disconnect()