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.
- Features
- Prerequisites
- Installation
- Usage
- Development
- Contributing
- License
- Disclaimer
- Acknowledgements
- 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.
- 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.
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.git
-
Build 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 LSPosed is enable the module — the entire scope is managed from within the XposedFakeLocation app 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 in LSPosed.
-
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
-
Clone the Repository
git clone https://github.com/noobexon1/XposedFakeLocation.git
-
Open 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.
Contributions are welcome! Please read CONTRIBUTING.md for the project structure, coding guidelines, and the pull request process.
Distributed under the MIT License. See LICENSE for more information.
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.
- 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.
