Skip to content

OpenVitals 2.2.2

github-actions[bot] edited this page Nov 9, 2026 · 1 revision

Released 2026-07-13.

The second half of what 2.2.1 started. 2.2.1 took Google's proprietary code out of the app so that F-Droid could build it; this one makes the build reproducible, which is what F-Droid needs in order to ship it.

Changed

  • The app now builds bit-for-bit identically on someone else's computer. F-Droid does not take our word for what is in the APK: it builds the app from source on its own servers and compares the result, byte by byte, against the release published here. Only if the two match will it distribute the copy we signed. Everything already matched — the compiled Dart code, the resources, the assets — except twenty bytes, in one library nobody wrote: a build-id, a hash the linker stamps into libdartjni.so. Because that hash is taken before the debug information is stripped, it silently fingerprints the absolute paths of the machine that did the build, so two computers could compile identical code and still disagree about it. The build no longer stamps it. There is nothing left to disagree about, and the APK you download is now provably the one the source produces.

Nothing else changed. There is no behavioural difference between 2.2.1 and 2.2.2; the release exists so that F-Droid can verify and distribute the app.

The Codeberg and Play builds keep the same package name and signing certificate, so this installs as a normal update — and because the build verifies, F-Droid users get that same signed APK rather than a differently-signed rebuild.

Distribution flow:

  • Codeberg release with signed APK and signed Android App Bundle assets.
  • Direct Google Play production upload from the approved Woodpecker deployment.

Generated from docs/releases/2.2.2.md. Edit it there; changes made here are overwritten.

Home

Features

How-to

App

Reference

Engineering

Proposals

Releases

Project

Clone this wiki locally