前言 最新的xposed框架已经从xposed到Edxposed再到Lsposed,虽然xposed的api依然是通用的82版本,但现在网上大多数的在Android studio上配置xposed的教程已经有点落后了,因此写下这篇来记录自己
最新的xposed框架已经从xposed到Edxposed再到Lsposed,虽然xposed的api依然是通用的82版本,但现在网上大多数的在Android studio上配置xposed的教程已经有点落后了,因此写下这篇来记录自己安装的流程。lsposed如何安装可以看我之前的小米root文章。
找到app目录下的build.gradle,在dependencies里加上
compileOnly 'de.robv.android.xposed:api:82'compileOnly 'de.robv.android.xposed:api:82:sources'
这一步和网上的教程都是一样的,虽然xposed的api最新的是89,但最初的开发者只更新到82,89是后面其他开发者补充的,因此选用82是最稳定的。
但不要像网上很多教程说的一样添加jcenter,这个仓库在21年已经宣布停止更新了。现在跟android studio合作的是Maven,或者可以用国内阿里云的镜像。找到settings.gradle(以前build.gradle里的allprojects/repositories现在统一搬到这里了),在repositories里加上
maven { url 'https://maven.aliyun.com/repository/public/' }
或者
maven { url "Https://api.xposed.info/" }
至于从哪个仓库同步能成功我也不确定,或者你像我一样总是同步不成功,只能下载XposedBridgeApi-82.jar然后放进app/libs文件夹下,右击jar文件——>add to library,再把dependencies中的implementation files('libs\\XposedBridgeApi-82.jar')
改成compileOnly files('libs\\XposedBridgeApi-82.jar')
。
跟xposed有关的尽量不用implementation,如果后面报错: Cannot load module
The Xposed API classes are compiled into the module’s APK.
This may cause strange issues and must be fixed by the module developer.
可能就是在dependencies里用到了implementation。
在AndroidManifest.xml application标签中加入
<meta-data android:name="xposedmodule" android:value="true" /><meta-data android:name="xposeddescription" android:value="这是一个xposed demo" /><meta-data android:name="xposedminversion" android:value="82" />
xposedmodule告诉xposed框架这是一个xposed模块,xposeddescription给你的模块添加描述,xposedminversion表示支持的最低xposed版本。
在main目录下,AndroidManifest.xml的同级,新建一个assets文件夹。
在assets文件夹下新建文件xposed_init,文件类型选择text,文件内容填上你要新建的xposed类的名字。这个文件标记了你的xposed模块的入口。
在main/java/package name文件夹下,跟main activity同级,新建一个java类,这就是你模块的功能主体,可以在这里添加hook app内方法的函数。以下是打印app包名的一个模块示例:
package com.xposed.ssl;import de.robv.android.xposed.IXposedHookLoadPackage;import de.robv.android.xposed.XC_MethodHook;import de.robv.android.xposed.XposedBridge;import de.robv.android.xposed.callbacks.XC_LoadPackage;public class passhook implements IXposedHookLoadPackage { @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { XposedBridge.log("Loaded app: " + lpparam.packageName); }}
如果只是用作Lsposed的一个模块的话,Main Activity其实是不需要的,可以选择safe delete。但是要先把AndroidManifest.xml里Main Activity的部分删除并且把main/res/layout里的主界面布局文件删掉。
可以用手机连接android studio,确保你的手机能够打开开发者选项里的USB调试和USB安装,并且电脑上已经装好adb。
android studio上打开File——>settings——>System settings——>Android SDK,下载好你手机android版本对应的sdk。
File——>settings——>System settings——>Android SDK——>SDK Tools,下载Google USB Driver。
用USB连接手机和电脑,打开设备管理器,选中便携设备中你的手机。选择驱动程序,更新驱动程序,选择刚刚安装的USB Driver,路径一般是在你存放SDK的路径下:Sdk\extras\google\usb_driver。
如果安装后提示你的手机已经安装了最适合的驱动那么这步就不用做了。然后打开手机的USB调试和安装,运行android studio的app,就能在手机上安装了,然后Lsposed也会检测到纳入这个模块。
来源地址:https://blog.csdn.net/scrawman/article/details/127187151
--结束END--
本文标题: android studio2021.3.1 最新xposed模块编写指南
本文链接: https://www.lsjlt.com/news/376622.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0