一个欲儿的博客

一个欲儿的博客

LSPosed和LSPatch插件开发教程
2026-06-03

简介

其实他们都是基于xposed出现的框架,只是扩展了两个而已,所以他们的编程体系相同,但是LSPatch相比于LSPosed可以不需要root,但是其功能肯定不如LSPosed全面,同时呢,两个框架的运行模式也有不同

LSPosed教程

创建项目

打开Android studio

点New Project 

点Empty Views Activity

编程语言选java 

构建选build.gradle

image.png

插件模块配置

打开AndroidManifest.xml添加如下配置

        <!-- 是否为Xposed模块 -->
        <meta-data
            android:name="xposedmodule"
            android:value="true"/>
        <!-- 模块的简介(在框架中显示) -->
        <meta-data
            android:name="xposeddescription"
            android:value="我是Xposed模块简介" />
        <!-- 模块最低支持的Api版本 一般填54即可 -->
        <meta-data 
            android:name="xposedminversion"     
            android:value="54"/>

image.png

添加仓库配置

打开setting.gradle添加

maven { url=uri("https://api.xposed.info") }

image.png

导入jar包

打开app module的build.gradle 添加

compileOnly 'de.robv.android.xposed:api:82'

image.png

创建xposed_init

将左上角选择为project,右键main,选择新建一个Directory,然后选择assets

image.png

再在该目录下新建一个file,记住一定是file,没有后缀名文件名叫xposed_init

其内为如下内容,其中com.xxx.xxx是你的包名,如果你不知道,你可以打开MainActivity.java中第一行,package com.xxx.xxx,那个就是你的包名,MainHook是我们的xposed类名,稍等再创建这个类

com.xxx.xxx.MainHook

image.png

Xposed Hook代码

在和MainActivity相同的目录下新建MainHook.java,代码如图,第一行是你的包名,记住不要全部复制嗷

image.png

package com.yuer.study;//包名记得替换

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

public class MainHook implements IXposedHookLoadPackage {

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        XposedBridge.log("yuerlv " + "启动 " + lpparam.packageName + " 成功咯");
    }

}

运行

然后你打开LSPosed,勾选需要的App,再把该模块打开,看日志即可

image.png


发表评论: