[Upgrading, Modifying and Unlocking] keff:
Cool trick - I didn't know about the streaming manager!

Have you tried changing HKEY_LOCAL_MACHINE\Software\Samsung\RIL\GPS\ServerAddress? Default value is http://192.168.0.35:7275, which is a local network address, so it works only in AT&T network.

The problem is, what is supposed to be on that address? There are two things AGPS uses:

It can download xtra.bin with ephemerides for a next week, which will speed up the fix, this way, less packets from GPS satellites are needed for determining the location (most precise data are broadcasted most often, less precise less often, so when the phone has no initial data, the full cycle for 1 satellite lasts about 20 minutes (cold lock is usually faster because phone listens to several satellites, and their messages are offset, so it usually 'knows enough' after just 5-10 minutes)). This is not really an AGPS.

Real AGPS, it has two flavors, but both need to communicate with SUPL server (more info). In first mode, let's say 'passive', the phone simply gets same data like in previous case, only less of them and on-demand (if it can be located by operator at least by country, it doesn't need world-wide data that are in xtra.bin).

Second mode is more interesting, here, the phone will gather info about surrounding GSM cells, and send it to SUPL server. The server will then triangulate the phones position (with precision of 10m - cca 2km), and send it back to the phone. Because it has then almost precise location, it only needs the most granular data from satellites (which are broadcasted most often), and thus the lock is fast.

So, the question is, should the ServerAddress field contain URL of xda.bin, or should it lead to some SUPL server? If it is SUPL server (and judging by the port number it should be), it should be possible to replace http://192.168.0.35:7275 by google's SUPL server, http://supl.google.com:7276 (Google uses it for Android's AGPS, but keeps it SUPL open to everyone, as the big brother likes our location info :)).

Let's try this - we know how to make GPS use non-A&T connection, we know alternative non AT&T SUPL server, so the last thing to figure out is what other fields to set with GpsTest.exe.

For Plane Type, it should be 'SecureUserPlane' (= SUPL :)), Operating type should be either 'MS Based' or 'Assisted', Session type is always 'Nevigation', and the rest we should try :))

Supl.google.com should work as long as Google maps position you correctly on the map based on Cell IDs (for O2 Czech, my operator, it does).

EDIT: Cool, this almost works!!!

I put Operating type = Assisted, and in GpsTest.exe -> Menu -> Option -> SSL I set 'SSL Status' = 'Disable', and voila - after starting a map application (Sygic MobileMaps 2010), the phone connects to 'MEdia Net' (where I changed Access Point name to by operator's AP), and 3-6 sattelites appear instantly, even inside the room!

Problems:

- Strange pattern where it starts with 2-3 satellites, then more of them appear on the screen, then phone 'lags' for cca 1 second, and the search starts again with 2-3 satellites. This may be some bug, or just caused by fact that I am testing this inside my room, and Epix has weak GPS receiver. Will test tomorrow outside.

- After phone restart, the SSL setting is back to Enabled, and GPS doesn't work, I have to manually disable it again with GpsTest, and then the satellites appear instantly again. This is probably caused because AT&T's private SUPL server used SSL encryption, while Google's SUPL doesn't use or support it.