在刚开始LSPosed模块开发的时候难免会出现一下问题,这篇文章是记录一下在搭建模块开发的环境搭建(Android studio)
1.要想开发LSPosed,在手机或者模拟器上安装LSPosed
看怎么安装LSPosed可以看多开鸭 - 模拟器多开 - 专业模拟器多开网这网站对于怎么安装Magisk和Lsposed讲的很好可以查看一下(我的是在虚拟机上运行的)
2.下载xposed并配置
虚拟机上对于Lsposed上搭建完成后,在Android studio新建一个项目
建好后设置AndroidManifest.xml文件
在<application>中添加
下载xposedbridge.jar
方法一:直接在网上下载xposedbridge.jar,在导入Android studio中去
xposedbridge.jar的链接链接:(如果实在做不到的话 去github找一下lsposed或者其他xposed的模块,在模块里面就有)
https://pan.baidu.com/s/1CduZDo_5PkYRFMqgPxMymg
提取码:r8mr
不能implementation fileTree('lib/XposedBridgeAPI-82.jar') 会报错
方法二:设置setting.gradle(建议不用这个)
也可以设置多个镜像
设置build.gradle
Using the Xposed Framework API · rovo89/XposedBridge Wiki (github.com) 这是官方文档设置的build.gradle,在官方文档中是以:
repositories {
jcenter();
}
dependencies {
provided 'de.robv.android.xposed:api:82'
}
但在现在中的android studio repositories{ jcenter();}和provided已经被替代
jcenter替代为maven(就是上面setting.gradle设置的),而provided替代为compileOnly(如果可以用就以官方为标准)
如果不是使用compileOnly而是根据maven官方的Maven Repository: de.robv.android.xposed » api » 82 (mvnrepository.com) 的 implementation group: 'de.robv.android.xposed', name: 'api', version: '82' 在Android studio中可以下载但LSP会报错
报错信息:
但我们先执行implementationgroup:'de.robv.android.xposed',name:'api',version:'82' 后才继续设置compileOnly 'de.robv.android.xposed:api:82',原因后面有
因为在compileOnly 'de.robv.android.xposed:api:82'中不会依赖,只有在implementation group:'de.robv.android.xposed',name:'api',version:'82'才会依赖。但在implementation 依赖的xposed框架在lsp中识别不了,所以implementationg依赖后,把implementationg替换成compileOnly lsposed就可以识别了(太麻烦了)最主要的是为什么compileOnly 'de.robv.android.xposed:api:82'在build.gradle依赖不了不太清楚(如果你的可以就不用这么麻烦) 在着compileOnly 的依赖是不会放入apk中的所以每次虚拟机重启的时候都会消失,要重新上面一次操作,先编译implementationg的,后删掉implementationg,再编译compileOnly。
当你设置 xposed的build.gradle后下载可能会出现问题
这个可能就是Android studio代理的问题了
解决方法关掉代理
然后去C:\Users\Administrator\.gradle 把gradle.properties里的
systemProp.http.proxyPort=80
systemProp.https.proxyHost=mirrors.neusoft.edu.cn
systemProp.https.proxyPort=80
这三个注释掉
重启Android studio 在继续下载就可以了,如果还是不行看看build.gradle文件中的jdk是不是1.8
上面完成后开始设置xposed的代码:
于MainActivity同包新建一个类
然后在main里建一个assets包在assets包里设置xposed_init.txt文件
xposed_init.txt:
设置你定义的Xposed类,这是lsposed进入程序口 运行这个app
在lsposed中激活他,并且选择hook的程序,准备好后重启模拟器,重启后可以点击你的practicexposed应用或者我选择的cmdshell应用,在Android studio 的logcat上看日记