I have a Xiaomi Mi A1 running Android 8.1.0 and had no issues with it whatsoever but lately, completely out of the blue, the GPS readings became really jittery when using the phone for running tracking. I've been running with it for as long as I had it (a year or so), using Endomondo exclusively all that time as well. Then, one day two weeks ago or so (doesn't correlate with any update the phone would inform me about or anything), the readings just became really inaccurate, with distance error being something between 1 and 2km depending on the length of the run.
Just look at the comparison of an example of a concrete path along the lake near me from 3 months ago:
...and today:
It's a good example cause the path is always the same there, you can't run along it in any other way cause there literally is only one way to traverse it.
What could have happened and how can I try to fix it? All the obvious things are done of course, like restarting the phone, allowing Endo to use location features, turning battery optimization off for the app or other trivialities from the official Endo GPS troubleshooting guide.
EDIT with further researching: Tried checking whether the location data stutters when the phone is in place today too to make sure it's not a loose antenna problem for example and there are no changes in the location at all. It's completely stable and constant as long as the phone is in one place and then updates with no problems as soon as you move it. Also, I've changed during the run today and there are constantly between 12 and 18 satellites (out of 32) that the phone is connected to.
I don't think this is an Endomondo problem either cause I checked my Google Maps Timeline as I have it on and it makes the same weird twists in my routes as Endo, suddenly drawing my path through the buildings or concrete walls (like seen in the first post).
EDIT2: I thought this may have something to do with an update that does not get along well with something in my phone but I recently received an update to Android 9 and after extensive testing I have to admit the very same problem persists :( Does that mean something hardware-related malfunctioned in my device and I can do nothing to fix this apart from sending it in?