Route Spoofer plays a route back as real GPS on your Android device. Tap points on a map, pick a speed, hit GO — every app on the phone sees you moving along that path. Built for developers and QA engineers testing location features: delivery tracking, geofences, ride-hailing, fitness apps. No ADB commands, no root. Save and reuse routes, export them as JSON to share with your team, and run everything offline. Free, open source (MIT), no ads, no account. Android 6+, 8 languages.
No reviews yetBe the first to leave a review for Route Spoofer
Maker
📌
Hi Product Hunt 👋
I build mobile apps, and every time I had to test something location-based I hit the same wall: ADB commands that break between Android versions, fake-location apps stuffed with ads, or literally walking around the block with a debug build to see if a geofence fires.
So I built Route Spoofer. Tap a few points on a map, pick a speed, press GO. The device reports that path as its real GPS position, so any app you're testing just sees a user moving. Routes can be saved, replayed, and exported as JSON to share with the rest of your team.
It's free, MIT-licensed, no ads, no account, and works offline on Android 6 and up.
Happy to answer anything here. And if you're a QA engineer — I'd really like to know what's still missing for your workflow.
Report
Having used similar tools, one thing that would really help is adding a loop playback option for routes. Right now I think you have to manually restart each time, but being able to set a loop with a configurable interval would make it way easier to stress test things like geofence entry/exit over long sessions.
Report
Maker
@morrisseysteven Good news — that one already exists. There's a Loop control on the panel with Restart and Ping-pong modes, so it'll replay the route on its own without you touching GO. Add a per-point wait and you've got long unattended geofence sessions. Sounds like it's not visible enough though, since you're not the first to miss it — that's useful to know, thanks.
Report
This looks really useful for QA work without the usual root hassle. One thing that would make it even better is adding a playback scheduling option, like setting a start time in the future or looping a route automatically every X minutes. That way you could test time-based geofence triggers or simulate a driver running the same delivery loop without manually hitting go each time.
Report
Maker
@churnkiller Part of this already works, actually — there's a per-point wait plus a loop mode (restart / ping-pong), so "run the same delivery loop, pause at the dropoff, go again" is doable today. The piece that genuinely isn't there is a scheduled future start — kicking playback off at a set time on its own. Noted that one. Does the loop-plus-wait combination cover your delivery-loop case, or were you picturing something the current wait can't do?
Report
Saved a route from my morning run, exported it as JSON, and replayed it in a ride-hailing app to test pickup pins. No ADB fuss and everything worked offline, which is honestly more than I expected.
Report
Maker
@rmeysagenaylpi That's exactly the workflow I hoped people would find — a route saved from real movement, exported, and replayed somewhere else entirely. Thanks for putting it through a real test and taking the time to write it up.
Report
honestly this looks super useful for our QA team, we deal with location features daily and ADB scripts are a pain. one thing that would make it even better is letting you simulate movement at variable speeds along the route, like slow down at turns and speed up on straight stretches, since real users rarely move at a constant pace
Report
Maker
@cyril_rhys This is a good one — right now speed is a single value for the whole route, so "slow at turns, faster on straights" isn't possible yet. It's on the list. It also pairs naturally with road-following routes I'm working on next: once the path actually follows streets instead of straight lines between points, per-segment speed has real geometry to sit on. Appreciate you laying out the QA angle.
Having used similar tools, one thing that would really help is adding a loop playback option for routes. Right now I think you have to manually restart each time, but being able to set a loop with a configurable interval would make it way easier to stress test things like geofence entry/exit over long sessions.
@morrisseysteven Good news — that one already exists. There's a Loop control on the panel with Restart and Ping-pong modes, so it'll replay the route on its own without you touching GO. Add a per-point wait and you've got long unattended geofence sessions. Sounds like it's not visible enough though, since you're not the first to miss it — that's useful to know, thanks.
This looks really useful for QA work without the usual root hassle. One thing that would make it even better is adding a playback scheduling option, like setting a start time in the future or looping a route automatically every X minutes. That way you could test time-based geofence triggers or simulate a driver running the same delivery loop without manually hitting go each time.
@churnkiller Part of this already works, actually — there's a per-point wait plus a loop mode (restart / ping-pong), so "run the same delivery loop, pause at the dropoff, go again" is doable today. The piece that genuinely isn't there is a scheduled future start — kicking playback off at a set time on its own. Noted that one. Does the loop-plus-wait combination cover your delivery-loop case, or were you picturing something the current wait can't do?
Saved a route from my morning run, exported it as JSON, and replayed it in a ride-hailing app to test pickup pins. No ADB fuss and everything worked offline, which is honestly more than I expected.
@rmeysagenaylpi That's exactly the workflow I hoped people would find — a route saved from real movement, exported, and replayed somewhere else entirely. Thanks for putting it through a real test and taking the time to write it up.
honestly this looks super useful for our QA team, we deal with location features daily and ADB scripts are a pain. one thing that would make it even better is letting you simulate movement at variable speeds along the route, like slow down at turns and speed up on straight stretches, since real users rarely move at a constant pace
@cyril_rhys This is a good one — right now speed is a single value for the whole route, so "slow at turns, faster on straights" isn't possible yet. It's on the list. It also pairs naturally with road-following routes I'm working on next: once the path actually follows streets instead of straight lines between points, per-segment speed has real geometry to sit on. Appreciate you laying out the QA angle.