FMD Android 0.12.0 and FMD Server 0.12.0
This week, we are releasing FMD Android 0.12.0 and FMD Server 0.12.0. Both are packed with new features, bug fixes, and security improvements. Upgrading is highly recommended.
It has been a while since the last releases in spring this year. Mostly, personal life has gotten in the way. Nevertheless, a lot of stuff has acculumated, and we hope you like the new features listed below. We also fixed some bugs, but I won't list them here for brevity.
More data: accuracy, altitude, bearing, and speed
Previously, when you ran fmd locate
, FMD only returned the coordinates (latitude, longitude), a time stamp, and the battery level.
Now, FMD also returns accuracy, altitude, bearing, and speed -- if they are available. GPS usually returns most of these values, but cell-based location does not. The accuracy describes the 68% confidence level that the true location lies within this range.
In FMD Server, the accuracy is rendered as circles. The other values are shown when you hover over a pin. Note that in order to not overload the map, accuracy circles are only shown for the selected location (shown in pink) and for five locations before and five after it.
And before you ask: yes, there is a feature request to request a certain accuracy level from FMD.
BeaconDB
When you run fmd locate cell
, FMD will now query not only OpenCelliD
but also BeaconDB.
This gives you another provider of cell-based locations.
Currently, FMD only sends the surrounding cellular networks to BeaconDB, but not the WiFi networks.
To contribute data to these databases, use NeoStumbler or Tower Collector. These allow you to collect and upload data about the wireless networks around you, paired with a precise GPS location. Later, apps like FMD can use this data to obtain a location estimate based on the wireless networks around them.
Note: due to a regression in 0.12.0 that I found too late, cell locations can show data that is outdated by a few minutes or even hours. Version 0.12.1 fixes this.
New command to change the ringer mode
FMD now has a new command: fmd ringermode [normal | vibrate | silent ]
.
For example, this is useful if your phone is on silent but you want to give it a phone call.
Custom tile server
You can now configure the tile server in the config.yml
,
thanks to a contribution by Gert-Jan Braas.
This allows server administrators to change the raster tile server for the map on their self-hosted FMD Server. Maybe you prefer one of the other available tile servers, or you want to use a self-hosted tile server.
Prometheus metrics and Grafana dashboard template
FMD Server now exposes a /metrics
endpoint that can be scraped by Prometheus.
It contains some FMD Server-specific metrics, as well as some other system metrics that come from Prometheus' Go library.
By default, this endpoint only listens on localhost for security reasons.
You can change the address and port in the config.yml
.
You will need to configure your networking so that your Prometheus scraper can securely reach this endpoint.
This is generic sysadmin task and is highly dependent on your setup.
There is also a template for a Grafana dashboard that you can import and customise. This is what it looks like on my personal FMD Server:
Security improvements
FMD Android now requires that all connections to FMD Server are secured by TLS certificates that are logged in Certificate Transparency (CT). This feature was introduced by Google in Android 16 and is therefore not available on older devices.
Furthermore, for the publicly hosted server fmd.nulide.de, FMD Android now only accepts certificates signed by Let's Encrypt (by pinning their root certificates, ISRG Root X1 and X2). If any other CA would now issue a certificate for fmd.nulide.de or any fmd-foss.org subdomain, the app will reject it.
Additionally, FMD Android now opts in to Arm Memory Tagging Extensions (MTE). This is mostly a matter of best practice, since our code is Kotlin/Java. To learn more about MTE, see this post on my personal blog.
Looking ahead
As you may have noticed, these releases don't yet include any of the features that are funded by NLnet. We are well aware of that, and we are working on it! After all, we would get money if we completed them :)
For now, enjoy these new releases of FMD!