问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

LSPosed 安装与工程创建指南

创作时间:
作者:
@小白创作中心

LSPosed 安装与工程创建指南

引用
CSDN
1.
https://blog.csdn.net/Ben_boba/article/details/139939882

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.1
LSPosed依赖
Zygisk-Next-v4-0.8.1-111: https://github.com/Dr-TSNG/ZygiskNext/releases/tag/v4-0.8.1
LSPosed
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 模块即输出打印

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号