temp/geoclue: fork for A-GPS support
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
CC: @calebccff @a-wai