When doing the GPS work for the Neo900, the following packages should be replaced:
liblas1 (low level library for talking to the cellular modem GPS server)
location-daemon (daemon for dealing with GPS coordinates from the cellular modem)
location-settings-default (default location settings)
liblocation-dev (library for talking to the GPS system)
liblocation0-doc (library for talking to the GPS system)
liblocation0 (library for talking to the GPS system)
location-status (location status bar widget)
location-control (location control panel)
location-ui (UI module for displaying GPS related UI such as permission and notification information)
location-proxy (daemon for communicating between the cellular modem GPS server and the external supl server)
The external interface of liblocation0 (as documented by liblocation-dev) will need to be replicated and made to talk to the Neo900 GPS hardware as appropriate. liblocation0 is used by the following stock packages: (in addition to other packages in extras and elsewhere)
In addition to this, libqtm-location needs the following gconf keys
And libqtm-systeminfo uses the existence of the gconf key /system/nokia/location to determine whether to enable location functionality. It also reads the /system/nokia/location/sim_imsi key to get the IMSI.
For external GPS support the (open source) packages gypsy-daemon and bluez should be referenced. They are open and documented so there is no need to talk again here about what they expose. The (closed but documented) package libconbtui aka conbtdialogs-dev will also help here.
And the com.nokia.wappush (documented) and com.nokia.ShortMessageHandler (undocumented) interfaces will be necessary to talk to if supporting wappush/SMS-push SUPL data is desired.
com.nokia.wappush.register is being passed the parameters x-oma-application:ulp.ua, com.nokia.Location.Proxy, /com/nokia/location/proxy. For incoming wappush SUPL information, it is checking the MIME type against application/vnd.omaloc-supl-init