Meanwhile Jolla is working on a proper solution for this matter you can give Supl Patcher Tool a try:
Binary only… but why?
Don’t want to be sued by Qualcomm for using NDA’ed or reverse engineered stuff that is.
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.
Thanx for the quick answer. I think it has a Qualcomm modem. But /dev/diag isn’t available.
Then… no luck with this, sorry 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
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!
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.
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).
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.
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.
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
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 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.