GPS stopped working

Meanwhile Jolla is working on a proper solution for this matter you can give Supl Patcher Tool a try:

13 Likes

Binary only… but why?

Don’t want to be sued by Qualcomm for using NDA’ed or reverse engineered stuff that is.

2 Likes

I don’t see how that would provide any real protection, beyond against the most lazy attempts.
Also; there are loads of other tools in similar positions that seem to be just fine (QCSuper/SCAT/SnoopSnitch comes to mind).

@nekron Is there a reason why you write, that it is only for officially supported Xperia devices? I would try to use it on my Pro1. Or is there really something which speaks against?

As long as it uses a Qualcomm modem and has diag kernel module loaded (/dev/diag must be available) you could give it a try. I’ve only tested it against X, XA2, 10 I and 10 II and had no problems with it on any of these devices.

2 Likes

Thanx for the quick answer. I think it has a Qualcomm modem. But /dev/diag isn’t available.

Then… no luck with this, sorry :pleading_face: The diag driver must be compiled as kernel module and will be exposed as /dev/diag to “diagnose” (and fix) modem stuff.

I’ve read that your Xperia X has also trouble getting a fast fix.

I’m using the same device currently as my main daily driver and simply disabled SUPL TLS (--disable flag), changed the gps.conf and get a fix in << 10s indoors, << 2s outdoors.

SUPL ephemeris data simply resolves a lot of bad GPS design (hardware-wise like XA2 or systematic like GPS in general). No longer a 30s - 5min GPS “warmup” is needed for my daily exercise :wink:

1 Like

The Pro1 is my daily driver. The Xperia X belongs to my girlfriend. She will be happy to have a proper working GPS again. Thank you very much for your efforts!

2 Likes

Works for me on my XA2. SUPL had been working on my device for ages but now I can put supl-proxy in the chain and spoof the imsi. No need to tell Google my identity together with my position all the time. :sunglasses:

1 Like

Interresting, how do you achieve that?

Thanks for your feedback. It’s the reason why I included Let’s Encrypt root certificate to get SUPL proxy working for you (I remember your comment from nearly a year ago when you tried to archive this).

1 Like

Bad theory.
@flypig said that they also tested this on several daily used devices at Jolla.
But I still continue to think there is an issue with HW + eventually some SW problems.

Anyway too many stacks are mixed. I think we should focus on GPS only tests, without MLS.
When/if the GPS is solved/understude, we can go a step further to see how MLS works, then SUPL. (not saying @nekron solution is not good or not to use tho. It’s great too!)

I can test it too as my XA2 is sitting around doing nothing. I need gps everyday so I need to use android device.

What should I do then?

You could hack supl-proxy to exchange your IMSI with a random one in requests and revert the change for responses but I’m going to do that with a simple TCP proxy.

SUPL messages are encoded using ASN.1 PER according to this spec, hence strings are not neccessarily byte-aligned. You have to find the bitstring of your TBCD-encoded IMSI in requests and replace it. No need to understand the full protocol. That should be doable with half a page of Python code.

3 Likes

Being indoors and moving near a window, I now get a fix in just a few seconds. That is a huge improvement, so thank you! For now, I am just using the easy, unencrypted solution.

2 Likes

That is a good objection.
I will test the next few days with pure GPS mode without MLS. Since it should hopefully be enough to activate the exclusive device mode.

Since the A-GPS data expired on my Amazfit GTR, it now also needs about 5 minutes for a pure GPS fix.
That should be enough as a reference for the XA2.
The other solutions are also great, but do not fix the problem.

Thanks and good to hear its working for other sailors, too :slight_smile:
Option 1 (disable SUPL TLS) is really all you need to do. In case of you want more privacy TLS should be enabled but then without a proxy it’s almost pointless.

Nice work. Tried this on X10II right now, and while

  • suplpatch --disable executes correctly
  • created /system/etc/gps.conf with correct SUPL_{HOST,PORT} values (none existed, just /system/etc/gps_debug.conf)
  • rebooted
  • re-configured Location → High-accuracy positioning
  • wifi disabled
  • mobile data enabled and works

Neither Android apps nor Pure Maps is able to get any fast A-GPS fix that I can tell of :thinking: Location icon keeps blinking.

What else can I look into.

On my device (XA2 3113) /etc/gps.conf is a symlink to /vendor/etc/gps.conf, not /system/etc/gps.conf. So I’ld remove /system/etc/gps.conf and edit /vendor/etc/gps.conf instead.