TrackerControl's WireGuard engine is compiled from Rust source. New F-Droid build entries must prepare the pinned Rust toolchain and Cargo dependencies before F-Droid starts its offline Gradle build.
The examples below use release 2026071201 / 2026.07.12. Substitute the
actual version code and version name for later releases.
Only tag a commit that includes the current rust-toolchain.toml,
wgbridge-rs/Cargo.lock, and scripts/setup_rust_android.sh files.
git tag 2026071201
git push origin 2026071201TrackerControl's F-Droid metadata uses numeric tags as release identifiers.
Fork fdroid/fdroiddata, then clone the fork and create a branch:
git clone https://gitlab.com/YOUR_USERNAME/fdroiddata.git
cd fdroiddata
git remote add upstream https://gitlab.com/fdroid/fdroiddata.git
git switch -c trackercontrol-2026071201Edit:
metadata/net.kollnig.missioncontrol.fdroid.yml
Append this entry under Builds::
- versionName: 2026.07.12-fdroid
versionCode: 2026071201
commit: '2026071201'
subdir: app
sudo:
- apt-get update
- apt-get install -y rustup gcc libc-dev
gradle:
- fdroid
prebuild:
- ../scripts/setup_rust_android.sh
ndk: r27cUpdate the current-version fields at the bottom of the file:
CurrentVersion: 2026.07.12-fdroid
CurrentVersionCode: 2026071201Keep the automatic-update configuration unchanged:
AutoUpdateMode: Version
UpdateCheckMode: Tags ^[0-9]+$With fdroidserver installed and available on PATH, run from the
fdroiddata checkout:
fdroid readmeta
fdroid lint net.kollnig.missioncontrol.fdroidFor an end-to-end local application check, first provision the pinned Rust dependencies while networking is available, then build the release offline:
./scripts/setup_rust_android.sh
./gradlew :app:assembleFdroidRelease --offlineThe APK should contain libwgbridge.so for armeabi-v7a, arm64-v8a, x86,
and x86_64.
From the fdroiddata checkout:
git add metadata/net.kollnig.missioncontrol.fdroid.yml
git commit -m "Update TrackerControl to 2026071201"
git push origin trackercontrol-2026071201Open a merge request from that branch into fdroid/fdroiddata:master.
Suggested merge-request description:
TrackerControl now builds its WireGuard engine from Rust source.
The prebuild step installs the repository-pinned Rust toolchain, Android
targets, and cargo-ndk, and fetches Cargo.lock dependencies. The Gradle build
itself runs Cargo with --locked --offline.
Locally verified with:
./gradlew :app:assembleFdroidRelease --offline
The checkupdates bot normally copies the previous build recipe, which does not contain the Rust preparation steps. Its source branch belongs to F-Droid's bot fork and may not be editable by the TrackerControl maintainers.
Create the complete merge request from the TrackerControl maintainer's own
fdroiddata fork as described above. Comment on the bot merge request with a
link to the replacement and ask F-Droid's maintainers to close the bot merge
request in favor of it.
F-Droid's general contribution guide is available at https://fdroid.gitlab.io/jekyll-fdroid/docs/Submitting_to_F-Droid_Quick_Start_Guide/.