diff --git a/Makefile b/Makefile index a9b18dd..0d4d8cc 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,39 @@ PWD = $(shell pwd) -check: - flake8 - ruff check -q . - black --check . - pytest -q +autofix: + ruff format . + ruff check --fix . +check: ruff mypy + +ruff: + ruff format --check . + ruff check -q . + +mypy: + mypy + +test: + pytest + +test-ci: + pytest -v + +install: + python3 -m pip install --upgrade -e . + +test-requirements: + python3 -m pip install --upgrade -r test-requirements.txt clean: - rm -rf $(PWD)/build $(PWD)/dist $(PWD)/mvt.egg-info + rm -rf $(PWD)/build $(PWD)/dist $(PWD)/src/mvt.egg-info dist: - python3 setup.py sdist bdist_wheel + python3 -m pip install --upgrade build + python3 -m build upload: python3 -m twine upload dist/* test-upload: python3 -m twine upload --repository testpypi dist/* - -pylint: - pylint --rcfile=setup.cfg mvt diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9b0229d --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,103 @@ +[project] +name = "mvt" +dynamic = ["version"] +authors = [ + {name = "Claudio Guarnieri", email = "nex@nex.sx"} +] +maintainers = [ + {name = "Etienne Maynier", email = "tek@randhome.io"}, + {name = "Donncha Ó Cearbhaill", email = "donncha.ocearbhaill@amnesty.org"}, + {name = "Rory Flynn", email = "rory.flynn@amnesty.org"} +] +description = "Mobile Verification Toolkit" +readme = "README.md" +keywords = ["security", "mobile", "forensics", "malware"] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Information Technology", + "Operating System :: OS Independent", + "Programming Language :: Python" +] +dependencies = [ + "click >=8.1.3", + "rich >=12.6.0", + "tld >=0.12.6", + "requests >=2.28.1", + "simplejson >=3.17.6", + "packaging >=21.3", + "appdirs >=1.4.4", + "iOSbackup >=0.9.923", + "adb-shell >=0.4.3", + "libusb1 >=3.0.0", + "cryptography >=42.0.5", + "pyyaml >=6.0", + "pyahocorasick >= 2.0.0", +] +requires-python = ">= 3.8" + +[project.urls] +homepage = "https://docs.mvt.re/en/latest/" +repository = "https://github.com/mvt-project/mvt" + +[project.scripts] + mvt-ios = "mvt.ios:cli" + mvt-android = "mvt.android:cli" + +[build-system] +requires = ["setuptools>=61.0"] +build-backend = "setuptools.build_meta" + +[tool.coverage.run] +omit = [ + "tests/*", +] + +[tool.coverage.html] +directory= "htmlcov" + +[tool.mypy] +install_types = true +non_interactive = true +ignore_missing_imports = true +packages = "src" + +[tool.pytest.ini_options] +addopts = "-ra -q --cov=./src/mvt --cov-report html" +testpaths = [ + "tests" +] + +[tool.ruff.lint] +select = ["C90", "E", "F", "W"] # flake8 default set +ignore = [ + "E501", # don't enforce line length violations + "C901", # complex-structure + + # These were previously ignored but don't seem to be required: + # "E265", # no-space-after-block-comment + # "F401", # unused-import + # "E127", # not included in ruff + # "W503", # not included in ruff + # "E226", # missing-whitespace-around-arithmetic-operator + # "E203", # whitespace-before-punctuation +] + +[tool.ruff.lint.per-file-ignores] +"__init__.py" = ["F401"] # unused-import + +[tool.ruff.lint.mccabe] +max-complexity = 10 + +[tool.setuptools] +include-package-data = true +package-dir = {"" = "src"} + + +[tool.setuptools.packages.find] +where = ["src"] + +[tool.setuptools.package-data] +mvt = ["ios/data/*.json"] + +[tool.setuptools.dynamic] +version = {attr = "mvt.common.version.MVT_VERSION"} \ No newline at end of file diff --git a/ruff.toml b/ruff.toml deleted file mode 100644 index ffb51b0..0000000 --- a/ruff.toml +++ /dev/null @@ -1,6 +0,0 @@ -# Never enforce `E501` (line length violations). -ignore = ["E501"] - -# Ignore `E402` (import violations) in all `__init__.py` files, and in `path/to/file.py`. -[per-file-ignores] -"__init__.py" = ["F401"] diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index d3325f1..0000000 --- a/setup.cfg +++ /dev/null @@ -1,96 +0,0 @@ -[metadata] -name = mvt -version = attr: mvt.common.version.MVT_VERSION -author = Claudio Guarnieri -author_email = nex@nex.sx -description = Mobile Verification Toolkit -long_description = file: README.md -long_description_content_type = text/markdown -url = https://github.com/mvt-project/mvt -keywords = security, mobile, forensics, malware -license = MVT v1.1 -classifiers = - Development Status :: 5 - Production/Stable - Intended Audience :: Information Technology - Operating System :: OS Independent - Programming Language :: Python - -[options] -packages = find: -package_dir = = ./ -include_package_data = True -python_requires = >= 3.8 -install_requires = - click >=8.1.3 - rich >=12.6.0 - tld >=0.12.6 - requests >=2.28.1 - simplejson >=3.17.6 - packaging >=21.3 - appdirs >=1.4.4 - iOSbackup >=0.9.923 - adb-shell >=0.4.3 - libusb1 >=3.0.0 - cryptography >=42.0.5 - pyyaml >=6.0 - pyahocorasick >= 2.0.0 - -[options.packages.find] -where = ./ - -[options.entry_points] -console_scripts = - mvt-ios = mvt.ios:cli - mvt-android = mvt.android:cli - -[options.package_data] -mvt = ios/data/*.json - -[flake8] -max-complexity = 10 -max-line-length = 1000 -ignore = - C901, - E265, - F401, - E127, - W503, - E226, - E203 - -[pylint] -score = no -reports = no -output-format = colorized - -max-locals = 25 -max-args = 10 - -good-names = i,m - -min-similarity-lines = 10 -ignore-comments = yes -ignore-docstrings = yes -ignore-imports = yes - -ignored-argument-names=args|kwargs - -# https://pylint.pycqa.org/en/stable/technical_reference/features.html -disable = - too-many-instance-attributes, - broad-except, - abstract-method, - dangerous-default-value, - too-few-public-methods, - missing-docstring, - missing-module-docstring, - missing-class-docstring, - missing-function-docstring, - #duplicate-code, - #line-too-long, - -[mypy] -ignore_missing_imports = True - -[isort] -profile=black diff --git a/setup.py b/setup.py deleted file mode 100755 index 8447368..0000000 --- a/setup.py +++ /dev/null @@ -1,8 +0,0 @@ -# Mobile Verification Toolkit (MVT) -# Copyright (c) 2021-2023 The MVT Authors. -# Use of this software is governed by the MVT License 1.1 that can be found at -# https://license.mvt.re/1.1/ - -from setuptools import setup - -setup() diff --git a/mvt/__init__.py b/src/mvt/__init__.py similarity index 100% rename from mvt/__init__.py rename to src/mvt/__init__.py diff --git a/mvt/android/__init__.py b/src/mvt/android/__init__.py similarity index 100% rename from mvt/android/__init__.py rename to src/mvt/android/__init__.py diff --git a/mvt/android/artifacts/__init__.py b/src/mvt/android/artifacts/__init__.py similarity index 100% rename from mvt/android/artifacts/__init__.py rename to src/mvt/android/artifacts/__init__.py diff --git a/mvt/android/artifacts/artifact.py b/src/mvt/android/artifacts/artifact.py similarity index 100% rename from mvt/android/artifacts/artifact.py rename to src/mvt/android/artifacts/artifact.py diff --git a/mvt/android/artifacts/dumpsys_accessibility.py b/src/mvt/android/artifacts/dumpsys_accessibility.py similarity index 100% rename from mvt/android/artifacts/dumpsys_accessibility.py rename to src/mvt/android/artifacts/dumpsys_accessibility.py diff --git a/mvt/android/artifacts/dumpsys_appops.py b/src/mvt/android/artifacts/dumpsys_appops.py similarity index 100% rename from mvt/android/artifacts/dumpsys_appops.py rename to src/mvt/android/artifacts/dumpsys_appops.py diff --git a/mvt/android/artifacts/dumpsys_battery_daily.py b/src/mvt/android/artifacts/dumpsys_battery_daily.py similarity index 100% rename from mvt/android/artifacts/dumpsys_battery_daily.py rename to src/mvt/android/artifacts/dumpsys_battery_daily.py diff --git a/mvt/android/artifacts/dumpsys_battery_history.py b/src/mvt/android/artifacts/dumpsys_battery_history.py similarity index 100% rename from mvt/android/artifacts/dumpsys_battery_history.py rename to src/mvt/android/artifacts/dumpsys_battery_history.py diff --git a/mvt/android/artifacts/dumpsys_dbinfo.py b/src/mvt/android/artifacts/dumpsys_dbinfo.py similarity index 100% rename from mvt/android/artifacts/dumpsys_dbinfo.py rename to src/mvt/android/artifacts/dumpsys_dbinfo.py diff --git a/mvt/android/artifacts/dumpsys_package_activities.py b/src/mvt/android/artifacts/dumpsys_package_activities.py similarity index 100% rename from mvt/android/artifacts/dumpsys_package_activities.py rename to src/mvt/android/artifacts/dumpsys_package_activities.py diff --git a/mvt/android/artifacts/dumpsys_packages.py b/src/mvt/android/artifacts/dumpsys_packages.py similarity index 100% rename from mvt/android/artifacts/dumpsys_packages.py rename to src/mvt/android/artifacts/dumpsys_packages.py diff --git a/mvt/android/artifacts/dumpsys_receivers.py b/src/mvt/android/artifacts/dumpsys_receivers.py similarity index 100% rename from mvt/android/artifacts/dumpsys_receivers.py rename to src/mvt/android/artifacts/dumpsys_receivers.py diff --git a/mvt/android/artifacts/getprop.py b/src/mvt/android/artifacts/getprop.py similarity index 100% rename from mvt/android/artifacts/getprop.py rename to src/mvt/android/artifacts/getprop.py diff --git a/mvt/android/artifacts/processes.py b/src/mvt/android/artifacts/processes.py similarity index 100% rename from mvt/android/artifacts/processes.py rename to src/mvt/android/artifacts/processes.py diff --git a/mvt/android/artifacts/settings.py b/src/mvt/android/artifacts/settings.py similarity index 100% rename from mvt/android/artifacts/settings.py rename to src/mvt/android/artifacts/settings.py diff --git a/mvt/android/cli.py b/src/mvt/android/cli.py similarity index 100% rename from mvt/android/cli.py rename to src/mvt/android/cli.py diff --git a/mvt/android/cmd_check_adb.py b/src/mvt/android/cmd_check_adb.py similarity index 100% rename from mvt/android/cmd_check_adb.py rename to src/mvt/android/cmd_check_adb.py diff --git a/mvt/android/cmd_check_androidqf.py b/src/mvt/android/cmd_check_androidqf.py similarity index 100% rename from mvt/android/cmd_check_androidqf.py rename to src/mvt/android/cmd_check_androidqf.py diff --git a/mvt/android/cmd_check_backup.py b/src/mvt/android/cmd_check_backup.py similarity index 100% rename from mvt/android/cmd_check_backup.py rename to src/mvt/android/cmd_check_backup.py diff --git a/mvt/android/cmd_check_bugreport.py b/src/mvt/android/cmd_check_bugreport.py similarity index 100% rename from mvt/android/cmd_check_bugreport.py rename to src/mvt/android/cmd_check_bugreport.py diff --git a/mvt/android/cmd_download_apks.py b/src/mvt/android/cmd_download_apks.py similarity index 100% rename from mvt/android/cmd_download_apks.py rename to src/mvt/android/cmd_download_apks.py diff --git a/mvt/android/modules/__init__.py b/src/mvt/android/modules/__init__.py similarity index 100% rename from mvt/android/modules/__init__.py rename to src/mvt/android/modules/__init__.py diff --git a/mvt/android/modules/adb/__init__.py b/src/mvt/android/modules/adb/__init__.py similarity index 100% rename from mvt/android/modules/adb/__init__.py rename to src/mvt/android/modules/adb/__init__.py diff --git a/mvt/android/modules/adb/base.py b/src/mvt/android/modules/adb/base.py similarity index 100% rename from mvt/android/modules/adb/base.py rename to src/mvt/android/modules/adb/base.py diff --git a/mvt/android/modules/adb/chrome_history.py b/src/mvt/android/modules/adb/chrome_history.py similarity index 100% rename from mvt/android/modules/adb/chrome_history.py rename to src/mvt/android/modules/adb/chrome_history.py diff --git a/mvt/android/modules/adb/dumpsys_accessibility.py b/src/mvt/android/modules/adb/dumpsys_accessibility.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_accessibility.py rename to src/mvt/android/modules/adb/dumpsys_accessibility.py diff --git a/mvt/android/modules/adb/dumpsys_activities.py b/src/mvt/android/modules/adb/dumpsys_activities.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_activities.py rename to src/mvt/android/modules/adb/dumpsys_activities.py diff --git a/mvt/android/modules/adb/dumpsys_appops.py b/src/mvt/android/modules/adb/dumpsys_appops.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_appops.py rename to src/mvt/android/modules/adb/dumpsys_appops.py diff --git a/mvt/android/modules/adb/dumpsys_battery_daily.py b/src/mvt/android/modules/adb/dumpsys_battery_daily.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_battery_daily.py rename to src/mvt/android/modules/adb/dumpsys_battery_daily.py diff --git a/mvt/android/modules/adb/dumpsys_battery_history.py b/src/mvt/android/modules/adb/dumpsys_battery_history.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_battery_history.py rename to src/mvt/android/modules/adb/dumpsys_battery_history.py diff --git a/mvt/android/modules/adb/dumpsys_dbinfo.py b/src/mvt/android/modules/adb/dumpsys_dbinfo.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_dbinfo.py rename to src/mvt/android/modules/adb/dumpsys_dbinfo.py diff --git a/mvt/android/modules/adb/dumpsys_full.py b/src/mvt/android/modules/adb/dumpsys_full.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_full.py rename to src/mvt/android/modules/adb/dumpsys_full.py diff --git a/mvt/android/modules/adb/dumpsys_receivers.py b/src/mvt/android/modules/adb/dumpsys_receivers.py similarity index 100% rename from mvt/android/modules/adb/dumpsys_receivers.py rename to src/mvt/android/modules/adb/dumpsys_receivers.py diff --git a/mvt/android/modules/adb/files.py b/src/mvt/android/modules/adb/files.py similarity index 100% rename from mvt/android/modules/adb/files.py rename to src/mvt/android/modules/adb/files.py diff --git a/mvt/android/modules/adb/getprop.py b/src/mvt/android/modules/adb/getprop.py similarity index 100% rename from mvt/android/modules/adb/getprop.py rename to src/mvt/android/modules/adb/getprop.py diff --git a/mvt/android/modules/adb/logcat.py b/src/mvt/android/modules/adb/logcat.py similarity index 100% rename from mvt/android/modules/adb/logcat.py rename to src/mvt/android/modules/adb/logcat.py diff --git a/mvt/android/modules/adb/packages.py b/src/mvt/android/modules/adb/packages.py similarity index 100% rename from mvt/android/modules/adb/packages.py rename to src/mvt/android/modules/adb/packages.py diff --git a/mvt/android/modules/adb/processes.py b/src/mvt/android/modules/adb/processes.py similarity index 100% rename from mvt/android/modules/adb/processes.py rename to src/mvt/android/modules/adb/processes.py diff --git a/mvt/android/modules/adb/root_binaries.py b/src/mvt/android/modules/adb/root_binaries.py similarity index 100% rename from mvt/android/modules/adb/root_binaries.py rename to src/mvt/android/modules/adb/root_binaries.py diff --git a/mvt/android/modules/adb/selinux_status.py b/src/mvt/android/modules/adb/selinux_status.py similarity index 100% rename from mvt/android/modules/adb/selinux_status.py rename to src/mvt/android/modules/adb/selinux_status.py diff --git a/mvt/android/modules/adb/settings.py b/src/mvt/android/modules/adb/settings.py similarity index 100% rename from mvt/android/modules/adb/settings.py rename to src/mvt/android/modules/adb/settings.py diff --git a/mvt/android/modules/adb/sms.py b/src/mvt/android/modules/adb/sms.py similarity index 100% rename from mvt/android/modules/adb/sms.py rename to src/mvt/android/modules/adb/sms.py diff --git a/mvt/android/modules/adb/whatsapp.py b/src/mvt/android/modules/adb/whatsapp.py similarity index 100% rename from mvt/android/modules/adb/whatsapp.py rename to src/mvt/android/modules/adb/whatsapp.py diff --git a/mvt/android/modules/androidqf/__init__.py b/src/mvt/android/modules/androidqf/__init__.py similarity index 100% rename from mvt/android/modules/androidqf/__init__.py rename to src/mvt/android/modules/androidqf/__init__.py diff --git a/mvt/android/modules/androidqf/base.py b/src/mvt/android/modules/androidqf/base.py similarity index 100% rename from mvt/android/modules/androidqf/base.py rename to src/mvt/android/modules/androidqf/base.py diff --git a/mvt/android/modules/androidqf/dumpsys_accessibility.py b/src/mvt/android/modules/androidqf/dumpsys_accessibility.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_accessibility.py rename to src/mvt/android/modules/androidqf/dumpsys_accessibility.py diff --git a/mvt/android/modules/androidqf/dumpsys_activities.py b/src/mvt/android/modules/androidqf/dumpsys_activities.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_activities.py rename to src/mvt/android/modules/androidqf/dumpsys_activities.py diff --git a/mvt/android/modules/androidqf/dumpsys_appops.py b/src/mvt/android/modules/androidqf/dumpsys_appops.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_appops.py rename to src/mvt/android/modules/androidqf/dumpsys_appops.py diff --git a/mvt/android/modules/androidqf/dumpsys_battery_daily.py b/src/mvt/android/modules/androidqf/dumpsys_battery_daily.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_battery_daily.py rename to src/mvt/android/modules/androidqf/dumpsys_battery_daily.py diff --git a/mvt/android/modules/androidqf/dumpsys_battery_history.py b/src/mvt/android/modules/androidqf/dumpsys_battery_history.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_battery_history.py rename to src/mvt/android/modules/androidqf/dumpsys_battery_history.py diff --git a/mvt/android/modules/androidqf/dumpsys_dbinfo.py b/src/mvt/android/modules/androidqf/dumpsys_dbinfo.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_dbinfo.py rename to src/mvt/android/modules/androidqf/dumpsys_dbinfo.py diff --git a/mvt/android/modules/androidqf/dumpsys_packages.py b/src/mvt/android/modules/androidqf/dumpsys_packages.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_packages.py rename to src/mvt/android/modules/androidqf/dumpsys_packages.py diff --git a/mvt/android/modules/androidqf/dumpsys_receivers.py b/src/mvt/android/modules/androidqf/dumpsys_receivers.py similarity index 100% rename from mvt/android/modules/androidqf/dumpsys_receivers.py rename to src/mvt/android/modules/androidqf/dumpsys_receivers.py diff --git a/mvt/android/modules/androidqf/getprop.py b/src/mvt/android/modules/androidqf/getprop.py similarity index 100% rename from mvt/android/modules/androidqf/getprop.py rename to src/mvt/android/modules/androidqf/getprop.py diff --git a/mvt/android/modules/androidqf/packages.py b/src/mvt/android/modules/androidqf/packages.py similarity index 100% rename from mvt/android/modules/androidqf/packages.py rename to src/mvt/android/modules/androidqf/packages.py diff --git a/mvt/android/modules/androidqf/processes.py b/src/mvt/android/modules/androidqf/processes.py similarity index 100% rename from mvt/android/modules/androidqf/processes.py rename to src/mvt/android/modules/androidqf/processes.py diff --git a/mvt/android/modules/androidqf/settings.py b/src/mvt/android/modules/androidqf/settings.py similarity index 100% rename from mvt/android/modules/androidqf/settings.py rename to src/mvt/android/modules/androidqf/settings.py diff --git a/mvt/android/modules/androidqf/sms.py b/src/mvt/android/modules/androidqf/sms.py similarity index 100% rename from mvt/android/modules/androidqf/sms.py rename to src/mvt/android/modules/androidqf/sms.py diff --git a/mvt/android/modules/backup/__init__.py b/src/mvt/android/modules/backup/__init__.py similarity index 100% rename from mvt/android/modules/backup/__init__.py rename to src/mvt/android/modules/backup/__init__.py diff --git a/mvt/android/modules/backup/base.py b/src/mvt/android/modules/backup/base.py similarity index 100% rename from mvt/android/modules/backup/base.py rename to src/mvt/android/modules/backup/base.py diff --git a/mvt/android/modules/backup/helpers.py b/src/mvt/android/modules/backup/helpers.py similarity index 100% rename from mvt/android/modules/backup/helpers.py rename to src/mvt/android/modules/backup/helpers.py diff --git a/mvt/android/modules/backup/sms.py b/src/mvt/android/modules/backup/sms.py similarity index 100% rename from mvt/android/modules/backup/sms.py rename to src/mvt/android/modules/backup/sms.py diff --git a/mvt/android/modules/bugreport/__init__.py b/src/mvt/android/modules/bugreport/__init__.py similarity index 100% rename from mvt/android/modules/bugreport/__init__.py rename to src/mvt/android/modules/bugreport/__init__.py diff --git a/mvt/android/modules/bugreport/accessibility.py b/src/mvt/android/modules/bugreport/accessibility.py similarity index 100% rename from mvt/android/modules/bugreport/accessibility.py rename to src/mvt/android/modules/bugreport/accessibility.py diff --git a/mvt/android/modules/bugreport/activities.py b/src/mvt/android/modules/bugreport/activities.py similarity index 100% rename from mvt/android/modules/bugreport/activities.py rename to src/mvt/android/modules/bugreport/activities.py diff --git a/mvt/android/modules/bugreport/appops.py b/src/mvt/android/modules/bugreport/appops.py similarity index 100% rename from mvt/android/modules/bugreport/appops.py rename to src/mvt/android/modules/bugreport/appops.py diff --git a/mvt/android/modules/bugreport/base.py b/src/mvt/android/modules/bugreport/base.py similarity index 100% rename from mvt/android/modules/bugreport/base.py rename to src/mvt/android/modules/bugreport/base.py diff --git a/mvt/android/modules/bugreport/battery_daily.py b/src/mvt/android/modules/bugreport/battery_daily.py similarity index 100% rename from mvt/android/modules/bugreport/battery_daily.py rename to src/mvt/android/modules/bugreport/battery_daily.py diff --git a/mvt/android/modules/bugreport/battery_history.py b/src/mvt/android/modules/bugreport/battery_history.py similarity index 100% rename from mvt/android/modules/bugreport/battery_history.py rename to src/mvt/android/modules/bugreport/battery_history.py diff --git a/mvt/android/modules/bugreport/dbinfo.py b/src/mvt/android/modules/bugreport/dbinfo.py similarity index 100% rename from mvt/android/modules/bugreport/dbinfo.py rename to src/mvt/android/modules/bugreport/dbinfo.py diff --git a/mvt/android/modules/bugreport/getprop.py b/src/mvt/android/modules/bugreport/getprop.py similarity index 100% rename from mvt/android/modules/bugreport/getprop.py rename to src/mvt/android/modules/bugreport/getprop.py diff --git a/mvt/android/modules/bugreport/packages.py b/src/mvt/android/modules/bugreport/packages.py similarity index 100% rename from mvt/android/modules/bugreport/packages.py rename to src/mvt/android/modules/bugreport/packages.py diff --git a/mvt/android/modules/bugreport/receivers.py b/src/mvt/android/modules/bugreport/receivers.py similarity index 100% rename from mvt/android/modules/bugreport/receivers.py rename to src/mvt/android/modules/bugreport/receivers.py diff --git a/mvt/android/parsers/__init__.py b/src/mvt/android/parsers/__init__.py similarity index 100% rename from mvt/android/parsers/__init__.py rename to src/mvt/android/parsers/__init__.py diff --git a/mvt/android/parsers/backup.py b/src/mvt/android/parsers/backup.py similarity index 100% rename from mvt/android/parsers/backup.py rename to src/mvt/android/parsers/backup.py diff --git a/mvt/android/utils.py b/src/mvt/android/utils.py similarity index 100% rename from mvt/android/utils.py rename to src/mvt/android/utils.py diff --git a/mvt/common/__init__.py b/src/mvt/common/__init__.py similarity index 100% rename from mvt/common/__init__.py rename to src/mvt/common/__init__.py diff --git a/mvt/common/artifact.py b/src/mvt/common/artifact.py similarity index 100% rename from mvt/common/artifact.py rename to src/mvt/common/artifact.py diff --git a/mvt/common/cmd_check_iocs.py b/src/mvt/common/cmd_check_iocs.py similarity index 100% rename from mvt/common/cmd_check_iocs.py rename to src/mvt/common/cmd_check_iocs.py diff --git a/mvt/common/command.py b/src/mvt/common/command.py similarity index 100% rename from mvt/common/command.py rename to src/mvt/common/command.py diff --git a/mvt/common/help.py b/src/mvt/common/help.py similarity index 100% rename from mvt/common/help.py rename to src/mvt/common/help.py diff --git a/mvt/common/indicators.py b/src/mvt/common/indicators.py similarity index 100% rename from mvt/common/indicators.py rename to src/mvt/common/indicators.py diff --git a/mvt/common/logo.py b/src/mvt/common/logo.py similarity index 100% rename from mvt/common/logo.py rename to src/mvt/common/logo.py diff --git a/mvt/common/module.py b/src/mvt/common/module.py similarity index 100% rename from mvt/common/module.py rename to src/mvt/common/module.py diff --git a/mvt/common/options.py b/src/mvt/common/options.py similarity index 100% rename from mvt/common/options.py rename to src/mvt/common/options.py diff --git a/mvt/common/updates.py b/src/mvt/common/updates.py similarity index 100% rename from mvt/common/updates.py rename to src/mvt/common/updates.py diff --git a/mvt/common/url.py b/src/mvt/common/url.py similarity index 100% rename from mvt/common/url.py rename to src/mvt/common/url.py diff --git a/mvt/common/utils.py b/src/mvt/common/utils.py similarity index 100% rename from mvt/common/utils.py rename to src/mvt/common/utils.py diff --git a/mvt/common/version.py b/src/mvt/common/version.py similarity index 100% rename from mvt/common/version.py rename to src/mvt/common/version.py diff --git a/mvt/common/virustotal.py b/src/mvt/common/virustotal.py similarity index 100% rename from mvt/common/virustotal.py rename to src/mvt/common/virustotal.py diff --git a/mvt/ios/__init__.py b/src/mvt/ios/__init__.py similarity index 100% rename from mvt/ios/__init__.py rename to src/mvt/ios/__init__.py diff --git a/mvt/ios/cli.py b/src/mvt/ios/cli.py similarity index 100% rename from mvt/ios/cli.py rename to src/mvt/ios/cli.py diff --git a/mvt/ios/cmd_check_backup.py b/src/mvt/ios/cmd_check_backup.py similarity index 100% rename from mvt/ios/cmd_check_backup.py rename to src/mvt/ios/cmd_check_backup.py diff --git a/mvt/ios/cmd_check_fs.py b/src/mvt/ios/cmd_check_fs.py similarity index 100% rename from mvt/ios/cmd_check_fs.py rename to src/mvt/ios/cmd_check_fs.py diff --git a/mvt/ios/data/ios_models.json b/src/mvt/ios/data/ios_models.json similarity index 100% rename from mvt/ios/data/ios_models.json rename to src/mvt/ios/data/ios_models.json diff --git a/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json similarity index 100% rename from mvt/ios/data/ios_versions.json rename to src/mvt/ios/data/ios_versions.json diff --git a/mvt/ios/decrypt.py b/src/mvt/ios/decrypt.py similarity index 100% rename from mvt/ios/decrypt.py rename to src/mvt/ios/decrypt.py diff --git a/mvt/ios/modules/__init__.py b/src/mvt/ios/modules/__init__.py similarity index 100% rename from mvt/ios/modules/__init__.py rename to src/mvt/ios/modules/__init__.py diff --git a/mvt/ios/modules/backup/__init__.py b/src/mvt/ios/modules/backup/__init__.py similarity index 100% rename from mvt/ios/modules/backup/__init__.py rename to src/mvt/ios/modules/backup/__init__.py diff --git a/mvt/ios/modules/backup/backup_info.py b/src/mvt/ios/modules/backup/backup_info.py similarity index 100% rename from mvt/ios/modules/backup/backup_info.py rename to src/mvt/ios/modules/backup/backup_info.py diff --git a/mvt/ios/modules/backup/configuration_profiles.py b/src/mvt/ios/modules/backup/configuration_profiles.py similarity index 100% rename from mvt/ios/modules/backup/configuration_profiles.py rename to src/mvt/ios/modules/backup/configuration_profiles.py diff --git a/mvt/ios/modules/backup/manifest.py b/src/mvt/ios/modules/backup/manifest.py similarity index 100% rename from mvt/ios/modules/backup/manifest.py rename to src/mvt/ios/modules/backup/manifest.py diff --git a/mvt/ios/modules/backup/profile_events.py b/src/mvt/ios/modules/backup/profile_events.py similarity index 100% rename from mvt/ios/modules/backup/profile_events.py rename to src/mvt/ios/modules/backup/profile_events.py diff --git a/mvt/ios/modules/base.py b/src/mvt/ios/modules/base.py similarity index 100% rename from mvt/ios/modules/base.py rename to src/mvt/ios/modules/base.py diff --git a/mvt/ios/modules/fs/__init__.py b/src/mvt/ios/modules/fs/__init__.py similarity index 100% rename from mvt/ios/modules/fs/__init__.py rename to src/mvt/ios/modules/fs/__init__.py diff --git a/mvt/ios/modules/fs/analytics.py b/src/mvt/ios/modules/fs/analytics.py similarity index 100% rename from mvt/ios/modules/fs/analytics.py rename to src/mvt/ios/modules/fs/analytics.py diff --git a/mvt/ios/modules/fs/analytics_ios_versions.py b/src/mvt/ios/modules/fs/analytics_ios_versions.py similarity index 100% rename from mvt/ios/modules/fs/analytics_ios_versions.py rename to src/mvt/ios/modules/fs/analytics_ios_versions.py diff --git a/mvt/ios/modules/fs/cache_files.py b/src/mvt/ios/modules/fs/cache_files.py similarity index 100% rename from mvt/ios/modules/fs/cache_files.py rename to src/mvt/ios/modules/fs/cache_files.py diff --git a/mvt/ios/modules/fs/filesystem.py b/src/mvt/ios/modules/fs/filesystem.py similarity index 100% rename from mvt/ios/modules/fs/filesystem.py rename to src/mvt/ios/modules/fs/filesystem.py diff --git a/mvt/ios/modules/fs/net_netusage.py b/src/mvt/ios/modules/fs/net_netusage.py similarity index 100% rename from mvt/ios/modules/fs/net_netusage.py rename to src/mvt/ios/modules/fs/net_netusage.py diff --git a/mvt/ios/modules/fs/safari_favicon.py b/src/mvt/ios/modules/fs/safari_favicon.py similarity index 100% rename from mvt/ios/modules/fs/safari_favicon.py rename to src/mvt/ios/modules/fs/safari_favicon.py diff --git a/mvt/ios/modules/fs/shutdownlog.py b/src/mvt/ios/modules/fs/shutdownlog.py similarity index 100% rename from mvt/ios/modules/fs/shutdownlog.py rename to src/mvt/ios/modules/fs/shutdownlog.py diff --git a/mvt/ios/modules/fs/version_history.py b/src/mvt/ios/modules/fs/version_history.py similarity index 100% rename from mvt/ios/modules/fs/version_history.py rename to src/mvt/ios/modules/fs/version_history.py diff --git a/mvt/ios/modules/fs/webkit_base.py b/src/mvt/ios/modules/fs/webkit_base.py similarity index 100% rename from mvt/ios/modules/fs/webkit_base.py rename to src/mvt/ios/modules/fs/webkit_base.py diff --git a/mvt/ios/modules/fs/webkit_indexeddb.py b/src/mvt/ios/modules/fs/webkit_indexeddb.py similarity index 100% rename from mvt/ios/modules/fs/webkit_indexeddb.py rename to src/mvt/ios/modules/fs/webkit_indexeddb.py diff --git a/mvt/ios/modules/fs/webkit_localstorage.py b/src/mvt/ios/modules/fs/webkit_localstorage.py similarity index 100% rename from mvt/ios/modules/fs/webkit_localstorage.py rename to src/mvt/ios/modules/fs/webkit_localstorage.py diff --git a/mvt/ios/modules/fs/webkit_safariviewservice.py b/src/mvt/ios/modules/fs/webkit_safariviewservice.py similarity index 100% rename from mvt/ios/modules/fs/webkit_safariviewservice.py rename to src/mvt/ios/modules/fs/webkit_safariviewservice.py diff --git a/mvt/ios/modules/mixed/__init__.py b/src/mvt/ios/modules/mixed/__init__.py similarity index 100% rename from mvt/ios/modules/mixed/__init__.py rename to src/mvt/ios/modules/mixed/__init__.py diff --git a/mvt/ios/modules/mixed/applications.py b/src/mvt/ios/modules/mixed/applications.py similarity index 100% rename from mvt/ios/modules/mixed/applications.py rename to src/mvt/ios/modules/mixed/applications.py diff --git a/mvt/ios/modules/mixed/calendar.py b/src/mvt/ios/modules/mixed/calendar.py similarity index 100% rename from mvt/ios/modules/mixed/calendar.py rename to src/mvt/ios/modules/mixed/calendar.py diff --git a/mvt/ios/modules/mixed/calls.py b/src/mvt/ios/modules/mixed/calls.py similarity index 100% rename from mvt/ios/modules/mixed/calls.py rename to src/mvt/ios/modules/mixed/calls.py diff --git a/mvt/ios/modules/mixed/chrome_favicon.py b/src/mvt/ios/modules/mixed/chrome_favicon.py similarity index 100% rename from mvt/ios/modules/mixed/chrome_favicon.py rename to src/mvt/ios/modules/mixed/chrome_favicon.py diff --git a/mvt/ios/modules/mixed/chrome_history.py b/src/mvt/ios/modules/mixed/chrome_history.py similarity index 100% rename from mvt/ios/modules/mixed/chrome_history.py rename to src/mvt/ios/modules/mixed/chrome_history.py diff --git a/mvt/ios/modules/mixed/contacts.py b/src/mvt/ios/modules/mixed/contacts.py similarity index 100% rename from mvt/ios/modules/mixed/contacts.py rename to src/mvt/ios/modules/mixed/contacts.py diff --git a/mvt/ios/modules/mixed/firefox_favicon.py b/src/mvt/ios/modules/mixed/firefox_favicon.py similarity index 100% rename from mvt/ios/modules/mixed/firefox_favicon.py rename to src/mvt/ios/modules/mixed/firefox_favicon.py diff --git a/mvt/ios/modules/mixed/firefox_history.py b/src/mvt/ios/modules/mixed/firefox_history.py similarity index 100% rename from mvt/ios/modules/mixed/firefox_history.py rename to src/mvt/ios/modules/mixed/firefox_history.py diff --git a/mvt/ios/modules/mixed/global_preferences.py b/src/mvt/ios/modules/mixed/global_preferences.py similarity index 100% rename from mvt/ios/modules/mixed/global_preferences.py rename to src/mvt/ios/modules/mixed/global_preferences.py diff --git a/mvt/ios/modules/mixed/idstatuscache.py b/src/mvt/ios/modules/mixed/idstatuscache.py similarity index 100% rename from mvt/ios/modules/mixed/idstatuscache.py rename to src/mvt/ios/modules/mixed/idstatuscache.py diff --git a/mvt/ios/modules/mixed/interactionc.py b/src/mvt/ios/modules/mixed/interactionc.py similarity index 100% rename from mvt/ios/modules/mixed/interactionc.py rename to src/mvt/ios/modules/mixed/interactionc.py diff --git a/mvt/ios/modules/mixed/locationd.py b/src/mvt/ios/modules/mixed/locationd.py similarity index 100% rename from mvt/ios/modules/mixed/locationd.py rename to src/mvt/ios/modules/mixed/locationd.py diff --git a/mvt/ios/modules/mixed/net_datausage.py b/src/mvt/ios/modules/mixed/net_datausage.py similarity index 100% rename from mvt/ios/modules/mixed/net_datausage.py rename to src/mvt/ios/modules/mixed/net_datausage.py diff --git a/mvt/ios/modules/mixed/osanalytics_addaily.py b/src/mvt/ios/modules/mixed/osanalytics_addaily.py similarity index 100% rename from mvt/ios/modules/mixed/osanalytics_addaily.py rename to src/mvt/ios/modules/mixed/osanalytics_addaily.py diff --git a/mvt/ios/modules/mixed/safari_browserstate.py b/src/mvt/ios/modules/mixed/safari_browserstate.py similarity index 100% rename from mvt/ios/modules/mixed/safari_browserstate.py rename to src/mvt/ios/modules/mixed/safari_browserstate.py diff --git a/mvt/ios/modules/mixed/safari_history.py b/src/mvt/ios/modules/mixed/safari_history.py similarity index 100% rename from mvt/ios/modules/mixed/safari_history.py rename to src/mvt/ios/modules/mixed/safari_history.py diff --git a/mvt/ios/modules/mixed/shortcuts.py b/src/mvt/ios/modules/mixed/shortcuts.py similarity index 100% rename from mvt/ios/modules/mixed/shortcuts.py rename to src/mvt/ios/modules/mixed/shortcuts.py diff --git a/mvt/ios/modules/mixed/sms.py b/src/mvt/ios/modules/mixed/sms.py similarity index 100% rename from mvt/ios/modules/mixed/sms.py rename to src/mvt/ios/modules/mixed/sms.py diff --git a/mvt/ios/modules/mixed/sms_attachments.py b/src/mvt/ios/modules/mixed/sms_attachments.py similarity index 100% rename from mvt/ios/modules/mixed/sms_attachments.py rename to src/mvt/ios/modules/mixed/sms_attachments.py diff --git a/mvt/ios/modules/mixed/tcc.py b/src/mvt/ios/modules/mixed/tcc.py similarity index 100% rename from mvt/ios/modules/mixed/tcc.py rename to src/mvt/ios/modules/mixed/tcc.py diff --git a/mvt/ios/modules/mixed/webkit_resource_load_statistics.py b/src/mvt/ios/modules/mixed/webkit_resource_load_statistics.py similarity index 100% rename from mvt/ios/modules/mixed/webkit_resource_load_statistics.py rename to src/mvt/ios/modules/mixed/webkit_resource_load_statistics.py diff --git a/mvt/ios/modules/mixed/webkit_session_resource_log.py b/src/mvt/ios/modules/mixed/webkit_session_resource_log.py similarity index 100% rename from mvt/ios/modules/mixed/webkit_session_resource_log.py rename to src/mvt/ios/modules/mixed/webkit_session_resource_log.py diff --git a/mvt/ios/modules/mixed/whatsapp.py b/src/mvt/ios/modules/mixed/whatsapp.py similarity index 100% rename from mvt/ios/modules/mixed/whatsapp.py rename to src/mvt/ios/modules/mixed/whatsapp.py diff --git a/mvt/ios/modules/net_base.py b/src/mvt/ios/modules/net_base.py similarity index 100% rename from mvt/ios/modules/net_base.py rename to src/mvt/ios/modules/net_base.py diff --git a/mvt/ios/versions.py b/src/mvt/ios/versions.py similarity index 100% rename from mvt/ios/versions.py rename to src/mvt/ios/versions.py diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..75af203 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,8 @@ +requests>=2.31.0 +pytest>=7.4.3 +pytest-cov>=4.1.0 +pytest-github-actions-annotate-failures>=0.2.0 +pytest-mock>=3.14.0 +stix2>=3.0.1 +ruff>=0.1.6 +mypy>=1.7.1