XposedFakeLocation
XposedFakeLocation is an Android application and Xposed module that allows you to spoof your device's location for specific apps — and, optionally, at the system level — without using "mock location" from the developer options. Customize your location with precision, including sensor data, and add randomization within a specified radius for enhanced privacy.
[!IMPORTANT] This module now targets the modern libxposed API (Xposed API 101+). You must use a recent LSPosed build that supports the new API — older managers will not load the module. Get the latest LSPosed from the official Telegram channel: t.me/LSPosed.
Table of Contents
- Features
- Prerequisites
- Installation
- Usage
- Development
- Contributing
- License
- Disclaimer
- Acknowledgements
Features
- Per-App Location Spoofing: Pick the apps that should receive a fake location directly inside the app — your selection drives the LSPosed module scope automatically, so you never have to manage scope by hand.
- Optional System-Level Hooks: Extend spoofing into the Android system framework (
android) and the phone process (com.android.phone) for deeper coverage, via a single toggle in Settings. - Custom Coordinates: Set precise GPS latitude and longitude coordinates by tapping the integrated map.
- Fine-Tuned Spoofing Settings: Customize sensor values such as horizontal/vertical accuracy, altitude, mean sea level (and its accuracy), speed (and its accuracy), and GPS noise.
- Randomization: Set a radius for location randomization to mimic real-world movement patterns.
- Reactive Updates: You only need to force-stop and restart a target app the first time it's added to the scope. After that, changes you make in the manager app (location, settings, start/stop) reflect in the running target app immediately — no restart required.
- Root Relaunch: Force-stop and relaunch a target app straight from the Target Apps screen so spoofing takes effect immediately (requires root).
- Headless / External Control: Drive the module from another app or
adb shellvia broadcast intents (off by default). - Intuitive UI Navigation: Easy access to the map, favorite locations, target apps, and settings.
Prerequisites
- Rooted Android Device: The app requires root access to function properly.
- Minimum Android Version: 11 (API 30)
- Modern LSPosed (new API): This module is built against the libxposed API (Xposed API 101+), so it requires a recent LSPosed build that supports the new API. Download the latest from the official Telegram channel: t.me/LSPosed. Legacy
Xposed/EdXposedand older LSPosed managers are not supported.
Installation
You can always install the latest stable version of XposedFakeLocation from the releases page.
If you want to build by yourself:
Clone or Download the Repository
git clone https://github.com/noobexon1/XposedFakeLocation.gitBuild the Application
Open the project in
Android Studio.Build the APK using
Build > Build Bundle(s) / APK(s) > Build APK(s).Alternatively, use
Gradle:./gradlew assembleDebug
Install the APK
Install the APK via
adb:adb install app/build/outputs/apk/debug/app-debug.apk
Activate the Xposed Module
- Open a recent LSPosed Manager that supports the new API (see Prerequisites).
- Enable the
XposedFakeLocationmodule and reboot once. - Select target apps from inside
XposedFakeLocation(theTarget Appsscreen). Your selection updates the module's LSPosed scope automatically — there's no need to manage scope manually in LSPosed. - (Optional) System-level hooks: to spoof the Android system framework (
android) and phone process (com.android.phone) as well, openSettingsinsideXposedFakeLocationand enableEnable system-level hooks. This adds those packages to the scope; reboot your device for the change to take effect (and reboot again after turning it off).
[!NOTE] From now on, all you need to do in
LSPosedis enable the module — the entire scope is managed from within theXposedFakeLocationapp itself. Adding/removing target apps and toggling system-level hooks updates the LSPosed scope automatically, so you should not edit the module's scope manually inLSPosed.
Usage
Launch the App
- Open
XposedFakeLocationfrom your apps menu.
- Open
Navigate the Interface
- Use the navigation menu to access different sections:
- Map: Primary interface for location selection
- Favorites: Saved locations for quick access
- Target Apps: Apps that should receive spoofed locations.
- Settings: Configure application behavior
- About: View application information
- Use the navigation menu to access different sections:
Select Target Apps
- Open
Target Appsfrom the navigation menu. - Search for and select the apps that should receive spoofed locations. Selecting/deselecting an app updates the module's LSPosed scope automatically.
- Apps not selected here will keep receiving their normal location data.
- On a rooted device you can tap the relaunch button next to a selected app to force-stop and reopen it so spoofing applies right away.
- Open
Select a Location
- Use the integrated map to select your desired location by tapping on the map.
Configure Settings
- Optionally, access the
Settingsscreen to fine-tune your spoofing settings.
- Optionally, access the
Start Spoofing
- Toggle the
Play/Stopbutton to begin location spoofing. XposedFakeLocationwill override location data only for apps selected inTarget Apps.- First time only: when an app is newly added to the scope, force-stop and reopen it once (use the relaunch button, or do it manually) so the module is loaded into it. After that the module is reactive — any change you make in the manager (location, settings, start/stop) takes effect in the running target app immediately, with no further restarts.
- Toggle the
Stop Spoofing
- Toggle the
Play/Stopbutton to cease location spoofing.
- Toggle the
Headless Mode (Optional. Off by default)
- Drive the module from another app or
adb shellvia broadcast intents — start/stop and update coordinates without opening the UI. Seedocs/EXTERNAL_CONTROL.mdfor more details.
- Drive the module from another app or
Development
Building from Source
Clone the Repository
git clone https://github.com/noobexon1/XposedFakeLocation.gitOpen in Android Studio
- Navigate to the project directory.
- Open the project with
Android Studio.
Sync Gradle
- Allow Gradle to download all dependencies.
Build and Run
- Connect your rooted device.
- Run the app from
Android Studio.
Contributing
Contributions are welcome! Please read CONTRIBUTING.md for the project structure, coding guidelines, and the pull request process.
License
Distributed under the MIT License. See LICENSE for more information.
Disclaimer
This application is intended for development and testing purposes only. Misuse of location spoofing can violate terms of service of other applications and services. Use at your own risk. There is no responsibility whatsoever for any damage to the device.
Acknowledgements
- GpsSetter - Highly inspired by this amazing project!
- libxposed API - The modern Xposed API this module is built on.
- LSPosed (Telegram) - The go-to Xposed framework manager app.
- OSMDroid - Open-source offline map interface.
- Jetpack Compose - Modern UI toolkit for Android.
- Material Design 3 - Latest design system from Google.
- Line Awesome Icons - Beautiful icon set used in the app.
- FuckLocation - Reference for additional Android location hook handling.
