LSPosed 安装与工程创建指南
LSPosed 安装与工程创建指南
LSPosed是一个基于Xposed框架的模块化系统框架,可以让你在不修改系统的情况下,通过安装模块来实现各种功能。本文将详细介绍LSPosed的安装步骤以及如何使用Android Studio创建LSPosed工程。
Xposed与LSPosed异同点
- Xposed支持到安卓7.1
- Xposed会将激活的模块注入到每个进程,需要自已在模块内根据包名过滤
- Xposed激活模块后重启系统生效
- LSPosed支持安卓8.1-14
- LSPosed激活模块后需要勾选要作用于哪些app
- LSPosed激活模块后重启对应app生效
- LSPosed模块的写法与Xposed一样
设备要求
- 使用官方原版系统
- 不能刷KernelSU的设备,使用Magisk来root和安装 LSPosed
- 能刷KernelSU的设备,直接安装下面三个就行了。
安装步骤
KernelSU_v0.7.1_11366: https://github.com/tiann/KernelSU/releases/tag/v0.7.1LSPosed依赖
Zygisk-Next-v4-0.8.1-111: https://github.com/Dr-TSNG/ZygiskNext/releases/tag/v4-0.8.1LSPosed
LSPosed-v1.9.2-7024-zygisk: https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2用来隐藏LSPosed 和 LSPosed依赖,防检测(还没试)
Shamiko-v0.7.4-188
使用magisk安装 LSPosed
1,打开Magisk – 设置 – 开启 Zygisk
2,安装 LSPosed模块, zygisk版
LSPosed-v1.9.2-7024-zygisk: https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2
推送到手机 /sdcard/ 目录
C:\Users\ASUS>adb push "E:\下载\LSPosed-v1.9.2-7024-zygisk-release.zip" /sdcard/
在 magisk 中点击从本地安装后,使用 RootExplorer 浏览文件,zip文件模块就可以点击安装了
正常情况下此时 通知栏 就可以看到 LSPosed
如果没显示,重启设备,可以通过拨号键输入 *#*#5776733#*#*
进入LSPosed
3,安装 LSPosed 依赖模块
Zygisk-Next-v4-0.8.1-111: https://github.com/Dr-TSNG/ZygiskNext/releases/tag/v4-0.8.1
安装方法和2一样
4,LSPosed修改设置
创建 LSPosed 工程
使用androidStudio创建一个 LSPosed 工程
这里默认
配置工程
1, AndroidManifest.xml 声明 xposed 模块
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="del Hook Demo" />
<meta-data
android:name="xposedminversion"
android:value="54" />
第一个 meta-data 模块声明,固定
第二个 meta-data 模块描述
第三个 meta-data 模块最小支持版本
配置环境,api.jar
将 api.jar 放入app的libs目录下,
在 api.jar 上右键, add as library... OK --添加为一个库文件
转成库文件之后,build.gradle.kts 配置文件中会多出一行配置implementation(files("libs\\api.jar"))
将他改为, 意思是不将这个 api.jar 编译打包
compileOnly(files("libs\\api.jar"))
2, 自定义一个入口类Main
在src/main下 创建 assets 目录,在里面创建 xposed_init 文件,该文件中写入模块入口类全路径
创建 assets 目录: New --> Folder --> Assets Folder
assets 目录下 创建 xposed_init 文件
与MainActivity文件同级,在这里创建一个自定义类Main,做为程序入口类
将这个自定义程序入口类 Main 的包名 com.del123.lsposeddemo.Main 写入 xposed_init 文件中
3,配置自定义Main类,实现IXposedHookLoadPackage接口
package com.del123.lsposeddemo;
import android.util.Log;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class Main implements IXposedHookLoadPackage {
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
// 此处写hook代码
Log.d("del123", "lsposed Hooking...");
// Xposed框架需要判断 包名 与 app包名 是否一致
// if(!loadPackageParam.packageName.equals(PackageName)) return;
}
}
5,测试hook
使用AndroidStudio 编译 lsposeddemo 模块(apk文件),
outputs/apk/debug/app-debug.apk 安装到手机
adb install .../app-debug.apk
cmd 命令,获取 lsposeddemo 模块输出
adb logcat | findstr ooking
打开当前安装的 lsposeddemo 模块即输出打印