Skip to content

temp/geoclue: fork for A-GPS support

Dylan Van Assche requested to merge dylanvanassche/pmaports:geoclue-agps into master

Description

Implement A-GPS support through location servers exposed by modems through ModemManager. This patch downloads the A-GPS data from the assistance server if network is available, inject it into the modem, and enables GPS.
Users can overwrite the assistance server by setting the 'url' property under 'modem-gps' for privacy reasons, by default it uses the servers exposed by the modem firmware.

Tested on

Tested on the Pine64 PinePhone, but should work as well on SDM845 based devices like the Oneplus 6 or POCOPHONE F1.

How to test this?

  • mrtest 3773
  • mmcli -G DEBUG
  • su geoclue -s /bin/ash
  • G_MESSAGES_DEBUG=all /usr/libexec/geoclue
  • Open GNOME Maps

In the GeoClue logs (see logs printed from command above) you will see somewhere:

Using GPS assistance data server <SERVER>
...
Using injected location data assisted GPS
...
<NMEA traces>

In the ModemManager logs (see logread) you will notice several logs about 'Injecting'.

Impact on other projects

The eg25-manager implements A-GPS already for the PinePhone but is device specific and not super stable. When this patch is released, the A-GPS sequence must be removed from the eg25-manager for the ModemManager backend. There's no support for oFono though.

Upstream

https://gitlab.freedesktop.org/geoclue/geoclue/-/merge_requests/140

Do Not Ship WIP

CC: @calebccff @a-wai

Edited by Dylan Van Assche

Merge request reports