Skip to content

Commit 8bfa333

Browse files
committed
Merge main and add AndroidQF VirusTotal delay
2 parents 0b497da + b9f13b8 commit 8bfa333

236 files changed

Lines changed: 9185 additions & 5335 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66
version: 2
77
updates:
8-
- package-ecosystem: "pip" # See documentation for possible values
8+
- package-ecosystem: "uv" # See documentation for possible values
99
directory: "/" # Location of package manifests
1010
schedule:
1111
interval: "weekly"
12+
cooldown:
13+
default-days: 7

.github/workflows/mypy.yml

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
name: Mypy
2-
on: workflow_dispatch
2+
on:
3+
pull_request:
4+
branches: [main]
5+
workflow_dispatch:
36

47
jobs:
58
mypy_py3:
69
name: Mypy check
710
runs-on: ubuntu-latest
811

912
steps:
10-
- uses: actions/checkout@v4
13+
- name: Checkout
14+
uses: actions/checkout@v6
1115
- name: Setup Python
12-
uses: actions/setup-python@v4
16+
uses: actions/setup-python@v6
1317
with:
14-
python-version: 3.9
15-
cache: 'pip'
16-
- name: Checkout
17-
uses: actions/checkout@master
18+
python-version: "3.10"
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@v7
21+
with:
22+
enable-cache: true
1823
- name: Install Dependencies
1924
run: |
20-
pip install mypy
25+
uv sync --locked --group dev
2126
- name: mypy
2227
run: |
2328
make mypy

.github/workflows/publish-release-docker.yml

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ name: Create and publish a Docker image
44
# Configures this workflow to run every time a release is published.
55
on:
66
workflow_dispatch:
7+
push:
8+
branches: [main]
79
release:
810
types: [published]
911

@@ -23,9 +25,18 @@ jobs:
2325
attestations: write
2426
id-token: write
2527
#
28+
strategy:
29+
matrix:
30+
platform:
31+
- dockerfile: "Dockerfile"
32+
tag-suffix: ""
33+
- dockerfile: "Dockerfile.ios"
34+
tag-suffix: "-ios"
35+
- dockerfile: "Dockerfile.android"
36+
tag-suffix: "-android"
2637
steps:
2738
- name: Checkout repository
28-
uses: actions/checkout@v4
39+
uses: actions/checkout@v6
2940
# 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.
3041
- name: Log in to the Container registry
3142
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
@@ -36,26 +47,33 @@ jobs:
3647
# 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.
3748
- name: Extract metadata (tags, labels) for Docker
3849
id: meta
39-
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
50+
uses: docker/metadata-action@v5
4051
with:
4152
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
53+
flavor: |
54+
latest=false
55+
tags: |
56+
type=raw,value=latest,enable={{ is_default_branch }},suffix=${{ matrix.platform.tag-suffix }}
57+
type=raw,enable=${{ github.event_name == 'release' || github.ref_type == 'tag' }},value=stable,suffix=${{ matrix.platform.tag-suffix }}
58+
type=raw,enable=${{ github.event_name == 'release' }},value=${{ github.event.release.tag_name }},suffix=${{ matrix.platform.tag-suffix }}
59+
type=raw,enable=${{ github.ref_type == 'tag' }},value=${{ github.ref_name }},suffix=${{ matrix.platform.tag-suffix }}
60+
type=sha,suffix=${{ matrix.platform.tag-suffix }}
61+
type=sha,format=long,suffix=${{ matrix.platform.tag-suffix }}
62+
# This step sets up some additional capabilities to generate the provenance and sbom attestations
63+
- name: Set up Docker Buildx
64+
uses: docker/setup-buildx-action@v3
4265
# 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.
4366
# 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.
4467
# It uses the `tags` and `labels` parameters to tag and label the image with the output from the "meta" step.
4568
- name: Build and push Docker image
4669
id: push
47-
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
70+
uses: docker/build-push-action@v6
4871
with:
72+
file: ${{ matrix.platform.dockerfile }}
4973
context: .
5074
push: true
5175
tags: ${{ steps.meta.outputs.tags }}
5276
labels: ${{ steps.meta.outputs.labels }}
53-
54-
# 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)."
55-
- name: Generate artifact attestation
56-
uses: actions/attest-build-provenance@v1
57-
with:
58-
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
59-
subject-digest: ${{ steps.push.outputs.digest }}
60-
push-to-registry: true
77+
provenance: mode=max
78+
sbom: true
6179

.github/workflows/ruff.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,19 @@ jobs:
1111
runs-on: ubuntu-latest
1212

1313
steps:
14-
- uses: actions/checkout@v4
14+
- name: Checkout
15+
uses: actions/checkout@v6
1516
- name: Setup Python
16-
uses: actions/setup-python@v4
17+
uses: actions/setup-python@v6
1718
with:
18-
python-version: 3.9
19-
cache: 'pip'
20-
- name: Checkout
21-
uses: actions/checkout@master
19+
python-version: "3.10"
20+
- name: Install uv
21+
uses: astral-sh/setup-uv@v7
22+
with:
23+
enable-cache: true
2224
- name: Install Dependencies
2325
run: |
24-
pip install ruff
26+
uv sync --locked --group dev
2527
- name: ruff
2628
run: |
2729
make ruff

.github/workflows/tests.yml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,21 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
python-version: ['3.10', '3.11', '3.12', '3.13']
15+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
1616

1717
steps:
18-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@v6
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@v7
21+
with:
22+
enable-cache: true
1923
- name: Set up Python ${{ matrix.python-version }}
20-
uses: actions/setup-python@v4
24+
uses: actions/setup-python@v6
2125
with:
2226
python-version: ${{ matrix.python-version }}
2327
- name: Install Python dependencies
2428
run: |
25-
make install
26-
make test-requirements
29+
uv sync --locked --group dev --python ${{ matrix.python-version }}
2730
- name: Test with pytest
2831
run: |
2932
set -o pipefail

.github/workflows/update-ios-data.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Run script to fetch latest iOS releases from Apple RSS feed.
1717
run: python3 .github/workflows/scripts/update-ios-releases.py
1818
- name: Create Pull Request
19-
uses: peter-evans/create-pull-request@v5
19+
uses: peter-evans/create-pull-request@v8
2020
with:
2121
title: '[auto] Update iOS releases and versions'
2222
commit-message: Add new iOS versions and build numbers
@@ -27,4 +27,4 @@ jobs:
2727
add-paths: |
2828
*.json
2929
labels: |
30-
automated pr
30+
automated pr

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ ipython_config.py
8686
# pyenv
8787
.python-version
8888

89+
# uv project Python version
90+
!.python-version
91+
8992
# pipenv
9093
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
9194
# However, in case of collaboration, if having platform-specific dependencies or dependencies
@@ -138,4 +141,4 @@ dmypy.json
138141
.idea
139142

140143
# Sublime Text project files
141-
*.sublime*
144+
*.sublime*

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.10

.readthedocs.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@
66
version: 2
77

88
build:
9-
os: "ubuntu-22.04"
9+
os: "ubuntu-24.04"
1010
tools:
1111
python: "3.11"
1212

1313
mkdocs:
1414
configuration: mkdocs.yml
1515

16-
# Optionally set the version of Python and requirements required to build your docs
1716
python:
18-
install:
19-
- requirements: docs/requirements.txt
17+
install:
18+
- method: uv
19+
command: sync
20+
groups:
21+
- docs

Dockerfile

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Base image for building libraries
22
# ---------------------------------
3-
FROM ubuntu:22.04 as build-base
3+
FROM ubuntu:22.04 AS build-base
44

55
ARG DEBIAN_FRONTEND=noninteractive
66

@@ -22,7 +22,7 @@ RUN apt-get update \
2222

2323
# libplist
2424
# --------
25-
FROM build-base as build-libplist
25+
FROM build-base AS build-libplist
2626

2727
# Build
2828
RUN git clone https://github.com/libimobiledevice/libplist && cd libplist \
@@ -32,7 +32,7 @@ RUN git clone https://github.com/libimobiledevice/libplist && cd libplist \
3232

3333
# libimobiledevice-glue
3434
# ---------------------
35-
FROM build-base as build-libimobiledevice-glue
35+
FROM build-base AS build-libimobiledevice-glue
3636

3737
# Install dependencies
3838
COPY --from=build-libplist /build /
@@ -45,7 +45,7 @@ RUN git clone https://github.com/libimobiledevice/libimobiledevice-glue && cd li
4545

4646
# libtatsu
4747
# --------
48-
FROM build-base as build-libtatsu
48+
FROM build-base AS build-libtatsu
4949

5050
# Install dependencies
5151
COPY --from=build-libplist /build /
@@ -58,7 +58,7 @@ RUN git clone https://github.com/libimobiledevice/libtatsu && cd libtatsu \
5858

5959
# libusbmuxd
6060
# ----------
61-
FROM build-base as build-libusbmuxd
61+
FROM build-base AS build-libusbmuxd
6262

6363
# Install dependencies
6464
COPY --from=build-libplist /build /
@@ -72,7 +72,7 @@ RUN git clone https://github.com/libimobiledevice/libusbmuxd && cd libusbmuxd \
7272

7373
# libimobiledevice
7474
# ----------------
75-
FROM build-base as build-libimobiledevice
75+
FROM build-base AS build-libimobiledevice
7676

7777
# Install dependencies
7878
COPY --from=build-libplist /build /
@@ -88,7 +88,7 @@ RUN git clone https://github.com/libimobiledevice/libimobiledevice && cd libimob
8888

8989
# usbmuxd
9090
# -------
91-
FROM build-base as build-usbmuxd
91+
FROM build-base AS build-usbmuxd
9292

9393
# Install dependencies
9494
COPY --from=build-libplist /build /
@@ -103,7 +103,8 @@ RUN git clone https://github.com/libimobiledevice/usbmuxd && cd usbmuxd \
103103

104104

105105
# Create main image
106-
FROM ubuntu:24.04 as main
106+
FROM ubuntu:24.04 AS main
107+
COPY --from=ghcr.io/astral-sh/uv:0.11.8 /uv /uvx /usr/local/bin/
107108

108109
LABEL org.opencontainers.image.url="https://mvt.re"
109110
LABEL org.opencontainers.image.documentation="https://docs.mvt.re"
@@ -133,12 +134,8 @@ COPY --from=build-usbmuxd /build /
133134

134135
# Install mvt using the locally checked out source
135136
COPY . mvt/
136-
RUN apt-get update \
137-
&& apt-get install -y git python3-pip \
138-
&& PIP_NO_CACHE_DIR=1 pip3 install --break-system-packages ./mvt \
139-
&& apt-get remove -y python3-pip git && apt-get autoremove -y \
140-
&& rm -rf /var/lib/apt/lists/* \
141-
&& rm -rf mvt
137+
RUN uv pip install --system --break-system-packages --no-cache ./mvt \
138+
&& rm -rf mvt
142139

143140
# Installing ABE
144141
ADD --checksum=sha256:a20e07f8b2ea47620aff0267f230c3f1f495f097081fd709eec51cf2a2e11632 \

0 commit comments

Comments
 (0)