I have a galaxy s4 android version 5.0.1, you can see what version you have under Settings/About Device.
I rooted my phone for this. for my phone/version I used this : https://www.androidf...052804347781773
(then I got Root Checker via the Playstore to verify root access was properly installed) afterwards you can go under About Device and click Version a few times and a lollipop will appear. moving on.
I then installed Hide My Root (also in playstore) because pokemon go will freak out and not work properly if it knows your phone is rooted
got the Fake GPS Location Spoofer https://play.google....s.fakegps&hl=en there *is* a free version, but I didn't test it with this/ was just looking for a method that worked for me and my phone
next I got a /System /App mover that does just that. also picked up Free Busybox which works with /System /App. have to open that one to fully install then was good to move the gps location spoofer to /system/app
With this you nolonger have to allow mock locations Developer Options (under About Device if you tap theBuild Number 7 times it'll enable the Hidden Developer Settings (dont fuck with)
which gets you around the 'failed to detect location' lock in Pokemon Go when that setting is turned on.
Turned Location in phone Settings to use gps only (not wifi , mobile networks) should be under Mode
For Settings in FakeGPS I check Expert Mode, read the info bit that pops up as it wont appear again, then use those recommended settings.
I'm still playing around with speed and distance trying to find what works best.
I change the distance to under 100. I like 25 the best, as 100 and up makes you blink around randomly and 25 or 50 makes you walk just a bit around a tight area.
timeout shouldnt be used at all since the time spent between moving around is at your actual gps location. if your mock location is near your actual location it will run you back rather than reload you on that spot. There might be a sweet spot with distance/speed that will make incubating eggs a breeze.