Skip to content

Latest commit

Β 

History

History
76 lines (59 loc) Β· 1.64 KB

File metadata and controls

76 lines (59 loc) Β· 1.64 KB

Create Your First Xposed Module (15 min)

Minimal Xposed module template that logs all Toast messages.

Setup

# Install Android Studio with Android SDK 30+
# Install LSPosed + Xposed Framework on device

Create project

# Clone template
git clone https://github.com/LSPosed/LSPosed_mod.git
cd LSPosed_mod/app

Modify AndroidManifest.xml

<meta-data
    android:name="xposed_module"
    android:value="true" />
<meta-data
    android:name="xposed_description"
    android:value="My first module!" />

Hook in main code

// src/main/java/com/example/mymodule/HookEntry.kt
import de.robv.android.xposed.*
import de.robv.android.xposed.callbacks.XC_LoadPackage

class HookEntry : IXposedHookLoadPackage {
    override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
        if (lpparam.packageName != "android") return

        // Hook Toast.show()
        val toastClass = XposedHelpers.findClass(
            "android.widget.Toast", lpparam.classLoader
        )
        XposedHelpers.findAndHookMethod(
            toastClass, "show",
            object : XC_MethodHook() {
                override fun afterHookedMethod(param: MethodHookParam) {
                    XposedBridge.log("Toast shown!")
                }
            }
        )
    }
}

Build & install

./gradlew assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk

# On device:
# LSPosed Manager β†’ Modules β†’ Enable your module
# Select scope (e.g., "android" for system hooks)
# Reboot

Debug in logcat

adb logcat | grep "Toast shown"

Done! πŸŽ‰ You've written your first Xposed hook.