Android build reproducibility improvements, F-Droid metadata alignment, and
toolchain pinning fixes across CI and release workflows.
Why
F-Droid builds packages in an isolated Debian buildserver environment and
verifies byte-level reproducibility against developer-provided binaries.
Aligning toolchains, strip passes, path remappings, and per-ABI version codes
allows F-Droid and GitHub Actions to produce bit-for-bit identical APKs.
Changes
- Reproducible Android native libraries:
- Pinned the Android NDK version (
28.1.13356709) across the Gradle version
catalog, GitHub workflows, and convention plugins. - Placed fixed path remapping (
--remap-path-prefix) in.cargo/config.toml
for Android targets so Cargo builds retain no host-dependent source paths.
- Pinned the Android NDK version (
- Per-ABI version codes:
- Added
package.metadata.android.version_codetoCargo.tomlas the base
version code (203010), wired to per-ABI offsets (+0universal,+1
armeabi-v7a,+2arm64-v8a,+3x86_64).
- Added
- Toolchain pinning consistency:
- Unified all stable Rust CI and release jobs to read
rust-toolchain.toml
directly without third-party action dependencies. - Included
rust-toolchain.tomlin the Docker build context.
- Unified all stable Rust CI and release jobs to read
- Workflow simplification:
- Removed post-test emulator APK hash assertions in favor of straightforward
instrumentation test verification and crash reporting.
- Removed post-test emulator APK hash assertions in favor of straightforward