mirror of
https://github.com/mvt-project/mvt.git
synced 2024-06-30 16:18:54 +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 adb_shell.exceptions import AdbCommandFailureException, DeviceAuthError
|
||||||
from usb1 import USBErrorAccess, USBErrorBusy
|
from usb1 import USBErrorAccess, USBErrorBusy
|
||||||
|
|
||||||
from mvt.common.module import MVTModule
|
from mvt.common.module import MVTModule, InsufficientPrivileges
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ class AndroidExtraction(MVTModule):
|
||||||
"""Check if we have a `su` binary, otherwise raise an Exception.
|
"""Check if we have a `su` binary, otherwise raise an Exception.
|
||||||
"""
|
"""
|
||||||
if not self._adb_check_if_root():
|
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):
|
def _adb_command_as_root(self, command):
|
||||||
"""Execute an adb shell command.
|
"""Execute an adb shell command.
|
||||||
|
@ -120,6 +120,8 @@ class AndroidExtraction(MVTModule):
|
||||||
:returns: Boolean indicating whether the file exists or not
|
: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.
|
# Connect to the device over adb.
|
||||||
self._adb_connect()
|
self._adb_connect()
|
||||||
# Check if we have root, if not raise an Exception.
|
# Check if we have root, if not raise an Exception.
|
||||||
|
|
|
@ -21,6 +21,9 @@ class DatabaseNotFoundError(Exception):
|
||||||
class DatabaseCorruptedError(Exception):
|
class DatabaseCorruptedError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class InsufficientPrivileges(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
class MVTModule(object):
|
class MVTModule(object):
|
||||||
"""This class provides a base for all extraction modules."""
|
"""This class provides a base for all extraction modules."""
|
||||||
|
|
||||||
|
@ -150,6 +153,8 @@ def run_module(module):
|
||||||
except NotImplementedError:
|
except NotImplementedError:
|
||||||
module.log.exception("The run() procedure of module %s was not implemented yet!",
|
module.log.exception("The run() procedure of module %s was not implemented yet!",
|
||||||
module.__class__.__name__)
|
module.__class__.__name__)
|
||||||
|
except InsufficientPrivileges as e:
|
||||||
|
module.log.info("Insufficient privileges for module %s: %s", module.__class.__name__, e)
|
||||||
except DatabaseNotFoundError as e:
|
except DatabaseNotFoundError as e:
|
||||||
module.log.info("There might be no data to extract by module %s: %s",
|
module.log.info("There might be no data to extract by module %s: %s",
|
||||||
module.__class__.__name__, e)
|
module.__class__.__name__, e)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user