HLocation

Android 多进程虚拟定位与环境一致性模块

Android Kotlin libxposed IPC

HLocation 是基于 LSPosed/libxposed API 102 的 Android 虚拟定位与设备环境模拟模块。它以 Android 系统服务为位置数据主边界,以目标应用进程为环境一致性边界,并由独立控制端管理场景状态。

Important

HLocation 当前未公开源代码。SOURCE_URL 指向的是公开产物仓库,仅用于发布签名 APK、完整性校验文件、更新日志和问题反馈,不代表源码仓库。

主要功能

  • system_server 系统级位置注入与应用进程兼容兜底。
  • 路线模拟、坐标抖动以及高度、精度、速度和航向模拟。
  • GPS/GNSS、NMEA 与卫星状态模拟。
  • 可选的 Wi-Fi、基站、蓝牙、网络连接和传感器环境模拟。
  • 环境快照与基于 OpenCellID 数据的基站匹配。
  • Binder 控制通道与 SharedMemory 多进程实时状态同步。
  • 模块激活、Hook 安装、IPC 与运行时状态诊断。

兼容性

项目 支持范围
Android Android 8.0–16(API 26+)
CPU 架构 ARM64 (arm64-v8a)
Hook 框架 LSPosed / libxposed API 102
坐标契约 地图选点使用 GCJ-02,Android Location 输出 WGS-84

推荐作用域

HLocation 默认只推荐以下系统作用域:

  • Android 系统(system
  • 系统框架(android
  • 电话服务(com.android.phone

仅在需要应用进程兼容 Hook 或环境模拟时,手动选择对应目标应用。

技术栈

领域 技术
Android minSdk 26、targetSdk 36、compileSdk 37、ARM64
语言 Kotlin 2.3.20、C++ 17
系统扩展 LSPosed、libxposed API 102
UI Jetpack Compose、Material 3、Navigation 3
状态与并发 Coroutines、Flow、StateFlow
数据与依赖 Room、KSP、Koin、Kotlin Serialization
地图 高德 3DMap 与搜索 SDK
IPC Binder、SharedMemory、版本化快照协议
Native Android NDK、CMake
构建 AGP 9、Gradle 9、JDK 17

系统架构

flowchart TB
    subgraph Control[控制平面]
        UI[Compose 控制端]
        Domain[领域状态与场景编排]
        Storage[配置与本地数据]
        UI --> Domain
        Domain --> Storage
    end

    subgraph Data[数据平面]
        Contract[版本化 IPC 契约]
        Binder[Binder 控制通道]
        SHM[SharedMemory 快照通道]
        Contract --> Binder
        Binder --> SHM
    end

    subgraph Runtime[运行时平面]
        System[system_server 位置主路径]
        Phone[电话服务进程蜂窝边界]
        Target[目标应用位置与环境边界]
    end

    subgraph Integrity[保护平面]
        Gate[应用身份与运行时门禁]
        Native[ARM64 Native 边界]
        Payload[独立受保护运行时]
        Gate --> Native
        Gate --> Payload
    end

    Domain --> Contract
    Binder --> System
    SHM --> System
    SHM --> Phone
    SHM --> Target
    Integrity --> Control
Loading

控制平面

Compose 控制端、地图交互、模拟状态、环境配置与持久化通过 ViewModel 和领域协调器分离。控制端只依赖稳定契约,不直接依赖 Hook 内部实现。

数据平面

Binder 负责连接、配置提交和兼容事务,SharedMemory 负责多进程高频只读快照。配置版本与运行时位置序号独立推进,策略变更和位置推进拥有不同的仲裁语义。

运行时平面

  • system_server 承载 IPC 骨干和系统位置主路径。
  • 电话服务进程承载蜂窝服务边界。
  • 目标应用进程承载应用侧位置一致性以及 Wi-Fi、Cell、BLE、Sensor、GNSS 和网络环境边界。

系统位置、应用位置和周边环境消费同一份版本化状态,跨进程故障域彼此隔离。

保护平面

应用身份、受保护运行时与 Native 映像边界独立校验。保护逻辑只约束控制端,不进入 system_server 或目标应用的高频位置路径。

数据契约

内部场景坐标使用 GCJ-02,进入 Android Location 边界前统一转换为 WGS-84。单次位置构造复用一个原子坐标快照,使经纬度、高度、精度、速度和航向保持同源。

架构约束

  • 配置由单一版本化状态源驱动。
  • 系统位置主路径与应用进程兜底路径相互独立。
  • 位置字段按单次原子快照保持一致。
  • 平台差异集中在 Android/OEM 适配层。
  • 高频运行路径不执行网络、持久化或同步文件写入。
  • API 27 以上使用 SharedMemory,API 26 保留 Binder 读取路径。
  • ARM64 运行时适配 4 KiB 与 16 KiB 设备页尺寸。

链接

Releases

1.4.2

Stable

8/7/2026, 6:19:04 AM

HLocation 1.4.2 (versionCode 26080703)

  • Fixed a foreground-service crash that could occur when rapidly starting and stopping location simulation while cold-start configuration restoration was still in progress.
  • Hardened simulation lifecycle generations, durable failure compensation, monotonic configuration revisions, and fallback IPC acknowledgement validation.
  • Applied the same configuration-restoration and transition gate to simulation actions on the Home, Route, and Diagnostics screens.
  • Changed the fallback synchronization foreground service to the specialUse type with an explicit subtype.

Assets

1

1.3.0

Stable

8/6/2026, 4:58:58 AM

HLocation 1.3.0

  • Added a unified stateful sensor simulator for accelerometer, gravity, linear acceleration, gyroscope, magnetic field, rotation vectors, and pressure.
  • Added physically consistent stationary, walking, cycling, and driving motion states.
  • Upgraded cross-process motion telemetry to strict SharedMemory v6.
  • Improved SensorManager listener lifecycle and OEM compatibility.

Assets

1

1.2.0

Stable

8/5/2026, 1:06:11 PM

HLocation 1.2.0

  • Fixed bottom navigation content being obscured on Android 13 / MIUI 14.
  • Fixed the missing-file message shown after clearing diagnostic logs.
  • Reduced the recommended LSPosed scope to Android System, System Framework, and Phone Services.

APK SHA-256: 0f46541f603b9d43ee7e3fe000b75ccfcdb61e906cf04934f3ddac603c57eb7f

Assets

1