Skip to content

Releases: noobexon1/XposedFakeLocation

v0.1.4

Choose a tag to compare

@noobexon1 noobexon1 released this 02 Aug 07:56
82db8bf

What's Changed

New Contributors

Full Changelog: v0.1.3...v0.1.4

v0.1.3

Choose a tag to compare

@noobexon1 noobexon1 released this 25 Jul 20:09
5a665dd

What's Changed

New Contributors

Full Changelog: v0.1.2...v0.1.3

This release is mostly bug fixes. It also contains the addition of German as a language contributed by @ro011110ot ! Thanks! ❤️

v0.1.2

Choose a tag to compare

@noobexon1 noobexon1 released this 08 Jun 13:40

What's Changed

Full Changelog: v0.1.1...v0.1.2

Release Notes

🚀 Features

Favorites

  • Added editing functionality for favorite locations with UI dialogs and validation.
  • Enhanced Favorites screen with comprehensive KDoc comments, improved state management, and detailed UI updates.
  • Introduced an optional description field for favorite locations.
  • Implemented navigation to the Favorites screen after successfully saving a new favorite location.

Map & Navigation

  • Implemented map zoom persistence and retrieval functionality.
  • Added dialogs for adding favorites and navigating to specific coordinates.
  • Improved map UI with detailed documentation, better lifecycle management, and enhanced navigation drawer functionality.
  • Implemented initial camera positioning based on user location.

Target Apps

  • Added search functionality in the TargetAppsScreen to filter target apps efficiently.

Settings

  • Introduced a theme selection feature (system default, light, dark themes).
  • Added default values for numeric settings with a resetToDefaults() functionality.
  • Implemented decimal rounding and decimal keyboards for numeric inputs.
  • Restyled the Settings screen with search functionality and reordered sections.

🐛 Bug Fixes

  • Changed the minimum SDK requirement to support Android 10.
  • Refined precision handling for numeric settings to ensure consistent rounding behavior.
  • Cleared relaunching packages when the module goes offline in TargetApps.
  • Updated the inactive track color for sliders in the Settings screen for better visibility.
  • Improved and refined the search functionality behavior and interaction in the Settings screen.
  • Reformatted numeric fields on blur and ensured a stable state for key rows.

🔨 Refactors & Improvements

Performance

  • Loaded AppIcon bitmaps asynchronously via produceState on Dispatchers.IO.
  • Annotated TargetAppsUiState with @Immutable for performance optimization.

Architecture & State Management

  • Streamlined map event handling and improved lifecycle awareness (e.g., using collectAsStateWithLifecycle).
  • Consolidated settings UI state into a single StateFlow.
  • Refactored TargetAppsScreen into thin stateful and stateless components.
  • Centralized setting keys in a SettingKeys object for improved maintainability.
  • Replaced MutableSharedFlow with Channel for one-shot events in view models.

UI/UX & Documentation

  • Enhanced localization management, updated unit representations to use string resources, and improved the language setting UI.
  • Cleaned up unused dialog components, menus, and imports across Map and Favorites screens.
  • Reorganized package structures and improved the structure of test files.
  • Added comprehensive KDoc comments across multiple view models and UI components for better clarity and maintainability.

v0.1.1

Choose a tag to compare

@noobexon1 noobexon1 released this 31 May 00:36

PRs

XposedFakeLocation — Modern Xposed API Release

Important

This release migrates the module to 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 from t.me/LSPosed.

Please read the updated README before updating — setup and scope handling changed significantly.

Highlights

  • New Xposed API. Fully migrated from the legacy XposedBridge/XposedHelpers API to the modern io.github.libxposed API used by current LSPosed.
  • Scope is now managed entirely from the app. Just enable the module in LSPosed — that's it. Selecting/deselecting target apps and toggling system-level hooks updates the LSPosed scope automatically. No more manual scope editing in LSPosed.
  • Reactive updates. You only need to force-stop/restart a target app the first time it enters the scope. After that, changes you make in the manager (location, settings, start/stop) apply to the running target app immediately — no restart needed.

New features

  • In-app target app selection that drives the module scope directly (add/remove apps from the Target Apps screen).
  • "Enable system-level hooks" toggle (Settings) — adds the Android system framework (android) and phone process (com.android.phone) to the scope for deeper, system-level spoofing. Requires a reboot to take effect (and another to turn off).
  • Root relaunch button — force-stop and reopen a target app straight from the Target Apps screen so spoofing applies right away (requires root).

Changes & cleanup

  • Cross-process config now uses Xposed remote preferences (replacing the old XSharedPreferences/world-readable prefs), with a single source of truth split between hook-shared remote prefs and manager-only local prefs.
  • Removed DataStore and the legacy module-enabled detection hack, blocking status check, and error screen — the manager binds to XposedService reactively instead.
  • Removed the "Use built-in target app selection" setting; in-app target selection is now the default and only mode.
  • Migrated the phone/system service hooks to the new API with name-based target attribution, gated so they stay inert unless you're actively spoofing a selected app.

Build / CI

  • CI release workflow now builds on JDK 21 to match the project's Java 21 / Kotlin jvmTarget settings.

Requirements

  • Rooted Android device, Android 11+ (API 30), and a modern LSPosed build (new API). Legacy Xposed/EdXposed and old LSPosed managers are not supported.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@noobexon1 noobexon1 released this 28 May 20:32
b808db6

What's Changed

  • Users can define templates with coordinates and optional advanced mock-location settings, then assign each target app to use global settings, a selected template, or custom per-app overrides. Thanks to @MeGaNeKoS for this one! ❤️
  • Added in-app language switching and Chinese localization support. You can change the language on the Settings page. Thanks to @guowenye for this improvement! ❤️
  • In the About page of the app, you can now see all of the contributors to this project!
  • We now have a TG discussion group. Join using the link in the app!

New Contributors

Full Changelog: v0.0.9...v0.1.0

v0.0.9

Choose a tag to compare

@noobexon1 noobexon1 released this 17 May 19:37

What's Changed

  • Add hook-strategy toggle, external broadcast control, map zoom fix by @bjspi in #21

New Contributors

  • @bjspi made their first contribution in #21

Full Changelog: v0.0.8...v0.0.9

Main changes:

  1. You can now toggle the indicator Toast on and off in settings.
  2. Map bugs fixed.
  3. Improvements to UI/UX.
  4. Can choose in settings if you want to hook the entire system framework or per app (as it was pre-release 0.0.7)
  5. Can choose in settings to register a broadcast receiver for communicating with other apps.

Thank you so much, @bjspi and @lytalk, for contributing to making this project better! ❤️

If you find any bugs, please let us know so we can fix them.

Cheers!

v0.0.8

Choose a tag to compare

@noobexon1 noobexon1 released this 17 May 13:03

What's Changed

  • fix: support GMS-backed target app location spoofing by @lytalk in #24

Full Changelog: v0.0.7...v0.0.8

Quick fix for non-MIUI devices.

v0.0.7

Choose a tag to compare

@noobexon1 noobexon1 released this 13 May 07:11
f7b05da

What's Changed

  • Enhanced: Refactored parts of the hook implementation by @lytalk in #20

Full Changelog: v0.0.6...v0.0.7

This is a HUGE improvement over the previous version. Thanks to @lytalk for taking the time and effort to improve XposedFakeLocation for everyone!

As many of you requested, the module now works globally. What does that mean for you? Well, from now on, XposedFakeLocation is where you manage your target apps. You don't need to head over to your Xposed module manager to change your targets anymore. Please make sure that you refer to the README.md file and read the new setup instructions. Before opening any issues, make sure that you didn't mess up the setup.

Cheers! ❤️ 🚀 🔥

V0.0.6

Choose a tag to compare

@noobexon1 noobexon1 released this 24 Oct 16:15
c712cce

What's Changed

  • feat: keep current location after fakelocation stops(fixes issue #4) by @lytalk in #9

New Contributors

  • @lytalk made their first contribution in #9

Full Changelog: v0.0.5...v0.0.6

V0.0.5 - BETA

Choose a tag to compare

@noobexon1 noobexon1 released this 13 Apr 18:58

Full Changelog: v0.0.4...v0.0.5

  1. Overall code refactor to improve scalability and conform to Jetpack Compose best practices.
  2. Greatly improved settings screen UI.
  3. Greatly improved drawer screen UI.
  4. Spoof radius is now bounded to 2 kilometers (was 50 meters).
  5. Shared preferences have been supplemented with JetpackCompse DataStore.
  6. Update README.md to reflect new changes.

Please let me know if you encounter any bugs.
Enjoy! :D