Faker Unlocker

An Xposed module for the Android Faker reverse-engineering practice target, updated for:

  • Xposed API 101 (modern libxposed API)
  • Android Faker v2.0.0-beta-9-6
  • package com.android1500.androidfaker

Usage

  1. Build and install the module APK.
  2. Enable Faker Unlocker in an API-101-compatible Xposed manager.
  3. Select Android Faker and every app in which Android Faker spoofing should run. The module intentionally uses a dynamic scope (staticScope=false).
  4. Force-stop and reopen Android Faker and the selected target apps.

Beta-9-6 hooks

Runtime target Purpose Patch
wg6.OooO0O0() Core UserState.isVip Return true
wg6$OooO00o Account state Constructor status 1, expiry year 2100
AccountSummary Parcelable account state Constructor status 1, expiry year 2100
HookState Hook-screen VIP state Constructor/getter Boolean.TRUE
ProfileState Profile-screen VIP state Constructor Boolean.TRUE
uf5 APK signature verifier Return true
Native.doInit(String) Native initialization guard Return true
Native.getDex() Spoofing payload Serve the decrypted DEX

Exact beta-9-6 names are attempted first. DexKit structural matchers provide a fallback for the data and verifier classes. The old beta-9-5 HookConfig boolean overrides were removed because those booleans now control fingerprint randomization rather than VIP access.

JADX's p000 package is synthetic: wg6, wg6$OooO00o, and uf5 are root-package runtime names.

Native stability

In target apps, the module intercepts Runtime.loadLibrary0 before Android Faker loads af_native. This prevents beta-9-6's abort watchdog from being created by doInit or a failing getDex.

DexExtractor locates the encrypted dex\n header dynamically, reads the DEX size from its header, and decrypts the payload with XOR key 0x32. For beta-9-6 the payload is 46,416 bytes and has SHA-256:

6779812ebebaa4dcc79099a74dd3b2793d098541af0822551264a509d33befa1

The module can extract it from the Faker module classloader's APK path, the native-library directory, PackageManager, or the existing cache. It does not depend on hard-coded native RVAs, and it verifies the beta-9-6 payload size and SHA-256 before serving it.

Xposed API 101 layout

The APK uses the modern module resources:

META-INF/xposed/java_init.list
META-INF/xposed/module.prop
META-INF/xposed/scope.list

The entrypoint extends io.github.libxposed.api.XposedModule and installs hooks with hook(...).intercept(...). There is no legacy assets/xposed_init or de.robv.android.xposed bridge dependency.

Build

Requirements:

  • Android SDK 35
  • JDK 21
  • local io.github.libxposed:api:102.0.0 artifact (the module targets API 101)

On Windows:

.\gradlew.bat :app:assembleDebug

Output:

app/build/outputs/apk/debug/FakerUnlocker-v1.1-debug.apk

Useful log filter:

adb logcat | findstr FakerUnlocker

Expected beta-9-6 markers include:

Build marker 2026-07-23-api101-beta-9-6
[BLOCKED] System.loadLibrary("af_native")
[OK] Native.doInit -> true
[OK] DEX from Faker module classloader: 46416 bytes
All exact beta-9-6 hooks installed successfully

Native beta-9-6 reference

The module does not use these addresses, but they are useful when validating the matching native library in Ghidra:

ABI JNI_OnLoad doInit getDex abort callback
arm64-v8a 0x17374 0x19484 0x1AD00 0x1132C
armeabi-v7a 0x121D1 0x13811 0x14939 0xE00D
x86 0x18FB0 0x1B0E0 0x1D050 0x11800
x86_64 0x18890 0x1A980 0x1C890 0x116F0

Values are module-relative RVAs. ARMv7 values include the Thumb bit.

Disclaimer

This project is for authorized reverse-engineering practice. Do not use it to circumvent protections on software you are not permitted to test.

Releases

v1.1

Stable

7/23/2026, 8:31:42 AM

  • Migrated to modern Xposed API 101 metadata and interceptors.
  • Updated AF-v2.0.0-beta-9-6.apk, signature, state, and native hooks.
  • Update minimum sdk to 30 (android 11).

Assets

1

v1.0

Stable

4/16/2026, 1:30:51 AM

  • Tested on version v2.0.0-beta-9-5 (doesn't work on older versions).
  • Need to add both Android Faker and it's spoofing target to the module scope in xposed.

Assets

1