Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: mvt-project/mvt
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.4.2
Choose a base ref
...
head repository: mvt-project/mvt
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Sep 8, 2023

  1. Add new iOS versions and build numbers (#385)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Sep 8, 2023
    Copy the full SHA
    2bfe544 View commit details
  2. Adds warning for lockdown mode

    Te-k committed Sep 8, 2023
    Copy the full SHA
    04b4482 View commit details

Commits on Sep 9, 2023

  1. Updated copyright notice

    botherder committed Sep 9, 2023
    Copy the full SHA
    9988887 View commit details

Commits on Sep 12, 2023

  1. Update ios_versions.json (#386)

    Add iOS 15.7.9 + build number
    r-tx authored Sep 12, 2023
    Copy the full SHA
    ba1d969 View commit details

Commits on Sep 18, 2023

  1. add 4 new iphone 15 models (#387)

    Co-authored-by: r-tx <r-tx@users.noreply.github.com>
    r-tx and r-tx authored Sep 18, 2023
    Copy the full SHA
    e96ffbb View commit details
  2. Fixes json format

    Te-k committed Sep 18, 2023
    Copy the full SHA
    0c7ea14 View commit details
  3. Add new iOS versions and build numbers (#388)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Sep 18, 2023
    Copy the full SHA
    94a98b4 View commit details
  4. additional iOS 17.0 build numbers (#390)

    Co-authored-by: r-tx <r-tx@users.noreply.github.com>
    r-tx and r-tx authored Sep 18, 2023
    Copy the full SHA
    b39936a View commit details

Commits on Sep 22, 2023

  1. Add new iOS versions and build numbers (#393)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Sep 22, 2023
    Copy the full SHA
    97af2d3 View commit details

Commits on Sep 23, 2023

  1. Copy the full SHA
    65cee2a View commit details
  2. Merge pull request #394 from mvt-project/auto/add-new-ios-releases

    [auto] Update iOS releases and versions
    DonnchaC authored Sep 23, 2023
    Copy the full SHA
    da6116e View commit details

Commits on Sep 26, 2023

  1. Copy the full SHA
    4bdb97e View commit details
  2. Fixes bug in locationd module

    Te-k committed Sep 26, 2023
    Copy the full SHA
    652dedd View commit details

Commits on Sep 27, 2023

  1. Squashed commit of the following:

    commit 2b8ab1bedf72769bcf915e0c78330de98722a449
    Author: tek <tek@randhome.io>
    Date:   Wed Sep 27 11:33:02 2023 +0200
    
        Fixes formatting issue
    
    commit 6a653c0
    Author: DonnchaC <DonnchaC@users.noreply.github.com>
    Date:   Wed Sep 27 00:15:14 2023 +0000
    
        Add new iOS versions and build numbers
    Te-k committed Sep 27, 2023
    Copy the full SHA
    a7da992 View commit details

Commits on Sep 30, 2023

  1. Copy the full SHA
    eb5bfb7 View commit details

Commits on Oct 4, 2023

  1. Copy the full SHA
    4f3a16d View commit details
  2. Merge pull request #405 from mvt-project/auto/add-new-ios-releases

    [auto] Update iOS releases and versions
    DonnchaC authored Oct 4, 2023
    Copy the full SHA
    e872e34 View commit details
  3. Copy the full SHA
    63c4dea View commit details

Commits on Oct 7, 2023

  1. Copy the full SHA
    499ded4 View commit details

Commits on Oct 11, 2023

  1. Add new iOS versions and build numbers (#406)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Oct 11, 2023
    Copy the full SHA
    737d170 View commit details

Commits on Oct 26, 2023

  1. Add new iOS versions and build numbers (#409)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Oct 26, 2023
    Copy the full SHA
    63299b5 View commit details
  2. Fixes change in ruff syntax

    Te-k committed Oct 26, 2023
    Copy the full SHA
    5462c8d View commit details

Commits on Nov 2, 2023

  1. Copy the full SHA
    353381a View commit details

Commits on Nov 7, 2023

  1. Copy the full SHA
    7b1c0f6 View commit details

Commits on Nov 8, 2023

  1. Add new iOS versions and build numbers (#411)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Nov 8, 2023
    Copy the full SHA
    5b0fdd1 View commit details
  2. Copy the full SHA
    f786e2c View commit details
  3. Merge pull request #412 from mvt-project/update-securitylab-url

    Update docs to point to Security Lab website
    DonnchaC authored Nov 8, 2023
    Copy the full SHA
    8796a0b View commit details

Commits on Nov 9, 2023

  1. Try fix ReadTheDocs build

    DonnchaC committed Nov 9, 2023
    Copy the full SHA
    894b99b View commit details
  2. Fix invalid docs file path

    DonnchaC committed Nov 9, 2023
    Copy the full SHA
    bdd0124 View commit details
  3. Merge pull request #413 from mvt-project/update-securitylab-url

    Fix ReadTheDocs build with new configuration
    DonnchaC authored Nov 9, 2023
    Copy the full SHA
    815678d View commit details

Commits on Nov 15, 2023

  1. Add CustomJSONEncoder to handle bytes types (#414)

    Adds a custom JSON encoder class to fix serialisation issues where modules included bytes types containing non-utf8 bytes, which can't be serialised to JSON.
    
    ---------
    
    Co-authored-by: Rory Flynn <rory.flynn@amnesty.org>
    roaree and roaree authored Nov 15, 2023
    Copy the full SHA
    4b4cad4 View commit details
  2. Update net_base.py (#416)

    Fix Bug in checking for ZLIVEUSAGE.TIMESTAMP
    Helthy authored Nov 15, 2023
    Copy the full SHA
    2098201 View commit details

Commits on Nov 18, 2023

  1. Bumps version

    Te-k committed Nov 18, 2023
    Copy the full SHA
    7310481 View commit details

Commits on Nov 22, 2023

  1. Copy the full SHA
    1d075ab View commit details

Commits on Nov 27, 2023

  1. Copy the full SHA
    c8a0327 View commit details
  2. docker tweaks (#424)

    Co-authored-by: r-tx <r-tx@users.noreply.github.com>
    r-tx and r-tx authored Nov 27, 2023
    Copy the full SHA
    acc9503 View commit details
  3. Copy the full SHA
    fb52f73 View commit details

Commits on Nov 28, 2023

  1. Copy the full SHA
    fd3ef76 View commit details

Commits on Dec 1, 2023

  1. Add new iOS versions and build numbers (#432)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Dec 1, 2023
    Copy the full SHA
    101098c View commit details

Commits on Dec 4, 2023

  1. Mark release 2.4.4 (#433)

    roaree authored Dec 4, 2023
    Copy the full SHA
    4a6b483 View commit details

Commits on Dec 9, 2023

  1. Copy the full SHA
    61f33f7 View commit details

Commits on Dec 11, 2023

  1. Mark release 2.4.5 (#436)

    roaree authored Dec 11, 2023
    Copy the full SHA
    a1571c1 View commit details

Commits on Dec 12, 2023

  1. Add new iOS versions and build numbers (#437)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Dec 12, 2023
    Copy the full SHA
    ab33789 View commit details

Commits on Dec 17, 2023

  1. Impovements for SMS module (#438)

    * Add indicator checking in the SMS module
    
    * Don't add SMS entries when read timestamp not set
    
    * Remove print() line
    DonnchaC authored Dec 17, 2023
    Copy the full SHA
    013282d View commit details

Commits on Dec 28, 2023

  1. add uri=True to sqlite3.connect args (#442)

    Co-authored-by: msx98 <msx98@xb.ax>
    msx98 and msx98 authored Dec 28, 2023
    Copy the full SHA
    b7df87a View commit details

Commits on Jan 3, 2024

  1. Circular reference in SMS module serialization (#444)

    * Fix circular reference in SMS module serialization
    * Modify SMS test artifact to include date_read
    roaree authored Jan 3, 2024
    Copy the full SHA
    2838bac View commit details
  2. dumpsys_accessibility.py: Spell accessibility correctly (#441)

    * dumpsys_accessibility.py: Spell accessibility correctly
    
    * Fix typo
    cclauss authored Jan 3, 2024
    Copy the full SHA
    5d2ff32 View commit details
  3. Add new iOS versions and build numbers (#439)

    Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
    github-actions[bot] and DonnchaC authored Jan 3, 2024
    Copy the full SHA
    2c5ae69 View commit details

Commits on Jan 4, 2024

  1. Mark release 2.5.0 (#445)

    roaree authored Jan 4, 2024
    Copy the full SHA
    ad3bc34 View commit details

Commits on Jan 10, 2024

  1. change vt flag to -V (#440)

    Co-authored-by: r-tx <r-tx@users.noreply.github.com>
    r-tx and r-tx authored Jan 10, 2024
    Copy the full SHA
    1182587 View commit details
Showing with 15,776 additions and 1,456 deletions.
  1. +19 −0 .github/workflows/add-issue-to-project.yml
  2. +0 −11 .github/workflows/black.yml
  3. +23 −0 .github/workflows/mypy.yml
  4. +61 −0 .github/workflows/publish-release-docker.yml
  5. +0 −49 .github/workflows/python-package.yml
  6. +10 −2 .github/workflows/ruff.yml
  7. +11 −4 .github/workflows/scripts/update-ios-releases.py
  8. +38 −0 .github/workflows/tests.yml
  9. +1 −0 .github/workflows/update-ios-data.yml
  10. +5 −1 .readthedocs.yaml
  11. +11 −0 .safety-policy.yml
  12. +54 −8 CONTRIBUTING.md
  13. +132 −52 Dockerfile
  14. +36 −0 Dockerfile.android
  15. +137 −0 Dockerfile.ios
  16. +30 −9 Makefile
  17. +4 −4 README.md
  18. +0 −14 dev/mvt-android
  19. +0 −14 dev/mvt-ios
  20. +1 −1 docs/android/download_apks.md
  21. +43 −0 docs/command_completion.md
  22. +19 −1 docs/docker.md
  23. +1 −1 docs/index.md
  24. +49 −10 docs/install.md
  25. +1 −1 docs/introduction.md
  26. +10 −0 docs/iocs.md
  27. +3 −3 docs/ios/backup/itunes.md
  28. +2 −2 docs/ios/install.md
  29. +5 −5 docs/requirements.txt
  30. +2 −2 mkdocs.yml
  31. +0 −36 mvt/android/artifacts/artifact.py
  32. +0 −118 mvt/android/modules/androidqf/dumpsys_packages.py
  33. +0 −131 mvt/android/modules/bugreport/packages.py
  34. +0 −131 mvt/android/parsers/dumpsys.py
  35. +0 −19 mvt/android/utils.py
  36. +0 −4 mvt/common/__init__.py
  37. +0 −18 mvt/common/help.py
  38. +0 −6 mvt/common/version.py
  39. +0 −4 mvt/ios/modules/__init__.py
  40. +106 −0 pyproject.toml
  41. +0 −6 ruff.toml
  42. +0 −14 scripts/lint.sh
  43. +0 −96 setup.cfg
  44. +0 −8 setup.py
  45. +1 −1 { → src}/mvt/__init__.py
  46. +1 −1 { → src}/mvt/android/__init__.py
  47. +1 −1 {mvt/android/parsers → src/mvt/android/artifacts}/__init__.py
  48. +42 −0 src/mvt/android/artifacts/artifact.py
  49. +22 −1 { → src}/mvt/android/artifacts/dumpsys_accessibility.py
  50. +163 −0 src/mvt/android/artifacts/dumpsys_adb.py
  51. +41 −8 { → src}/mvt/android/artifacts/dumpsys_appops.py
  52. +1 −1 { → src}/mvt/android/artifacts/dumpsys_battery_daily.py
  53. +1 −1 { → src}/mvt/android/artifacts/dumpsys_battery_history.py
  54. +1 −1 { → src}/mvt/android/artifacts/dumpsys_dbinfo.py
  55. +1 −1 { → src}/mvt/android/artifacts/dumpsys_package_activities.py
  56. +202 −0 src/mvt/android/artifacts/dumpsys_packages.py
  57. +42 −0 src/mvt/android/artifacts/dumpsys_platform_compat.py
  58. +1 −1 { → src}/mvt/android/artifacts/dumpsys_receivers.py
  59. +43 −0 src/mvt/android/artifacts/file_timestamps.py
  60. +12 −1 { → src}/mvt/android/artifacts/getprop.py
  61. +1 −1 { → src}/mvt/android/artifacts/processes.py
  62. +11 −1 { → src}/mvt/android/artifacts/settings.py
  63. +272 −0 src/mvt/android/artifacts/tombstone_crashes.py
  64. +33 −51 { → src}/mvt/android/cli.py
  65. +1 −1 { → src}/mvt/android/cmd_check_adb.py
  66. +1 −1 { → src}/mvt/android/cmd_check_androidqf.py
  67. +1 −1 { → src}/mvt/android/cmd_check_backup.py
  68. +1 −1 { → src}/mvt/android/cmd_check_bugreport.py
  69. +5 −3 { → src}/mvt/android/cmd_download_apks.py
  70. +1 −1 {mvt/android/artifacts → src/mvt/android/modules}/__init__.py
  71. +3 −1 { → src}/mvt/android/modules/adb/__init__.py
  72. +4 −5 { → src}/mvt/android/modules/adb/base.py
  73. +3 −2 { → src}/mvt/android/modules/adb/chrome_history.py
  74. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_accessibility.py
  75. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_activities.py
  76. +45 −0 src/mvt/android/modules/adb/dumpsys_adbstate.py
  77. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_appops.py
  78. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_battery_daily.py
  79. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_battery_history.py
  80. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_dbinfo.py
  81. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_full.py
  82. +1 −1 { → src}/mvt/android/modules/adb/dumpsys_receivers.py
  83. +1 −1 { → src}/mvt/android/modules/adb/files.py
  84. +1 −1 { → src}/mvt/android/modules/adb/getprop.py
  85. +1 −1 { → src}/mvt/android/modules/adb/logcat.py
  86. +26 −76 { → src}/mvt/android/modules/adb/packages.py
  87. +1 −1 { → src}/mvt/android/modules/adb/processes.py
  88. +1 −1 { → src}/mvt/android/modules/adb/root_binaries.py
  89. +1 −1 { → src}/mvt/android/modules/adb/selinux_status.py
  90. +1 −1 { → src}/mvt/android/modules/adb/settings.py
  91. +8 −5 { → src}/mvt/android/modules/adb/sms.py
  92. +3 −2 { → src}/mvt/android/modules/adb/whatsapp.py
  93. +9 −1 { → src}/mvt/android/modules/androidqf/__init__.py
  94. +33 −1 { → src}/mvt/android/modules/androidqf/base.py
  95. +2 −2 { → src}/mvt/android/modules/androidqf/dumpsys_accessibility.py
  96. +1 −1 { → src}/mvt/android/modules/androidqf/dumpsys_activities.py
  97. +51 −0 src/mvt/android/modules/androidqf/dumpsys_adb.py
  98. +1 −1 { → src}/mvt/android/modules/androidqf/dumpsys_appops.py
  99. +1 −1 { → src}/mvt/android/modules/androidqf/dumpsys_battery_daily.py
  100. +1 −1 { → src}/mvt/android/modules/androidqf/dumpsys_battery_history.py
  101. +1 −1 { → src}/mvt/android/modules/androidqf/dumpsys_dbinfo.py
  102. +62 −0 src/mvt/android/modules/androidqf/dumpsys_packages.py
  103. +44 −0 src/mvt/android/modules/androidqf/dumpsys_platform_compat.py
  104. +1 −1 { → src}/mvt/android/modules/androidqf/dumpsys_receivers.py
  105. +151 −0 src/mvt/android/modules/androidqf/files.py
  106. +1 −1 { → src}/mvt/android/modules/androidqf/getprop.py
  107. +65 −0 src/mvt/android/modules/androidqf/logfile_timestamps.py
  108. +128 −0 src/mvt/android/modules/androidqf/packages.py
  109. +1 −1 { → src}/mvt/android/modules/androidqf/processes.py
  110. +1 −1 { → src}/mvt/android/modules/androidqf/settings.py
  111. +1 −1 { → src}/mvt/android/modules/androidqf/sms.py
  112. +1 −1 { → src}/mvt/android/modules/backup/__init__.py
  113. +1 −1 { → src}/mvt/android/modules/backup/base.py
  114. +10 −9 { → src}/mvt/android/modules/backup/helpers.py
  115. +3 −2 { → src}/mvt/android/modules/backup/sms.py
  116. +9 −1 { → src}/mvt/android/modules/bugreport/__init__.py
  117. +1 −1 { → src}/mvt/android/modules/bugreport/accessibility.py
  118. +1 −1 { → src}/mvt/android/modules/bugreport/activities.py
  119. +54 −0 src/mvt/android/modules/bugreport/adb_state.py
  120. +1 −1 { → src}/mvt/android/modules/bugreport/appops.py
  121. +10 −3 { → src}/mvt/android/modules/bugreport/base.py
  122. +1 −1 { → src}/mvt/android/modules/bugreport/battery_daily.py
  123. +1 −1 { → src}/mvt/android/modules/bugreport/battery_history.py
  124. +1 −1 { → src}/mvt/android/modules/bugreport/dbinfo.py
  125. +55 −0 src/mvt/android/modules/bugreport/fs_timestamps.py
  126. +1 −1 { → src}/mvt/android/modules/bugreport/getprop.py
  127. +62 −0 src/mvt/android/modules/bugreport/packages.py
  128. +48 −0 src/mvt/android/modules/bugreport/platform_compat.py
  129. +1 −1 { → src}/mvt/android/modules/bugreport/receivers.py
  130. +64 −0 src/mvt/android/modules/bugreport/tombstones.py
  131. +1 −1 {mvt/android/modules → src/mvt/android/parsers}/__init__.py
  132. +4 −2 { → src}/mvt/android/parsers/backup.py
  133. 0 src/mvt/android/parsers/proto/__init__.py
  134. +195 −0 src/mvt/android/parsers/proto/tombstone.proto
  135. +208 −0 src/mvt/android/parsers/proto/tombstone.py
  136. +105 −0 src/mvt/android/utils.py
  137. +4 −0 src/mvt/common/__init__.py
  138. +1 −1 { → src}/mvt/common/artifact.py
  139. +2 −2 { → src}/mvt/common/cmd_check_iocs.py
  140. +49 −5 { → src}/mvt/common/command.py
  141. +105 −0 src/mvt/common/config.py
  142. +51 −0 src/mvt/common/help.py
  143. +180 −37 { → src}/mvt/common/indicators.py
  144. +21 −7 { → src}/mvt/common/logo.py
  145. +17 −12 { → src}/mvt/common/module.py
  146. +1 −1 { → src}/mvt/common/options.py
  147. +17 −8 { → src}/mvt/common/updates.py
  148. +97 −33 { → src}/mvt/common/url.py
  149. +36 −9 { → src}/mvt/common/utils.py
  150. +6 −0 src/mvt/common/version.py
  151. +1 −1 { → src}/mvt/common/virustotal.py
  152. +1 −1 { → src}/mvt/ios/__init__.py
  153. +35 −56 { → src}/mvt/ios/cli.py
  154. +1 −1 { → src}/mvt/ios/cmd_check_backup.py
  155. +1 −1 { → src}/mvt/ios/cmd_check_fs.py
  156. +17 −1 { → src}/mvt/ios/data/ios_models.json
  157. +172 −0 { → src}/mvt/ios/data/ios_versions.json
  158. +1 −1 { → src}/mvt/ios/decrypt.py
  159. +4 −0 src/mvt/ios/modules/__init__.py
  160. +1 −1 { → src}/mvt/ios/modules/backup/__init__.py
  161. +2 −2 { → src}/mvt/ios/modules/backup/backup_info.py
  162. +6 −1 { → src}/mvt/ios/modules/backup/configuration_profiles.py
  163. +9 −9 { → src}/mvt/ios/modules/backup/manifest.py
  164. +1 −1 { → src}/mvt/ios/modules/backup/profile_events.py
  165. +11 −4 { → src}/mvt/ios/modules/base.py
  166. +1 −1 { → src}/mvt/ios/modules/fs/__init__.py
  167. +4 −11 { → src}/mvt/ios/modules/fs/analytics.py
  168. +1 −1 { → src}/mvt/ios/modules/fs/analytics_ios_versions.py
  169. +3 −3 { → src}/mvt/ios/modules/fs/cache_files.py
  170. +1 −1 { → src}/mvt/ios/modules/fs/filesystem.py
  171. +1 −1 { → src}/mvt/ios/modules/fs/net_netusage.py
  172. +4 −5 { → src}/mvt/ios/modules/fs/safari_favicon.py
  173. +25 −4 { → src}/mvt/ios/modules/fs/shutdownlog.py
  174. +1 −1 { → src}/mvt/ios/modules/fs/version_history.py
  175. +2 −2 { → src}/mvt/ios/modules/fs/webkit_base.py
  176. +1 −1 { → src}/mvt/ios/modules/fs/webkit_indexeddb.py
  177. +1 −1 { → src}/mvt/ios/modules/fs/webkit_localstorage.py
  178. +1 −1 { → src}/mvt/ios/modules/fs/webkit_safariviewservice.py
  179. +1 −1 { → src}/mvt/ios/modules/mixed/__init__.py
  180. +11 −7 { → src}/mvt/ios/modules/mixed/applications.py
  181. +2 −3 { → src}/mvt/ios/modules/mixed/calendar.py
  182. +5 −6 { → src}/mvt/ios/modules/mixed/calls.py
  183. +5 −6 { → src}/mvt/ios/modules/mixed/chrome_favicon.py
  184. +3 −4 { → src}/mvt/ios/modules/mixed/chrome_history.py
  185. +2 −2 { → src}/mvt/ios/modules/mixed/contacts.py
  186. +4 −5 { → src}/mvt/ios/modules/mixed/firefox_favicon.py
  187. +3 −4 { → src}/mvt/ios/modules/mixed/firefox_history.py
  188. +3 −3 { → src}/mvt/ios/modules/mixed/global_preferences.py
  189. +1 −1 { → src}/mvt/ios/modules/mixed/idstatuscache.py
  190. +2 −2 { → src}/mvt/ios/modules/mixed/interactionc.py
  191. +24 −2 { → src}/mvt/ios/modules/mixed/locationd.py
  192. +1 −1 { → src}/mvt/ios/modules/mixed/net_datausage.py
  193. +14 −5 { → src}/mvt/ios/modules/mixed/osanalytics_addaily.py
  194. +4 −4 { → src}/mvt/ios/modules/mixed/safari_browserstate.py
  195. +3 −4 { → src}/mvt/ios/modules/mixed/safari_history.py
  196. +7 −6 { → src}/mvt/ios/modules/mixed/shortcuts.py
  197. +22 −14 { → src}/mvt/ios/modules/mixed/sms.py
  198. +8 −3 { → src}/mvt/ios/modules/mixed/sms_attachments.py
  199. +2 −2 { → src}/mvt/ios/modules/mixed/tcc.py
  200. +6 −4 { → src}/mvt/ios/modules/mixed/webkit_resource_load_statistics.py
  201. +3 −3 { → src}/mvt/ios/modules/mixed/webkit_session_resource_log.py
  202. +3 −4 { → src}/mvt/ios/modules/mixed/whatsapp.py
  203. +69 −43 { → src}/mvt/ios/modules/net_base.py
  204. +1 −1 { → src}/mvt/ios/versions.py
  205. +9 −0 test-requirements.txt
  206. +1 −1 tests/__init__.py
  207. +1 −1 tests/android/__init__.py
  208. +1 −1 tests/android/test_artifact.py
  209. +13 −1 tests/android/test_artifact_dumpsys_accessibility.py
  210. +56 −0 tests/android/test_artifact_dumpsys_adb.py
  211. +18 −2 tests/android/test_artifact_dumpsys_appops.py
  212. +1 −1 tests/android/test_artifact_dumpsys_battery_daily.py
  213. +1 −1 tests/android/test_artifact_dumpsys_battery_history.py
  214. +1 −1 tests/android/test_artifact_dumpsys_dbinfo.py
  215. +1 −1 tests/android/test_artifact_dumpsys_package_activities.py
  216. +42 −0 tests/android/test_artifact_dumpsys_packages.py
  217. +40 −0 tests/android/test_artifact_dumpsys_platform_compat.py
  218. +1 −1 tests/android/test_artifact_dumpsys_receivers.py
  219. +1 −1 tests/android/test_artifact_getprop.py
  220. +1 −1 tests/android/test_artifact_processes.py
  221. +67 −0 tests/android/test_artifact_tombstones.py
  222. +1 −1 tests/android/test_backup_module.py
  223. +1 −1 tests/android/test_backup_parser.py
  224. +1 −1 tests/android_androidqf/__init__.py
  225. +27 −0 tests/android_androidqf/test_dumpsys_adbstate.py
  226. +1 −1 tests/android_androidqf/test_dumpsys_battery_daily.py
  227. +1 −1 tests/android_androidqf/test_dumpsys_battery_history.py
  228. +1 −1 tests/android_androidqf/test_dumpsys_dbinfo.py
  229. +23 −0 tests/android_androidqf/test_dumpsys_platform_compat.py
  230. +1 −1 tests/android_androidqf/test_dumpsysaccessbility.py
  231. +7 −2 tests/android_androidqf/test_dumpsysappops.py
  232. +1 −1 tests/android_androidqf/test_dumpsyspackages.py
  233. +1 −1 tests/android_androidqf/test_dumpsysreceivers.py
  234. +25 −0 tests/android_androidqf/test_files.py
  235. +1 −1 tests/android_androidqf/test_getprop.py
  236. +133 −0 tests/android_androidqf/test_packages.py
  237. +1 −1 tests/android_androidqf/test_processes.py
  238. +1 −1 tests/android_androidqf/test_settings.py
  239. +1 −1 tests/android_androidqf/test_sms.py
  240. +7 −2 tests/android_bugreport/test_bugreport.py
  241. +18 −1 tests/artifacts/android_data/bugreport/dumpstate.txt
  242. +46 −0 tests/artifacts/android_data/dumpsys_accessibility_v14_or_later.txt
  243. BIN tests/artifacts/android_data/dumpsys_adb.txt
  244. +16 −0 tests/artifacts/android_data/dumpsys_adb_xml.txt
  245. +16 −0 tests/artifacts/android_data/dumpsys_platform_compat.txt
  246. BIN tests/artifacts/android_data/tombstone_process.pb
  247. +987 −0 tests/artifacts/android_data/tombstone_process.txt
  248. +30 −0 tests/artifacts/androidqf/dumpsys.txt
  249. +1 −0 tests/artifacts/androidqf/files.json
  250. +233 −0 tests/artifacts/androidqf/packages.json
  251. +41 −1 tests/artifacts/generate_stix.py
  252. BIN tests/artifacts/ios_backup/3d/3d0d7e5fb2ce288813306e4d4636395e047a3d28
  253. +1,147 −0 tests/artifacts/stix2/638cd3ee5e5f019f84f9e0ea.json
  254. +8,248 −0 tests/artifacts/stix2/cytrox.stix2
  255. +1 −1 tests/common/__init__.py
  256. +77 −9 tests/common/test_indicators.py
  257. +41 −2 tests/common/test_utils.py
  258. +33 −1 tests/conftest.py
  259. +1 −1 tests/ios_backup/__init__.py
  260. +1 −1 tests/ios_backup/test_backup_info.py
  261. +1 −1 tests/ios_backup/test_calendar.py
  262. +1 −1 tests/ios_backup/test_datausage.py
  263. +1 −1 tests/ios_backup/test_global_preferences.py
  264. +1 −1 tests/ios_backup/test_manifest.py
  265. +1 −1 tests/ios_backup/test_safari_browserstate.py
  266. +2 −2 tests/ios_backup/test_sms.py
  267. +1 −1 tests/ios_backup/test_tcc.py
  268. +1 −1 tests/ios_backup/test_webkit_resource_load_statistics.py
  269. +1 −1 tests/ios_fs/__init__.py
  270. +4 −13 tests/ios_fs/test_filesystem.py
  271. +5 −1 tests/test_check_android_androidqf.py
  272. +5 −1 tests/test_check_android_backup.py
  273. +1 −1 tests/test_check_android_bugreport.py
  274. +1 −1 tests/test_check_ios_backup.py
  275. +1 −1 tests/test_ios_versions.py
  276. +1 −1 tests/utils.py
19 changes: 19 additions & 0 deletions .github/workflows/add-issue-to-project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Add issue to project

on:
issues:
types:
- opened
- reopened

jobs:
add-to-project:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.5.0
with:
# You can target a project in a different organization
# to the issue
project-url: https://github.com/orgs/mvt-project/projects/1
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
11 changes: 0 additions & 11 deletions .github/workflows/black.yml

This file was deleted.

23 changes: 23 additions & 0 deletions .github/workflows/mypy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Mypy
on: workflow_dispatch

jobs:
mypy_py3:
name: Mypy check
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: 'pip'
- name: Checkout
uses: actions/checkout@master
- name: Install Dependencies
run: |
pip install mypy
- name: mypy
run: |
make mypy
61 changes: 61 additions & 0 deletions .github/workflows/publish-release-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#
name: Create and publish a Docker image

# Configures this workflow to run every time a release is published.
on:
workflow_dispatch:
release:
types: [published]

# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

# There is a single job in this workflow. It's configured to run on the latest available version of Ubuntu.
jobs:
build-and-push-image:
runs-on: ubuntu-latest
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
permissions:
contents: read
packages: write
attestations: write
id-token: write
#
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Uses the `docker/login-action` action to log in to the Container registry registry using the account and password that will publish the packages. Once published, the packages are scoped to the account defined here.
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# This step uses [docker/metadata-action](https://github.com/docker/metadata-action#about) to extract tags and labels that will be applied to the specified image. The `id` "meta" allows the output of this step to be referenced in a subsequent step. The `images` value provides the base name for the tags and labels.
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# This step uses the `docker/build-push-action` action to build the image, based on your repository's `Dockerfile`. If the build succeeds, it pushes the image to GitHub Packages.
# It uses the `context` parameter to define the build's context as the set of files located in the specified path. For more information, see "[Usage](https://github.com/docker/build-push-action#usage)" in the README of the `docker/build-push-action` repository.
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
- name: Build and push Docker image
id: push
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

# This step generates an artifact attestation for the image, which is an unforgeable statement about where and how it was built. It increases supply chain security for people who consume the image. For more information, see "[AUTOTITLE](/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds)."
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true

49 changes: 0 additions & 49 deletions .github/workflows/python-package.yml

This file was deleted.

12 changes: 10 additions & 2 deletions .github/workflows/ruff.yml
Original file line number Diff line number Diff line change
@@ -4,16 +4,24 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
ruff_py3:
name: Ruff syntax check
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: 'pip'
- name: Checkout
uses: actions/checkout@master
- name: Install Dependencies
run: |
pip install --user ruff
pip install ruff
- name: ruff
run: |
ruff --format=github .
make ruff
15 changes: 11 additions & 4 deletions .github/workflows/scripts/update-ios-releases.py
Original file line number Diff line number Diff line change
@@ -35,19 +35,26 @@ def parse_latest_ios_versions(rss_feed_text):
print("Could not parse iOS build:", title)
continue

# Handle iOS beta releases
release_info = build_match.groupdict()
if release_info["beta"]:
release_beta = release_info.pop("beta")
if release_beta:
print("Skipping beta release:", title)
continue

release_info.pop("beta")
latest_ios_versions.append(release_info)
# Some iOS releases have multiple build number for different hardware models.
# We will split these into separate entries and record each build number.
build_list = release_info.pop("build")
build_variants = build_list.split(" | ")
for build_number in build_variants:
release_info["build"] = build_number
latest_ios_versions.append(release_info)

return latest_ios_versions


def update_mvt(mvt_checkout_path, latest_ios_versions):
version_path = os.path.join(mvt_checkout_path, "mvt/ios/data/ios_versions.json")
version_path = os.path.join(mvt_checkout_path, "src/mvt/ios/data/ios_versions.json")
with open(version_path, "r") as version_file:
current_versions = json.load(version_file)

38 changes: 38 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build:
name: Run Python Tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10'] # , '3.11']

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
make install
make test-requirements
- name: Test with pytest
run: |
set -o pipefail
make test-ci | tee pytest-coverage.txt
- name: Pytest coverage comment
continue-on-error: true # Workflows running on a fork can't post comments
uses: MishaKav/pytest-coverage-comment@main
if: github.event_name == 'pull_request'
with:
pytest-coverage-path: ./pytest-coverage.txt
junitxml-path: ./pytest.xml
1 change: 1 addition & 0 deletions .github/workflows/update-ios-data.yml
Original file line number Diff line number Diff line change
@@ -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: true
body: |
This is an automated pull request to update the iOS releases and version numbers.
add-paths: |
6 changes: 5 additions & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -5,11 +5,15 @@
# Required
version: 2

build:
os: "ubuntu-22.04"
tools:
python: "3.11"

mkdocs:
configuration: mkdocs.yml

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: docs/requirements.txt
11 changes: 11 additions & 0 deletions .safety-policy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Safety Security and License Configuration file
# We recommend checking this file into your source control in the root of your Python project
# If this file is named .safety-policy.yml and is in the same directory where you run `safety check` it will be used by default.
# Otherwise, you can use the flag `safety check --policy-file <path-to-this-file>` to specify a custom location and name for the file.
# To validate and review your policy file, run the validate command: `safety validate policy_file --path <path-to-this-file>`
security: # configuration for the `safety check` command
ignore-vulnerabilities: # Here you can list multiple specific vulnerabilities you want to ignore (optionally for a time period)
67599: # Example vulnerability ID
reason: disputed, inapplicable
70612:
reason: disputed, inapplicable
62 changes: 54 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,65 @@
# Contributing
# Contributing to Mobile Verification Toolkit (MVT)

Thank you for your interest in contributing to Mobile Verification Toolkit (MVT)! Your help is very much appreciated.
We greatly appreciate contributions to MVT!

Your involvement, whether through identifying issues, improving functionality, or enhancing documentation, is very much appreciated. To ensure smooth collaboration and a welcoming environment, we've outlined some key guidelines for contributing below.

## Where to start
## Getting started

Starting to contribute to a somewhat complex project like MVT might seem intimidating. Unless you have specific ideas of new functionality you would like to submit, some good starting points are searching for `TODO:` and `FIXME:` comments throughout the code. Alternatively you can check if any GitHub issues existed marked with the ["help wanted"](https://github.com/mvt-project/mvt/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) tag.
Contributing to an open-source project like MVT might seem overwhelming at first, but we're here to support you!

Whether you're a technologist, a frontline human rights defender, a field researcher, or someone new to consensual spyware forensics, there are many ways to make meaningful contributions.

Here's how you can get started:

1. **Explore the codebase:**
- Browse the repository to get familar with MVT. Many MVT modules are simple in functionality and easy to understand.
- Look for `TODO:` or `FIXME:` comments in the code for areas that need attention.

2. **Check Github issues:**
- Look for issues tagged with ["help wanted"](https://github.com/mvt-project/mvt/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) or ["good first issue"](https://github.com/mvt-project/mvt/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to find tasks that are beginner-friendly or where input from the community would be helpful.

3. **Ask for guidance:**

- If you're unsure where to start, feel free to open a [discussion](https://github.com/mvt-project/mvt/discussions) or comment on an issue.

## How to contribute:

1. **Report issues:**

- Found a bug? Please check existing issues to see if it's already reported. If not, open a new issue. Mobile operating systems and databases are constantly evolving, an new errors may appear spontaniously in new app versions.

**Please provide as much information as possible about the prodblem including: any error messages, steps to reproduce the problem, and any logs or screenshots that can help.**


2. **Suggest features:**
- If you have an idea for new functionality, create a feature request issue and describe your proposal.

3. **Submit code:**
- Fork the repository and create a new branch for your changes.
- Ensure your changes align with the code style guidelines (see below).
- Open a pull request (PR) with a clear description of your changes and link it to any relevant issues.

4. **Documentation contributions:**
- Improving documentation is just as valuable as contributing code! If you notice gaps or inaccuracies in the documentation, feel free to submit changes or suggest updates.

## Code style
Please follow these code style guidelines for consistency and readability:

- **Indentation**: use 4 spaces per tab.
- **Quotes**: Use double quotes (`"`) by default. Use single quotes (`'`) for nested strings instead of escaping (`\"`), or when using f-formatting.
- **Maximum line length**:
- Aim for lines no longer than 80 characters.
- Exceptions are allowed for long log lines or strings, which may extend up to 100 characters.
- Wrap lines that exceed 100 characters.

Follow [PEP 8 guidelines](https://peps.python.org/pep-0008/) for indentation and overall Python code style. All MVT code is automatically linted with [Ruff](https://github.com/astral-sh/ruff) before merging.

Please check your code before opening a pull request by running `make ruff`

When contributing code to

- **Indentation**: we use 4-spaces tabs.
## Community and support

- **Quotes**: we use double quotes (`"`) as a default. Single quotes (`'`) can be favored with nested strings instead of escaping (`\"`), or when using f-formatting.
We aim to create a supportive and collaborative environment for all contributors. If you run into any challenges, feel free to reach out through the discussions or issues section of the repository.

- **Maximum line length**: we strongly encourage to respect a 80 characters long lines and to follow [PEP8 indentation guidelines](https://peps.python.org/pep-0008/#indentation) when having to wrap. However, if breaking at 80 is not possible or is detrimental to the readability of the code, exceptions are tolerated. For example, long log lines, or long strings can be extended to 100 characters long. Please hard wrap anything beyond 100 characters.
Your contributions, big or small, help improve MVT and are always appreciated.
Loading