[Sony Xperia M] Bonoboo:
Our phone have issues with GPS.

Firstly, antenna not so good.

Secondly, while long using GPS fix can permanently lost until you off an on GPS.

So using GPS for long time just impossible: recording track can stop and you will not notice that.

Also tracks quality are bad. Here example:

Red – phone in default non-modified state

Green – all fixes applied

This is probably software bug and it affects all ROM's: all stock (new 4.3 too), CyanogenMod and based on it

Dual version affected too.

Confirmations: 1, 2, 3, 4 and a lot posts from disappointed users on other forums.

--------------------------

Here is complex solutions that really helps me.

But workarounds must be applied ALL to give you acceptable result.

For now all recorded tracks smooth and correct even in cloudy weather.

Please, share your results in thread.

Note: for quick obtaining GPS fix device must have internet access for downloading almanac and sync time (A-GPS)

1. Disable network location

When it's on and GPS in use phone collecting information about Wi-Fi and mobile base-stations around you and sends to Google for better positioning in future.

Somehow this in correlation with our problem: track goes ragged, sometimes you "teleporting" into different location.

This was confirmed in my test a lot times.

And what advantage in this if we already have precise coordinates from GPS?

So disable it:

For stock: Settings > Location services > untick Google's location service

For CyanogenMod and other custom ROM's: Settings > Location > Mode > select Device Only

2. Software workaround

UPD: application and Tasker profile was updated.

Now not required Secure Settings plugin and now supports Android 6.0 Marshmallow and higher.

But on 6.0 network location will be enabled after switching.

We just need to automatically regularly off and on GPS.

So bug with constantly lost fix just does not have time to appear – we preventively "rebooting" GPS. It's really helps.

Such shutdown doesn't causing gaps on track: last points just connecting. And then location determined instantly.

Surely you need to disable notification "GPS signal lost" in your track-recording / navigation app because it will be appears every 3 minutes.

Thanks to Tasker and App Factory I created standalone project as a separate application

It doesn't requires Tasker itself and haven't any settings: app just works in background.

To control GPS state required Root

Task configured to launch if GPS was manually on. When GPS off by you task stops.

Don't left it "on" if not use – task may affect battery!

Specially for that, who enables GPS only when need it.

Below provided same profile for Tasker, so you can optimize it for your requirements, e.g. starting by shortcut or other conditions.

How task works

1. Wait 2 minutes for sure good first fixing satellites

–– If after this time GPS still on – goto p.2

–– If GPS was off – task ends. Protection from accidental starting cycle

2. Disables GPS

3. Wait 5 seconds

4. Enabling GPS

5. Wait 3 minutes

–– If for this time GPS don't disabled manually – goto p.2

–– If GPS was disabled manually – task ends to next enabling

Installing

1. Download and install this app: Fix GPS (you need installed gapps!)

2. Launch it and allow root permissions

3. Now the application will autorun in background when phone boots

Notes

– If you want to disable app delete or freeze it

– App creates persistent service that don't affects battery if GPS off. Takes up 10-14 MB RAM

– Don't forget to add Fix GPS app into white-list of your task-killer and Stamina / Doze

– You can hide installed apps from launcher, no longer needed to interact with them

---------------------------------

And here Tasker profile if someone want to edit states for task activation for own needs.

Or you can create shortcut at homescreen to control fix manually. There's a lot of variants.

Installing

1. Download archive and extract XML file from it

2. Put file in /sdcard/Tasker/profiles/

3. Launch Tasker, tap on Tasks tab > Import > Fix_GPS.prf.xml

4. Manually start task "Fix GPS" and allow root permissions

3. Simple hardware addition to increase sensitivity of GPS receiver

Sensitivity of receiving a signal from the satellites we have lower than it could be

It seems cause is antenna: it small, located under the sticker in the corner of the camera.

In identical conditions SNR (signal-noise ratio) from satellites in Sony 20-30, in LG P500 – 30-40

This also causes regular deterioration of accuracy and artifacts on track.

So basing on this thread I created similar primitive "additional antenna".

This is anti-technical, but really helps a bit.

Result: additional 2-7 SNR points

Check this yourself with and without modified back cover using GPS Test app.

Installing

1. Cut strip of cooper foil with width approx. 4 mm. Internet says that aluminum foil gives worst results

2. Attach it using adhesive tape inside cover at camera hole as on photo below

3. Length - as you wish. Pieces can be connected lapped by making small incisions

4. Change settings for recording tracks

If your beloved app allow to change recording settings edit them similar as below.

This is make tracks more smooth and steady.

Here is for MyTracks

– Recording time interval: 4 s

– Recording distance interval: 20 m

– Max distance: 200 m

– GPS accuracy: 20 m

4971, 2088