WiFi-network moved, messing up location services

Hi,

I am using Mozilla Location Services through microG on my Android smartphone.

I recently moved cities and as a result of this, my location is being incorrectly resolved to my old address whenever I am at home (since my WiFi moved with me).

An easy solution might be to just change the SSID of my network, but that would be a hassle because of all the other devices that already use it.

Is there any way for MLS to forget about my WiFi network, so that it can re-learn its new position or alternatively forget it altogether? It doesn’t matter to me if it relearns it or forgets it forever.

My only requirement is that I do not want to change my SSID for reasons already mentioned.

Thanks in advance! and thanks for a great service :slight_smile:
//H

H, thanks for reaching out.

MLS will remove the old location if it detects that the WiFi station moved. It is first marked as “blocked” for about 30 days, and then the next observation is used to start tracking the new location. MLS detects it moved based a submission including the WiFi station and a GPS-backed position.

You can read all the details about observations and blocking in the MLS documentation:

https://ichnaea.readthedocs.io/en/latest/algo/observations.html

The most direct way to tell MLS about the new location is the geosubmit API:

https://ichnaea.readthedocs.io/en/latest/api/geosubmit2.html

It is difficult to use this API directly. Unfortunately, I am not aware of any applications that provide a convenient front end for this API for WiFi submissions.

Thank you for your reply.

Okay, so by that logic, my station should already count as moved. Correct?
Then I don’t understand why my location is resolved to my old address when I am in fact at my new address.

This may indicate something else being wrong, but in that case I have no clue what might affect my location services like this.

I don’t really understand the documentation, but I’ll wait another 30 days and see what happens.

Yes, the fact that you are getting your old location means that MLS hasn’t seen your WiFi as moved. It will probably not be enough to use MLS through MicroG (“geolocate”) to teach MLS that you have moved. You’ll need to submit a new location (“geosubmit”) to force the issue and start the blocking process.

I’m not a MicroG user, but you may want to check if there is a way to submit corrections, so that they will be submitted upstream. Or, there may be a way to use a different service from MLS.

Okay, I will look into using the API even though it doesnt seem very user friendly.

I only have to move 2 networks and then I’m done.

I think microG used to have an option to install the Stumbler agent, but that project seems dead by now.

Just on an related note, now that Stumbler app is dead, how does MLS get new data and update data for station locations?

Thanks for your replies. Interesting stuff.

MLS has far fewer sources for new and updated data than it did in the past. Older versions of Firefox on Android (Fennec) included an optional submitter, but the newest versions of Firefox on Android (codename Fenix, released 2020) do not, and the feature requests to add it have been closed.

Before it was retired, Stumbler was being used less and less because it no longer ran on current versions of Android.

Despite being no longer supported, there are thousands of submissions a day from these sources. It doesn’t compare to when they were supported.

I’m working with my team to find options and resources for a Mozilla-maintained submitter, but the trend is not good.

Adam Zamojski’s Tower Collector is still in development, and can submit cell data to both OpenCellID.org and MLS. There is a need for collectors for other platforms, including desktop Linux, that could be met by third parties.

I had the same problem, and went mad enough that I did go down the API path with curl to solve it.

This is what I used to update my BSSID’s so that geolocate / MLS would work correctly for me after I moved country with my AP’s:

To set:

curl -v -X POST https://location.services.mozilla.com/v2/geosubmit -H 'Content-Type: application/json' -d '{"items": [{
    "position": {
        "latitude": -36.000000,
        "longitude": 142.000000,
        "accuracy": 10.0,
        "age": 1000,
        "altitude": 131.0,
        "altitudeAccuracy": 10.0,
        "heading": 45.0,
        "pressure": 1013.25,
        "speed": 0,
        "source": "manual"
    },
    "wifiAccessPoints": [
        {
            "macAddress": "00:11:32:11:22:33",
            "age": 5000,
            "channel": 3,
            "frequency": 2422,
            "radioType": "802.11ac",
            "signalToNoiseRatio": 13,
            "signalStrength": -77
        },
        {
            "macAddress": "00:11:32:44:55:66"
        }
    ]
}]}'

It is important to use at least 2x BSSID mac-addresses as per the API requirements. (I ended up doing one set for 5Ghz and one set for 2.4Ghz).

The change will not go through immediately, so you will need to check it periodically (for me I checked it about 15 hours later). It’s a good idea that you also check your existing mac-addresses first to see their current lon,lat.

To check:

curl -v -X POST https://location.services.mozilla.com/v1/geolocate?key=geoclue -H 'Content-Type: application/json' -d '{    
	"wifiAccessPoints": [{
            "macAddress": "00:11:32:11:22:33",
            "signalStrength": -77
        }, {
            "macAddress": "00:11:32:44:55:66"
        }]
}'

Hope this helps out someone that also enjoys pulling their hair out and then putting it back in strand by strand.

1 Like