From 55ddd86ad59a776ee4abfa26143247da5c8a92e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 15:24:27 +0100 Subject: [PATCH 01/49] Add new iOS versions and build numbers (#607) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index 273ec55..00f3ee6 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1103,5 +1103,9 @@ { "version": "18.3", "build": "22D63" + }, + { + "version": "18.3.1", + "build": "22D72" } ] \ No newline at end of file From ca41f7f106007f59c3b87f06cb8c6f097d1b6407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donncha=20=C3=93=20Cearbhaill?= Date: Fri, 21 Feb 2025 15:35:06 +0100 Subject: [PATCH 02/49] Always open automatic PRs as drafts (#609) --- .github/workflows/update-ios-data.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/update-ios-data.yml b/.github/workflows/update-ios-data.yml index 7cd1c07..f5ad752 100644 --- a/.github/workflows/update-ios-data.yml +++ b/.github/workflows/update-ios-data.yml @@ -21,6 +21,7 @@ jobs: title: '[auto] Update iOS releases and versions' commit-message: Add new iOS versions and build numbers branch: auto/add-new-ios-releases + draft: always-true body: | This is an automated pull request to update the iOS releases and version numbers. add-paths: | From 80fc8bd8793a77908a6ceded1b1b6cc79a8715ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donncha=20=C3=93=20Cearbhaill?= Date: Fri, 21 Feb 2025 15:48:00 +0100 Subject: [PATCH 03/49] Fix YAML format (#611) --- .github/workflows/update-ios-data.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-ios-data.yml b/.github/workflows/update-ios-data.yml index f5ad752..f44615a 100644 --- a/.github/workflows/update-ios-data.yml +++ b/.github/workflows/update-ios-data.yml @@ -21,7 +21,7 @@ jobs: title: '[auto] Update iOS releases and versions' commit-message: Add new iOS versions and build numbers branch: auto/add-new-ios-releases - draft: always-true + draft: true body: | This is an automated pull request to update the iOS releases and version numbers. add-paths: | From 9c84afb4b026363b55994163e332c8687b95f638 Mon Sep 17 00:00:00 2001 From: cacu Date: Tue, 11 Mar 2025 06:46:59 -0600 Subject: [PATCH 04/49] Update logo.py (#615) add instructions to update mvt via pipx --- src/mvt/common/logo.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mvt/common/logo.py b/src/mvt/common/logo.py index a7e350d..04071c8 100644 --- a/src/mvt/common/logo.py +++ b/src/mvt/common/logo.py @@ -29,7 +29,7 @@ def check_updates() -> None: if latest_version: rich_print( f"\t\t[bold]Version {latest_version} is available! " - "Upgrade mvt with `pip3 install -U mvt`[/bold]" + "Upgrade mvt with `pip3 install -U mvt` or with `pipx upgrade mvt`[/bold]" ) # Then we check for indicators files updates. From 2766739512a7697f5f374d27e003c05c07753486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Donncha=20=C3=93=20Cearbhaill?= Date: Tue, 11 Mar 2025 14:10:34 +0100 Subject: [PATCH 05/49] Fix bug where default values were dropped when parsing protobuf tombstones (#617) --- src/mvt/android/artifacts/tombstone_crashes.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mvt/android/artifacts/tombstone_crashes.py b/src/mvt/android/artifacts/tombstone_crashes.py index 3827154..75b9cc2 100644 --- a/src/mvt/android/artifacts/tombstone_crashes.py +++ b/src/mvt/android/artifacts/tombstone_crashes.py @@ -62,7 +62,7 @@ class TombstoneCrashResult(pydantic.BaseModel): process_name: Optional[str] = None binary_path: Optional[str] = None selinux_label: Optional[str] = None - uid: Optional[int] = None + uid: int signal_info: SignalInfo cause: Optional[str] = None extra: Optional[str] = None @@ -124,7 +124,9 @@ class TombstoneCrashArtifact(AndroidArtifact): Parse Android tombstone crash files from a protobuf object. """ tombstone_pb = Tombstone().parse(data) - tombstone_dict = tombstone_pb.to_dict(betterproto.Casing.SNAKE) + tombstone_dict = tombstone_pb.to_dict( + betterproto.Casing.SNAKE, include_default_values=True + ) # Add some extra metadata tombstone_dict["timestamp"] = self._parse_timestamp_string( From cf5aa7c89fae6efc4fd39e86f398cf01f6ff51b0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 16:04:06 +0200 Subject: [PATCH 06/49] Add new iOS versions and build numbers (#618) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index 00f3ee6..290d517 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -891,6 +891,10 @@ "version": "15.8.2", "build": "19H384" }, + { + "version": "15.8.4", + "build": "19H390" + }, { "build": "20A362", "version": "16.0" @@ -992,6 +996,10 @@ "version": "16.7.8", "build": "20H343" }, + { + "version": "16.7.11", + "build": "20H360" + }, { "version": "17.0", "build": "21A327" @@ -1107,5 +1115,9 @@ { "version": "18.3.1", "build": "22D72" + }, + { + "version": "18.4", + "build": "22E240" } ] \ No newline at end of file From 34374699cee13c84707172d72f1fd3f3cf423513 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 09:46:17 +0200 Subject: [PATCH 07/49] Add new iOS versions and build numbers (#622) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index 290d517..d69523a 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1119,5 +1119,9 @@ { "version": "18.4", "build": "22E240" + }, + { + "version": "18.4.1", + "build": "22E252" } ] \ No newline at end of file From e34e03d3a33374f635a46750a994ca4536ae2f96 Mon Sep 17 00:00:00 2001 From: Tek Date: Fri, 18 Apr 2025 17:43:08 +0200 Subject: [PATCH 08/49] Fixes Android Dumpsys ADB parsing issue --- src/mvt/android/artifacts/dumpsys_adb.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/mvt/android/artifacts/dumpsys_adb.py b/src/mvt/android/artifacts/dumpsys_adb.py index 18d5cfa..2bc9abe 100644 --- a/src/mvt/android/artifacts/dumpsys_adb.py +++ b/src/mvt/android/artifacts/dumpsys_adb.py @@ -4,6 +4,7 @@ # https://license.mvt.re/1.1/ import base64 +import binascii import hashlib from .artifact import AndroidArtifact @@ -89,11 +90,16 @@ class DumpsysADBArtifact(AndroidArtifact): else: key_base64, user = user_key, b"" - key_raw = base64.b64decode(key_base64) - key_fingerprint = hashlib.md5(key_raw).hexdigest().upper() - key_fingerprint_colon = ":".join( - [key_fingerprint[i : i + 2] for i in range(0, len(key_fingerprint), 2)] - ) + try: + key_raw = base64.b64decode(key_base64) + key_fingerprint = hashlib.md5(key_raw).hexdigest().upper() + key_fingerprint_colon = ":".join( + [key_fingerprint[i : i + 2] for i in range(0, len(key_fingerprint), 2)] + ) + except binascii.Error: + # Impossible to parse base64 + key_fingerprint_colon = "" + return { "user": user.decode("utf-8"), "fingerprint": key_fingerprint_colon, From 3dedd169c4cbfc5ffaad49d0e7b38d055b77dea1 Mon Sep 17 00:00:00 2001 From: ping2A <108336980+ping2A@users.noreply.github.com> Date: Wed, 30 Apr 2025 10:30:39 +0200 Subject: [PATCH 09/49] Fix issue #574 for a module without IOCs output (#620) * Fix issue #574 for a module without IOCs output --- src/mvt/common/cmd_check_iocs.py | 4 ++++ src/mvt/common/module.py | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/mvt/common/cmd_check_iocs.py b/src/mvt/common/cmd_check_iocs.py index 696803a..2db6edb 100644 --- a/src/mvt/common/cmd_check_iocs.py +++ b/src/mvt/common/cmd_check_iocs.py @@ -65,6 +65,10 @@ class CmdCheckIOCS(Command): m = iocs_module.from_json( file_path, log=logging.getLogger(iocs_module.__module__) ) + if not m: + log.warning("No result from this module, skipping it") + continue + if self.iocs.total_ioc_count > 0: m.indicators = self.iocs m.indicators.log = m.log diff --git a/src/mvt/common/module.py b/src/mvt/common/module.py index 1468cf4..2a52677 100644 --- a/src/mvt/common/module.py +++ b/src/mvt/common/module.py @@ -69,10 +69,14 @@ class MVTModule: @classmethod def from_json(cls, json_path: str, log: logging.Logger): with open(json_path, "r", encoding="utf-8") as handle: - results = json.load(handle) - if log: - log.info('Loaded %d results from "%s"', len(results), json_path) - return cls(results=results, log=log) + try: + results = json.load(handle) + if log: + log.info('Loaded %d results from "%s"', len(results), json_path) + return cls(results=results, log=log) + except json.decoder.JSONDecodeError as err: + log.error('Error to decode the json "%s" file: "%s"', json_path, err) + return None @classmethod def get_slug(cls) -> str: From 61f95d07d3d950be2dbecf41aae8f1d55132c5b7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 22:37:46 +0200 Subject: [PATCH 10/49] Add new iOS versions and build numbers (#625) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index d69523a..eb44f85 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1123,5 +1123,9 @@ { "version": "18.4.1", "build": "22E252" + }, + { + "version": "18.5", + "build": "22F76" } ] \ No newline at end of file From 0fce0acf7a8e160c7a52a4ae8c6f5e45d0642f8b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 May 2025 11:12:13 +0200 Subject: [PATCH 11/49] Add new iOS versions and build numbers (#626) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index eb44f85..a373595 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1084,6 +1084,10 @@ "version": "17.6.1", "build": "21G101" }, + { + "version": "17.7.7", + "build": "21H433" + }, { "version": "18", "build": "22A3354" From 88bc5672cbf2e19e460961db34584f893b4e76c7 Mon Sep 17 00:00:00 2001 From: scribblemaniac Date: Wed, 14 May 2025 03:34:40 -0600 Subject: [PATCH 12/49] Upgrade main dockerfile runtime to ubuntu:24.04 (#619) Co-authored-by: Tek --- Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3f42c19..7880cc1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -103,7 +103,7 @@ RUN git clone https://github.com/libimobiledevice/usbmuxd && cd usbmuxd \ # Create main image -FROM ubuntu:22.04 as main +FROM ubuntu:24.04 as main LABEL org.opencontainers.image.url="https://mvt.re" LABEL org.opencontainers.image.documentation="https://docs.mvt.re" @@ -135,8 +135,7 @@ COPY --from=build-usbmuxd /build / COPY . mvt/ RUN apt-get update \ && apt-get install -y git python3-pip \ - && PIP_NO_CACHE_DIR=1 pip3 install --upgrade pip \ - && PIP_NO_CACHE_DIR=1 pip3 install ./mvt \ + && PIP_NO_CACHE_DIR=1 pip3 install --break-system-packages ./mvt \ && apt-get remove -y python3-pip git && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* \ && rm -rf mvt From 511063fd0eaecfa8d5d9188b854c73516ac6c25b Mon Sep 17 00:00:00 2001 From: besendorf Date: Wed, 4 Jun 2025 13:00:04 +0200 Subject: [PATCH 13/49] Update pyproject.toml (#630) --- pyproject.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index eec0824..a31df04 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ dependencies = [ "pydantic >= 2.10.0", "pydantic-settings >= 2.7.0", 'backports.zoneinfo; python_version < "3.9"', + "NSKeyedUnArchiver==1.5", ] requires-python = ">= 3.8" @@ -103,4 +104,4 @@ where = ["src"] mvt = ["ios/data/*.json"] [tool.setuptools.dynamic] -version = {attr = "mvt.common.version.MVT_VERSION"} \ No newline at end of file +version = {attr = "mvt.common.version.MVT_VERSION"} From 61f51caf31254498ace655cedfe90523e9760ab0 Mon Sep 17 00:00:00 2001 From: Tek Date: Thu, 12 Jun 2025 16:33:15 +0200 Subject: [PATCH 14/49] Freeze versions and bump version (#632) * Freeze versions and bump version * Drops support for python below 3.10 --- .github/workflows/tests.yml | 4 ++-- pyproject.toml | 35 +++++++++++++++++------------------ src/mvt/common/version.py | 2 +- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 08e2d84..37ac7f2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.8', '3.9', '3.10'] # , '3.11'] + python-version: ['3.10', '3.11', '3.12', '3.13'] steps: - uses: actions/checkout@v4 @@ -35,4 +35,4 @@ jobs: if: github.event_name == 'pull_request' with: pytest-coverage-path: ./pytest-coverage.txt - junitxml-path: ./pytest.xml \ No newline at end of file + junitxml-path: ./pytest.xml diff --git a/pyproject.toml b/pyproject.toml index a31df04..f7b0a69 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,26 +19,25 @@ classifiers = [ "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[usb] >=0.4.3", - "libusb1 >=3.0.0", - "cryptography >=42.0.5", - "pyyaml >=6.0", - "pyahocorasick >= 2.0.0", - "betterproto >=1.2.0", - "pydantic >= 2.10.0", - "pydantic-settings >= 2.7.0", - 'backports.zoneinfo; python_version < "3.9"', + "click==8.2.1", + "rich==14.0.0", + "tld==0.13.1", + "requests==2.32.2", + "simplejson==3.20.1", + "packaging==25.0", + "appdirs==1.4.4", + "iOSbackup==0.9.925", + "adb-shell[usb]==0.4.4", + "libusb1==3.3.1", + "cryptography==45.0.3", + "PyYAML>=6.0.2", + "pyahocorasick==2.1.0", + "betterproto==1.2.5", + "pydantic==2.11.5", + "pydantic-settings==2.9.1", "NSKeyedUnArchiver==1.5", ] -requires-python = ">= 3.8" +requires-python = ">= 3.10" [project.urls] homepage = "https://docs.mvt.re/en/latest/" diff --git a/src/mvt/common/version.py b/src/mvt/common/version.py index dd19c1e..4f16aec 100644 --- a/src/mvt/common/version.py +++ b/src/mvt/common/version.py @@ -3,4 +3,4 @@ # Use of this software is governed by the MVT License 1.1 that can be found at # https://license.mvt.re/1.1/ -MVT_VERSION = "2.6.0" +MVT_VERSION = "2.6.1" From 4757cff262ef194623f5f9879f77d94f055b4423 Mon Sep 17 00:00:00 2001 From: Tek Date: Thu, 12 Jun 2025 20:49:31 +0200 Subject: [PATCH 15/49] Fixes date parsing issue in tombstones (#635) --- pyproject.toml | 1 + .../android/artifacts/tombstone_crashes.py | 8 +--- tests/android/test_artifact_tombstones.py | 2 +- tests/android_bugreport/test_bugreport.py | 6 +++ .../bugreport/FS/data/tombstones/tombstone_00 | 27 +++++++++++++ .../bugreport/FS/data/tombstones/tombstone_01 | 38 +++++++++++++++++++ 6 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_00 create mode 100644 tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_01 diff --git a/pyproject.toml b/pyproject.toml index f7b0a69..e675501 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ dependencies = [ "pydantic==2.11.5", "pydantic-settings==2.9.1", "NSKeyedUnArchiver==1.5", + "python-dateutil==2.9.0.post0", ] requires-python = ">= 3.10" diff --git a/src/mvt/android/artifacts/tombstone_crashes.py b/src/mvt/android/artifacts/tombstone_crashes.py index 75b9cc2..f9f4531 100644 --- a/src/mvt/android/artifacts/tombstone_crashes.py +++ b/src/mvt/android/artifacts/tombstone_crashes.py @@ -8,6 +8,7 @@ from typing import List, Optional, Union import pydantic import betterproto +from dateutil import parser from mvt.common.utils import convert_datetime_to_iso from mvt.android.parsers.proto.tombstone import Tombstone @@ -254,12 +255,7 @@ class TombstoneCrashArtifact(AndroidArtifact): @staticmethod def _parse_timestamp_string(timestamp: str) -> str: - timestamp_date, timezone = timestamp.split("+") - # Truncate microseconds before parsing - timestamp_without_micro = timestamp_date.split(".")[0] + "+" + timezone - timestamp_parsed = datetime.datetime.strptime( - timestamp_without_micro, "%Y-%m-%d %H:%M:%S%z" - ) + timestamp_parsed = parser.parse(timestamp) # HACK: Swap the local timestamp to UTC, so keep the original time and avoid timezone conversion. local_timestamp = timestamp_parsed.replace(tzinfo=datetime.timezone.utc) diff --git a/tests/android/test_artifact_tombstones.py b/tests/android/test_artifact_tombstones.py index 487eb21..d1d5682 100644 --- a/tests/android/test_artifact_tombstones.py +++ b/tests/android/test_artifact_tombstones.py @@ -64,4 +64,4 @@ class TestTombstoneCrashArtifact: # We often don't know the time offset for a log entry and so can't convert everything to UTC. # MVT should output the local time only: # So original 2023-04-12 12:32:40.518290770+0200 -> 2023-04-12 12:32:40.000000 - assert tombstone_result.get("timestamp") == "2023-04-12 12:32:40.000000" + assert tombstone_result.get("timestamp") == "2023-04-12 12:32:40.518290" diff --git a/tests/android_bugreport/test_bugreport.py b/tests/android_bugreport/test_bugreport.py index cc9afec..5af58e8 100644 --- a/tests/android_bugreport/test_bugreport.py +++ b/tests/android_bugreport/test_bugreport.py @@ -9,6 +9,7 @@ from pathlib import Path from mvt.android.modules.bugreport.appops import Appops from mvt.android.modules.bugreport.getprop import Getprop from mvt.android.modules.bugreport.packages import Packages +from mvt.android.modules.bugreport.tombstones import Tombstones from mvt.common.module import run_module from ..utils import get_artifact_folder @@ -54,3 +55,8 @@ class TestBugreportAnalysis: def test_getprop_module(self): m = self.launch_bug_report_module(Getprop) assert len(m.results) == 0 + + def test_tombstones_modules(self): + m = self.launch_bug_report_module(Tombstones) + assert len(m.results) == 2 + assert m.results[1]["pid"] == 3559 diff --git a/tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_00 b/tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_00 new file mode 100644 index 0000000..f0dd1be --- /dev/null +++ b/tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_00 @@ -0,0 +1,27 @@ +*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Build fingerprint: 'samsung/a10eea/a10:10/.190711.020/A105:user/release-keys' +Revision: '5' +ABI: 'arm' +Timestamp: 2021-09-29 17:43:49+0200 +pid: 9850, tid: 9893, name: UsbFfs-worker >>> /system/bin/adbd <<< +uid: 2000 +signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr -------- +Abort message: 'Check failed: payload.size() <= bytes_left (payload.size()=99, bytes_left=51) ' + r0 00000000 r1 000026a5 r2 00000006 r3 f11fad98 + r4 f11fadac r5 f11fad90 r6 0000267a r7 0000016b + r8 f11fada8 r9 f11fad98 r10 f11fadc8 r11 f11fadb8 + ip 000026a5 sp f11fad68 lr f20c23b7 pc f20c23ca + +backtrace: + #00 pc 000603ca /apex/com.android.runtime/lib/bionic/libc.so (abort+166) (BuildId: 320fbdc2a1289fadd7dacae7f2eb77a3) + #01 pc 00007e23 /system/lib/libbase.so (android::base::DefaultAborter(char const*)+6) (BuildId: a28585ee446ea17e3e6fcf9c907fff2a) + #02 pc 0000855f /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+406) (BuildId: a28585ee446ea17e3e6fcf9c907fff2a) + #03 pc 000309cf /system/lib/libadbd.so (UsbFfsConnection::ProcessRead(IoBlock*)+814) (BuildId: 3645b175977ae210c156a57b25dfa599) + #04 pc 00030459 /system/lib/libadbd.so (UsbFfsConnection::HandleRead(TransferId, long long)+84) (BuildId: 3645b175977ae210c156a57b25dfa599) + #05 pc 00030349 /system/lib/libadbd.so (UsbFfsConnection::ReadEvents()+92) (BuildId: 3645b175977ae210c156a57b25dfa599) + #06 pc 00030169 /system/lib/libadbd.so (_ZZN16UsbFfsConnection11StartWorkerEvENKUlvE_clEv+504) (BuildId: 3645b175977ae210c156a57b25dfa599) + #07 pc 0002ff53 /system/lib/libadbd.so (_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZN16UsbFfsConnection11StartWorkerEvEUlvE_EEEEEPvSA_+26) (BuildId: 3645b175977ae210c156a57b25dfa599) + #08 pc 000a75b3 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) (BuildId: 320fbdc2a1289fadd7dacae7f2eb77a3) + #09 pc 00061b33 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: 320fbdc2a1289fadd7dacae7f2eb77a3) + + diff --git a/tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_01 b/tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_01 new file mode 100644 index 0000000..d069910 --- /dev/null +++ b/tests/artifacts/android_data/bugreport/FS/data/tombstones/tombstone_01 @@ -0,0 +1,38 @@ +*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Build fingerprint: 'samsung/a10eea/a10:11/RP1A.200720.012/A105:user/release-keys' +Revision: '5' +ABI: 'arm' +Timestamp: 2023-08-21 23:28:59-0400 +pid: 3559, tid: 3568, name: tzts_daemon >>> /vendor/bin/tzts_daemon <<< +uid: 1000 +signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe8b4d14c + r0 e8b4d14c r1 e8b4d14c r2 0000002b r3 00000004 + r4 00000000 r5 e8b4d14c r6 00000000 r7 00000000 + r8 e7ef78b0 r9 0000002b r10 e7ef7dad r11 e7ef7400 + ip 00000000 sp e7ef7208 lr e89f4b01 pc e89c273a + +backtrace: + #00 pc 0005f73a /apex/com.android.runtime/lib/bionic/libc.so (strlen_a15+54) (BuildId: fef5b751123147ea65bf3f4f798c9518) + #01 pc 00091afd /apex/com.android.runtime/lib/bionic/libc.so (__vfprintf+3364) (BuildId: fef5b751123147ea65bf3f4f798c9518) + #02 pc 000a68e5 /apex/com.android.runtime/lib/bionic/libc.so (vsnprintf+152) (BuildId: fef5b751123147ea65bf3f4f798c9518) + #03 pc 000051cf /system/lib/liblog.so (__android_log_vprint+74) (BuildId: 3fcead474cd0ecbdafb529ff176b0d13) + #04 pc 000012e8 /vendor/bin/tzts_daemon + +memory near r0: + e8b4d12c -------- -------- -------- -------- ................ + e8b4d13c -------- -------- -------- -------- ................ + e8b4d14c -------- -------- -------- -------- ................ + e8b4d15c -------- -------- -------- -------- ................ + e8b4d16c -------- -------- -------- -------- ................ + e8b4d17c -------- -------- -------- -------- ................ + e8b4d18c -------- -------- -------- -------- ................ + e8b4d19c -------- -------- -------- -------- ................ + e8b4d1ac -------- -------- -------- -------- ................ + e8b4d1bc -------- -------- -------- -------- ................ + e8b4d1cc -------- -------- -------- -------- ................ + e8b4d1dc -------- -------- -------- -------- ................ + e8b4d1ec -------- -------- -------- -------- ................ + e8b4d1fc -------- -------- -------- -------- ................ + e8b4d20c -------- -------- -------- -------- ................ + e8b4d21c -------- -------- -------- -------- ................ + From be1fc3bd8b97533815459ece0269bf74fafa8457 Mon Sep 17 00:00:00 2001 From: besendorf Date: Thu, 12 Jun 2025 22:42:02 +0200 Subject: [PATCH 16/49] Update NSKeyedUnarchiver (#636) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e675501..027f55d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dependencies = [ "betterproto==1.2.5", "pydantic==2.11.5", "pydantic-settings==2.9.1", - "NSKeyedUnArchiver==1.5", + "NSKeyedUnArchiver==1.5.2", "python-dateutil==2.9.0.post0", ] requires-python = ">= 3.10" From 486e3e7e9b52350bca8cc23744975f4cec5d76f6 Mon Sep 17 00:00:00 2001 From: Tek Date: Thu, 19 Jun 2025 23:51:59 +0200 Subject: [PATCH 17/49] Update global_preferences.py (#641) Added a warning for lockdown mode when the property is not present --------- Co-authored-by: makitos666 --- src/mvt/ios/modules/mixed/global_preferences.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mvt/ios/modules/mixed/global_preferences.py b/src/mvt/ios/modules/mixed/global_preferences.py index 7b159b1..63e960f 100644 --- a/src/mvt/ios/modules/mixed/global_preferences.py +++ b/src/mvt/ios/modules/mixed/global_preferences.py @@ -43,6 +43,8 @@ class GlobalPreferences(IOSExtraction): self.log.warning("Lockdown mode enabled") else: self.log.warning("Lockdown mode disabled") + return + self.log.warning("Lockdown mode disabled") def process_file(self, file_path: str) -> None: with open(file_path, "rb") as handle: From c9ac12f3366205396a062016e03aa02218a1c808 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Jun 2025 23:55:42 +0200 Subject: [PATCH 18/49] Bump requests from 2.32.2 to 2.32.4 (#642) Bumps [requests](https://github.com/psf/requests) from 2.32.2 to 2.32.4. - [Release notes](https://github.com/psf/requests/releases) - [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md) - [Commits](https://github.com/psf/requests/compare/v2.32.2...v2.32.4) --- updated-dependencies: - dependency-name: requests dependency-version: 2.32.4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 027f55d..bb55ffe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,7 +22,7 @@ dependencies = [ "click==8.2.1", "rich==14.0.0", "tld==0.13.1", - "requests==2.32.2", + "requests==2.32.4", "simplejson==3.20.1", "packaging==25.0", "appdirs==1.4.4", From 95076c8f71c89709f524e798f0697a3ebbe50196 Mon Sep 17 00:00:00 2001 From: Tek Date: Fri, 20 Jun 2025 11:17:40 +0200 Subject: [PATCH 19/49] Create dependabot.yml (#644) --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9d866e3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "pip" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From 42106aa4d6decb8c6912e12e357c22fa0975ca37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:19:57 +0200 Subject: [PATCH 20/49] Bump pyahocorasick from 2.1.0 to 2.2.0 (#646) Bumps [pyahocorasick](https://github.com/WojciechMula/pyahocorasick) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/WojciechMula/pyahocorasick/releases) - [Changelog](https://github.com/WojciechMula/pyahocorasick/blob/master/CHANGELOG.rst) - [Commits](https://github.com/WojciechMula/pyahocorasick/compare/2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: pyahocorasick dependency-version: 2.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bb55ffe..f3be48b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ "libusb1==3.3.1", "cryptography==45.0.3", "PyYAML>=6.0.2", - "pyahocorasick==2.1.0", + "pyahocorasick==2.2.0", "betterproto==1.2.5", "pydantic==2.11.5", "pydantic-settings==2.9.1", From bee453a09003efc44a6117dfebdd1e5865cb0f52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:22:26 +0200 Subject: [PATCH 21/49] Bump cryptography from 45.0.3 to 45.0.4 (#645) Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.3 to 45.0.4. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/45.0.3...45.0.4) --- updated-dependencies: - dependency-name: cryptography dependency-version: 45.0.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index f3be48b..fac7311 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ dependencies = [ "iOSbackup==0.9.925", "adb-shell[usb]==0.4.4", "libusb1==3.3.1", - "cryptography==45.0.3", + "cryptography==45.0.4", "PyYAML>=6.0.2", "pyahocorasick==2.2.0", "betterproto==1.2.5", From 93303f181ac4f709528b52c8a599d98119f589f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:24:12 +0200 Subject: [PATCH 22/49] Bump mkdocs-material from 9.5.42 to 9.6.14 (#647) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.42 to 9.6.14. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.42...9.6.14) --- updated-dependencies: - dependency-name: mkdocs-material dependency-version: 9.6.14 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tek --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 37fb7d1..ea2953c 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 mkdocs-autorefs==1.2.0 -mkdocs-material==9.5.42 +mkdocs-material==9.6.14 mkdocs-material-extensions==1.3.1 mkdocstrings==0.23.0 \ No newline at end of file From ce813568ff57849b7f1b7e399fb715d04ec9c2e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:28:24 +0200 Subject: [PATCH 23/49] Bump mkdocs-autorefs from 1.2.0 to 1.4.2 (#648) Bumps [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) from 1.2.0 to 1.4.2. - [Release notes](https://github.com/mkdocstrings/autorefs/releases) - [Changelog](https://github.com/mkdocstrings/autorefs/blob/main/CHANGELOG.md) - [Commits](https://github.com/mkdocstrings/autorefs/compare/1.2.0...1.4.2) --- updated-dependencies: - dependency-name: mkdocs-autorefs dependency-version: 1.4.2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index ea2953c..82be5d0 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 -mkdocs-autorefs==1.2.0 +mkdocs-autorefs==1.4.2 mkdocs-material==9.6.14 mkdocs-material-extensions==1.3.1 mkdocstrings==0.23.0 \ No newline at end of file From 883b450601fe05322b20baa4e55e4370cb67e8bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jun 2025 11:29:34 +0200 Subject: [PATCH 24/49] Bump mkdocstrings from 0.23.0 to 0.29.1 (#649) Bumps [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) from 0.23.0 to 0.29.1. - [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases) - [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md) - [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.23.0...0.29.1) --- updated-dependencies: - dependency-name: mkdocstrings dependency-version: 0.29.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tek --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 82be5d0..e3190d7 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,4 +2,4 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.2 mkdocs-material==9.6.14 mkdocs-material-extensions==1.3.1 -mkdocstrings==0.23.0 \ No newline at end of file +mkdocstrings==0.29.1 \ No newline at end of file From 49108e67e2eaa68c0a2295f993c46b524b579eb5 Mon Sep 17 00:00:00 2001 From: besendorf Date: Wed, 2 Jul 2025 10:11:35 +0200 Subject: [PATCH 25/49] remove deprecated install_non_market_apps permission check --- src/mvt/android/artifacts/settings.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/mvt/android/artifacts/settings.py b/src/mvt/android/artifacts/settings.py index 06a261e..4649666 100644 --- a/src/mvt/android/artifacts/settings.py +++ b/src/mvt/android/artifacts/settings.py @@ -51,11 +51,6 @@ ANDROID_DANGEROUS_SETTINGS = [ "key": "send_action_app_error", "safe_value": "1", }, - { - "description": "enabled installation of non Google Play apps", - "key": "install_non_market_apps", - "safe_value": "0", - }, { "description": "enabled accessibility services", "key": "accessibility_enabled", From a125b20fc5a95cceba5460d668cce64a0a0bbb7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 20:59:41 +0200 Subject: [PATCH 26/49] Bump pydantic from 2.11.5 to 2.11.7 (#651) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.5 to 2.11.7. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.7) --- updated-dependencies: - dependency-name: pydantic dependency-version: 2.11.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fac7311..2410dd1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,7 +33,7 @@ dependencies = [ "PyYAML>=6.0.2", "pyahocorasick==2.2.0", "betterproto==1.2.5", - "pydantic==2.11.5", + "pydantic==2.11.7", "pydantic-settings==2.9.1", "NSKeyedUnArchiver==1.5.2", "python-dateutil==2.9.0.post0", From ffe6ad2014115738316a8374516ca263d94d934b Mon Sep 17 00:00:00 2001 From: besendorf Date: Fri, 4 Jul 2025 15:29:36 +0200 Subject: [PATCH 27/49] initialise message_links in backup parser to fix sms module bug --- src/mvt/android/parsers/backup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mvt/android/parsers/backup.py b/src/mvt/android/parsers/backup.py index 7c49ded..105b4f2 100644 --- a/src/mvt/android/parsers/backup.py +++ b/src/mvt/android/parsers/backup.py @@ -231,6 +231,7 @@ def parse_sms_file(data): entry.pop("mms_body") body = entry.get("body", None) + message_links = None if body: message_links = check_for_links(entry["body"]) From 10915f250c26269ceef76f6f0f2d2d66559e03e9 Mon Sep 17 00:00:00 2001 From: besendorf Date: Fri, 4 Jul 2025 17:46:50 +0200 Subject: [PATCH 28/49] catch tcc error --- src/mvt/ios/modules/mixed/tcc.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mvt/ios/modules/mixed/tcc.py b/src/mvt/ios/modules/mixed/tcc.py index 461e5b3..73d9aa1 100644 --- a/src/mvt/ios/modules/mixed/tcc.py +++ b/src/mvt/ios/modules/mixed/tcc.py @@ -116,13 +116,16 @@ class TCC(IOSExtraction): ) db_version = "v2" except sqlite3.OperationalError: - cur.execute( - """SELECT - service, client, client_type, allowed, - prompt_count - FROM access;""" - ) - db_version = "v1" + try: + cur.execute( + """SELECT + service, client, client_type, allowed, + prompt_count + FROM access;""" + ) + db_version = "v1" + except sqlite3.OperationalError as e: + self.log.error(f"Error parsing TCC database: {e}") for row in cur: service = row[0] From b691de2cc0307e9854b9689f6cd30832ac8c1c51 Mon Sep 17 00:00:00 2001 From: besendorf Date: Fri, 4 Jul 2025 17:52:05 +0200 Subject: [PATCH 29/49] catch sqlite exception in safari_browserstate.py --- .../ios/modules/mixed/safari_browserstate.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mvt/ios/modules/mixed/safari_browserstate.py b/src/mvt/ios/modules/mixed/safari_browserstate.py index 616ea20..f97463d 100644 --- a/src/mvt/ios/modules/mixed/safari_browserstate.py +++ b/src/mvt/ios/modules/mixed/safari_browserstate.py @@ -95,14 +95,17 @@ class SafariBrowserState(IOSExtraction): ) except sqlite3.OperationalError: # Old version iOS <12 likely - cur.execute( + try: + cur.execute( + """ + SELECT + title, url, user_visible_url, last_viewed_time, session_data + FROM tabs + ORDER BY last_viewed_time; """ - SELECT - title, url, user_visible_url, last_viewed_time, session_data - FROM tabs - ORDER BY last_viewed_time; - """ - ) + ) + except sqlite3.OperationalError as e: + self.log.error(f"Error executing query: {e}") for row in cur: session_entries = [] From 1df61b5bbf54cb44d6ff156da229924deb836b0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 21:03:08 +0200 Subject: [PATCH 30/49] Bump cryptography from 45.0.4 to 45.0.5 (#661) Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.4 to 45.0.5. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/45.0.4...45.0.5) --- updated-dependencies: - dependency-name: cryptography dependency-version: 45.0.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 2410dd1..e535e6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ dependencies = [ "iOSbackup==0.9.925", "adb-shell[usb]==0.4.4", "libusb1==3.3.1", - "cryptography==45.0.4", + "cryptography==45.0.5", "PyYAML>=6.0.2", "pyahocorasick==2.2.0", "betterproto==1.2.5", From 87034d2c7a1b877de72070e4e02953b13bda2a5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Jul 2025 22:29:04 +0200 Subject: [PATCH 31/49] Bump mkdocs-material from 9.6.14 to 9.6.16 (#672) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.14 to 9.6.16. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.14...9.6.16) --- updated-dependencies: - dependency-name: mkdocs-material dependency-version: 9.6.16 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index e3190d7..d46f0c1 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.2 -mkdocs-material==9.6.14 +mkdocs-material==9.6.16 mkdocs-material-extensions==1.3.1 mkdocstrings==0.29.1 \ No newline at end of file From 0b003987299677348f34a6884570b09fd3818107 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Jul 2025 22:37:42 +0200 Subject: [PATCH 32/49] Bump rich from 14.0.0 to 14.1.0 (#670) Bumps [rich](https://github.com/Textualize/rich) from 14.0.0 to 14.1.0. - [Release notes](https://github.com/Textualize/rich/releases) - [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md) - [Commits](https://github.com/Textualize/rich/compare/v14.0.0...v14.1.0) --- updated-dependencies: - dependency-name: rich dependency-version: 14.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e535e6b..314dda5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ classifiers = [ ] dependencies = [ "click==8.2.1", - "rich==14.0.0", + "rich==14.1.0", "tld==0.13.1", "requests==2.32.4", "simplejson==3.20.1", From dbe9e5db9b8b42926abd6c325cd8cab53291df3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Jul 2025 22:42:37 +0200 Subject: [PATCH 33/49] Bump mkdocstrings from 0.29.1 to 0.30.0 (#671) Bumps [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) from 0.29.1 to 0.30.0. - [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases) - [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md) - [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0) --- updated-dependencies: - dependency-name: mkdocstrings dependency-version: 0.30.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tek --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index d46f0c1..c9fdd41 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,4 +2,4 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.2 mkdocs-material==9.6.16 mkdocs-material-extensions==1.3.1 -mkdocstrings==0.29.1 \ No newline at end of file +mkdocstrings==0.30.0 \ No newline at end of file From 4e120b26407354c2771466dfde3eae39c3b58c56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Jul 2025 22:58:12 +0200 Subject: [PATCH 34/49] Bump pydantic-settings from 2.9.1 to 2.10.1 (#655) Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.9.1 to 2.10.1. - [Release notes](https://github.com/pydantic/pydantic-settings/releases) - [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.1) --- updated-dependencies: - dependency-name: pydantic-settings dependency-version: 2.10.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 314dda5..fd569a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ dependencies = [ "pyahocorasick==2.2.0", "betterproto==1.2.5", "pydantic==2.11.7", - "pydantic-settings==2.9.1", + "pydantic-settings==2.10.1", "NSKeyedUnArchiver==1.5.2", "python-dateutil==2.9.0.post0", ] From 7d0be9db4f9d86eb5bf86c5c406806bb9dcd5bc2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 13:20:34 +0200 Subject: [PATCH 35/49] Add new iOS versions and build numbers (#673) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index a373595..6872911 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1131,5 +1131,9 @@ { "version": "18.5", "build": "22F76" + }, + { + "version": "18.6", + "build": "22G86" } ] \ No newline at end of file From 86a0772eb25a47811f20473e04e44a61a8e63e41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 10:38:19 +0200 Subject: [PATCH 36/49] Bump cryptography from 45.0.5 to 45.0.6 (#675) Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.5 to 45.0.6. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/45.0.5...45.0.6) --- updated-dependencies: - dependency-name: cryptography dependency-version: 45.0.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index fd569a4..3b3ca76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ dependencies = [ "iOSbackup==0.9.925", "adb-shell[usb]==0.4.4", "libusb1==3.3.1", - "cryptography==45.0.5", + "cryptography==45.0.6", "PyYAML>=6.0.2", "pyahocorasick==2.2.0", "betterproto==1.2.5", From 847b0e087b54e61801fa0dcbd745f9618cad5f39 Mon Sep 17 00:00:00 2001 From: Tek Date: Wed, 20 Aug 2025 11:10:20 +0200 Subject: [PATCH 37/49] Adds iOS 18.6.1 (#681) --- src/mvt/ios/data/ios_versions.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index 6872911..32b2aae 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1135,5 +1135,9 @@ { "version": "18.6", "build": "22G86" + }, + { + "version": "18.6.1", + "build": "22G90" } -] \ No newline at end of file +] From 616e870212639b8849b5bffbb6561ef2af5c7e9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 11:13:59 +0200 Subject: [PATCH 38/49] Bump mkdocs-material from 9.6.16 to 9.6.17 (#678) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.16 to 9.6.17. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.16...9.6.17) --- updated-dependencies: - dependency-name: mkdocs-material dependency-version: 9.6.17 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tek --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index c9fdd41..bffe5ee 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.2 -mkdocs-material==9.6.16 +mkdocs-material==9.6.17 mkdocs-material-extensions==1.3.1 mkdocstrings==0.30.0 \ No newline at end of file From b723ebf28e08f9e1ba12e378ab91e2bdc07b5add Mon Sep 17 00:00:00 2001 From: besendorf Date: Thu, 21 Aug 2025 16:10:03 +0200 Subject: [PATCH 39/49] move test dependencies to dev dependency group (#679) --- Makefile | 2 +- pyproject.toml | 51 ++++++++++++++++++++++++------------------- test-requirements.txt | 9 -------- 3 files changed, 30 insertions(+), 32 deletions(-) delete mode 100644 test-requirements.txt diff --git a/Makefile b/Makefile index 1d5c384..16bde09 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ install: python3 -m pip install --upgrade -e . test-requirements: - python3 -m pip install --upgrade -r test-requirements.txt + python3 -m pip install --upgrade --group dev generate-proto-parsers: # Generate python parsers for protobuf files diff --git a/pyproject.toml b/pyproject.toml index 3b3ca76..cb7911b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,13 +1,11 @@ [project] name = "mvt" dynamic = ["version"] -authors = [ - {name = "Claudio Guarnieri", email = "nex@nex.sx"} -] +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"} + { 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" @@ -16,7 +14,7 @@ classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Information Technology", "Operating System :: OS Independent", - "Programming Language :: Python" + "Programming Language :: Python", ] dependencies = [ "click==8.2.1", @@ -45,20 +43,31 @@ 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" +mvt-ios = "mvt.ios:cli" +mvt-android = "mvt.android:cli" + +[dependency-groups] +dev = [ + "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", + "betterproto[compiler]", +] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [tool.coverage.run] -omit = [ - "tests/*", -] +omit = ["tests/*"] [tool.coverage.html] -directory= "htmlcov" +directory = "htmlcov" [tool.mypy] install_types = true @@ -68,15 +77,13 @@ packages = "src" [tool.pytest.ini_options] addopts = "-ra -q --cov=mvt --cov-report html --junitxml=pytest.xml --cov-report=term-missing:skip-covered" -testpaths = [ - "tests" -] +testpaths = ["tests"] [tool.ruff.lint] -select = ["C90", "E", "F", "W"] # flake8 default set +select = ["C90", "E", "F", "W"] # flake8 default set ignore = [ - "E501", # don't enforce line length violations - "C901", # complex-structure + "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 @@ -88,14 +95,14 @@ ignore = [ ] [tool.ruff.lint.per-file-ignores] -"__init__.py" = ["F401"] # unused-import +"__init__.py" = ["F401"] # unused-import [tool.ruff.lint.mccabe] max-complexity = 10 [tool.setuptools] include-package-data = true -package-dir = {"" = "src"} +package-dir = { "" = "src" } [tool.setuptools.packages.find] where = ["src"] @@ -104,4 +111,4 @@ where = ["src"] mvt = ["ios/data/*.json"] [tool.setuptools.dynamic] -version = {attr = "mvt.common.version.MVT_VERSION"} +version = { attr = "mvt.common.version.MVT_VERSION" } diff --git a/test-requirements.txt b/test-requirements.txt deleted file mode 100644 index 57652da..0000000 --- a/test-requirements.txt +++ /dev/null @@ -1,9 +0,0 @@ -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 -betterproto[compiler] \ No newline at end of file From 5babc1fcf3dbbc3e4008d4cf14e73844cb7ce7ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:25:22 +0200 Subject: [PATCH 40/49] Bump mkdocs-material from 9.6.17 to 9.6.18 (#683) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.17 to 9.6.18. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.17...9.6.18) --- updated-dependencies: - dependency-name: mkdocs-material dependency-version: 9.6.18 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index bffe5ee..d79db54 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.2 -mkdocs-material==9.6.17 +mkdocs-material==9.6.18 mkdocs-material-extensions==1.3.1 mkdocstrings==0.30.0 \ No newline at end of file From f75b8e186a8341fc7884e4b6dc79e3649aef8f59 Mon Sep 17 00:00:00 2001 From: r-tx <138887278+r-tx@users.noreply.github.com> Date: Tue, 26 Aug 2025 12:52:55 +0100 Subject: [PATCH 41/49] add iOS 18.6.2 (#682) * iOS 18.6.2 * iOS 18.6.2 --------- Co-authored-by: r-tx Co-authored-by: Tek --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index 32b2aae..b52fa00 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1139,5 +1139,9 @@ { "version": "18.6.1", "build": "22G90" + }, + { + "version": "18.6.2", + "build": "22G100" } ] From 88213e12c9b43cdc939c094480e854195123ea22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Sep 2025 18:30:36 +0200 Subject: [PATCH 42/49] Bump mkdocs-autorefs from 1.4.2 to 1.4.3 (#686) Bumps [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) from 1.4.2 to 1.4.3. - [Release notes](https://github.com/mkdocstrings/autorefs/releases) - [Changelog](https://github.com/mkdocstrings/autorefs/blob/main/CHANGELOG.md) - [Commits](https://github.com/mkdocstrings/autorefs/compare/1.4.2...1.4.3) --- updated-dependencies: - dependency-name: mkdocs-autorefs dependency-version: 1.4.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index d79db54..cd22035 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 -mkdocs-autorefs==1.4.2 +mkdocs-autorefs==1.4.3 mkdocs-material==9.6.18 mkdocs-material-extensions==1.3.1 mkdocstrings==0.30.0 \ No newline at end of file From b4a8dd226aca415c2730176f84faeba78c42d38f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 19:40:29 +0200 Subject: [PATCH 43/49] Bump mkdocs-material from 9.6.18 to 9.6.20 (#691) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.18 to 9.6.20. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.18...9.6.20) --- updated-dependencies: - dependency-name: mkdocs-material dependency-version: 9.6.20 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index cd22035..14f238b 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.3 -mkdocs-material==9.6.18 +mkdocs-material==9.6.20 mkdocs-material-extensions==1.3.1 mkdocstrings==0.30.0 \ No newline at end of file From 91c34e666427f70e542502cab99ec889643a74b3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:13:40 +0200 Subject: [PATCH 44/49] Add new iOS versions and build numbers (#692) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index b52fa00..25344a0 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1143,5 +1143,9 @@ { "version": "18.6.2", "build": "22G100" + }, + { + "version": "26", + "build": "23A341" } -] +] \ No newline at end of file From f020655a1af318ebea39dc22d2f9c8c4f636ff27 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Sep 2025 15:52:32 +0200 Subject: [PATCH 45/49] Add new iOS versions and build numbers (#693) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index 25344a0..c3f2288 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -895,6 +895,10 @@ "version": "15.8.4", "build": "19H390" }, + { + "version": "15.8.5", + "build": "19H394" + }, { "build": "20A362", "version": "16.0" @@ -1000,6 +1004,10 @@ "version": "16.7.11", "build": "20H360" }, + { + "version": "16.7.12", + "build": "20H364" + }, { "version": "17.0", "build": "21A327" @@ -1144,6 +1152,10 @@ "version": "18.6.2", "build": "22G100" }, + { + "version": "18.7", + "build": "22H20" + }, { "version": "26", "build": "23A341" From 0778d448dfb566216a45417318a8da29c3130a10 Mon Sep 17 00:00:00 2001 From: besendorf Date: Fri, 19 Sep 2025 07:31:17 +0200 Subject: [PATCH 46/49] make virustotal check also work with androidqf extractions (#685) --- src/mvt/android/modules/adb/packages.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mvt/android/modules/adb/packages.py b/src/mvt/android/modules/adb/packages.py index 1d9c821..421ac88 100644 --- a/src/mvt/android/modules/adb/packages.py +++ b/src/mvt/android/modules/adb/packages.py @@ -107,8 +107,7 @@ class Packages(AndroidExtraction): result["matched_indicator"] = ioc self.detected.append(result) - @staticmethod - def check_virustotal(packages: list) -> None: + def check_virustotal(self, packages: list) -> None: hashes = [] for package in packages: for file in package.get("files", []): @@ -143,8 +142,15 @@ class Packages(AndroidExtraction): for package in packages: for file in package.get("files", []): - row = [package["package_name"], file["path"]] - + if "package_name" in package: + row = [package["package_name"], file["path"]] + elif "name" in package: + row = [package["name"], file["path"]] + else: + self.log.error( + f"Package {package} has no name or package_name. packages.json or apks.json is malformed" + ) + continue if file["sha256"] in detections: detection = detections[file["sha256"]] positives = detection.split("/")[0] From 62b880fbff942aab2b3ac979db66a5f7491c01ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 20:03:04 +0200 Subject: [PATCH 47/49] Bump mkdocstrings from 0.30.0 to 0.30.1 (#697) Bumps [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) from 0.30.0 to 0.30.1. - [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases) - [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md) - [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.30.0...0.30.1) --- updated-dependencies: - dependency-name: mkdocstrings dependency-version: 0.30.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 14f238b..e6c51bb 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,4 +2,4 @@ mkdocs==1.6.1 mkdocs-autorefs==1.4.3 mkdocs-material==9.6.20 mkdocs-material-extensions==1.3.1 -mkdocstrings==0.30.0 \ No newline at end of file +mkdocstrings==0.30.1 \ No newline at end of file From b8a42eaf8f7e3650755975e3e4193f24c592a870 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Sep 2025 20:42:12 +0200 Subject: [PATCH 48/49] Add new iOS versions and build numbers (#698) Co-authored-by: DonnchaC --- src/mvt/ios/data/ios_versions.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mvt/ios/data/ios_versions.json b/src/mvt/ios/data/ios_versions.json index c3f2288..c5f801f 100644 --- a/src/mvt/ios/data/ios_versions.json +++ b/src/mvt/ios/data/ios_versions.json @@ -1159,5 +1159,9 @@ { "version": "26", "build": "23A341" + }, + { + "version": "26.0.1", + "build": "23A355" } ] \ No newline at end of file From d3cc8cf590fdf0de5f8b9d28c7295298ec32dda9 Mon Sep 17 00:00:00 2001 From: besendorf Date: Sun, 5 Oct 2025 13:29:54 +0200 Subject: [PATCH 49/49] Add tzdata dependency (#700) * Add tzdata dependency * fix tzdata name --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index cb7911b..c23f83e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,6 +35,7 @@ dependencies = [ "pydantic-settings==2.10.1", "NSKeyedUnArchiver==1.5.2", "python-dateutil==2.9.0.post0", + "tzdata==2025.2", ] requires-python = ">= 3.10"