mirror of
https://github.com/mvt-project/mvt.git
synced 2024-06-25 22:08:55 +00:00
Catching check if root exception more grafully (closes: #5)
This commit is contained in:
parent
0bc660a2b3
commit
76e6138d77
|
@ -17,7 +17,7 @@ from adb_shell.auth.sign_pythonrsa import PythonRSASigner
|
|||
from adb_shell.exceptions import AdbCommandFailureException, DeviceAuthError
|
||||
from usb1 import USBErrorAccess, USBErrorBusy
|
||||
|
||||
from mvt.common.module import MVTModule
|
||||
from mvt.common.module import MVTModule, InsufficientPrivileges
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -105,7 +105,7 @@ class AndroidExtraction(MVTModule):
|
|||
"""Check if we have a `su` binary, otherwise raise an Exception.
|
||||
"""
|
||||
if not self._adb_check_if_root():
|
||||
raise Exception("The Android device does not seem to have a `su` binary. Cannot run this module.")
|
||||
raise InsufficientPrivileges("The Android device does not seem to have a `su` binary. Cannot run this module.")
|
||||
|
||||
def _adb_command_as_root(self, command):
|
||||
"""Execute an adb shell command.
|
||||
|
@ -120,6 +120,8 @@ class AndroidExtraction(MVTModule):
|
|||
:returns: Boolean indicating whether the file exists or not
|
||||
"""
|
||||
|
||||
# TODO: Need to support checking files without root privileges as well.
|
||||
|
||||
# Connect to the device over adb.
|
||||
self._adb_connect()
|
||||
# Check if we have root, if not raise an Exception.
|
||||
|
|
|
@ -21,6 +21,9 @@ class DatabaseNotFoundError(Exception):
|
|||
class DatabaseCorruptedError(Exception):
|
||||
pass
|
||||
|
||||
class InsufficientPrivileges(Exception):
|
||||
pass
|
||||
|
||||
class MVTModule(object):
|
||||
"""This class provides a base for all extraction modules."""
|
||||
|
||||
|
@ -150,6 +153,8 @@ def run_module(module):
|
|||
except NotImplementedError:
|
||||
module.log.exception("The run() procedure of module %s was not implemented yet!",
|
||||
module.__class__.__name__)
|
||||
except InsufficientPrivileges as e:
|
||||
module.log.info("Insufficient privileges for module %s: %s", module.__class.__name__, e)
|
||||
except DatabaseNotFoundError as e:
|
||||
module.log.info("There might be no data to extract by module %s: %s",
|
||||
module.__class__.__name__, e)
|
||||
|
|
Loading…
Reference in New Issue
Block a user