吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4283|回复: 8
收起左侧

[其他原创] 【Android】Xposed 插件开发入门教程(一)

  [复制链接]
andorxor 发表于 2018-7-21 21:08
本帖最后由 wushaominkk 于 2018-7-23 16:06 编辑

其实网上已经有很多 Xposed 插件开发的入门教程了,我写的这篇与其说是教程,不如说是参考,为了防止以后忘了开发步骤,这里就写篇博客记录一下。
要使用 Xposed 插件,首先要 root 手机并安装 Xposed 框架,这个是必须的(Xposed 安装相关教程请自行百度吧)。不过现在有一个 VirtualXposed 可以免 root 使用 Xposed,本人没有用过,就不多介绍了,有兴趣的朋友可以去搜索了解一下,下面就进入我们的 Xposed 插件开发教程。

步骤一:创建一个 Android 应用

打开 Android Studio 并创建一个 Android 应用,其实 Xposed 插件也是一个普通的 app,只不过需要添加一些额外的配置,以便 Xposed 能够识别这些插件,这个似乎没什么好说的,我就不啰嗦了。

步骤二:添加 Xposed 插件相关配置

首先在项目的 app 目录下的 build.gradle 文件中添加如下配置:

dependencies {
    compileOnly 'de.robv.android.xposed:api:54'
}

其中 dependencies 表示项目的依赖项;compileOnly 表示此此包仅编译时使用,不会将相关代码打包进 apk;后面的数字 54 表示要支持的 Xposed 版本,这个可以根据需要自行调整。
接着在 AndroidManifest.xml 中按如下代码配置:

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="description" />
<meta-data
android:name="xposedminversion"
android:value="54" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

主要就是添加 3 个 meta-data 元素,其中 xposedmodule 表示此应用是一个 Xposed 插件;xposeddescription 为此插件的描述,插件安装后在 Xposed 插件页面可以看到此描述文本;而 xposedminversion 则表示要求的 Xposed 最低版本,通常这个字段要和前面的依赖项版本号相同。

步骤三:创建 Hook 类并实现相关代码

新建一个类,假设命名为 XposedInit,让此类实现 IXposedHookLoadPackage 接口,代码如下:

public class XposedInit implements IXposedHookLoadPackage {

    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        XposedBridge.log("Loaded app: " + lpparam.packageName);
    }
}

这里先打印一个 log 吧,具体的 hook 代码以后有时间再写篇博客,这里就不写了,不然这博客写不完了。

步骤四:配置 xposed_init

在 assets 目录下新建一个名为 xposed_init 的文件(文件名必须是这个,且无后缀),并将相关 hook 类的全限定名称写入此文件中,如有多个类,则每行写一个,如:

xxx.xxx.XposedInit

这一步是告诉 Xposed 我们的 hook 类是哪些,要不 Xposed 找不到我们的类就无法完成 hook 操作了。

步骤五:编译插件并安装到手机

使用 AndroidStudio 编译并生成签名的 apk 文件,然后安装到手机中,如无意外,Xposed 会提示我们插件已安装,并询问是否要开启插件并重启手机,重启后打开 Xposed 的日志界面就可以看到我们的插件输出的 log 了。

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
plpplppl + 2 + 1 我很赞同!
qw3658 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wangxiaohu 发表于 2018-7-21 21:14
有插件成品吗?
 楼主| andorxor 发表于 2018-7-21 21:18
寂如流年的回忆 发表于 2018-7-21 21:29
O(∩_∩)O哈哈~,没学过。一脸懵逼进来,一脸懵逼出去
wangxiaohu 发表于 2018-7-23 00:46 来自手机
andorxor 发表于 2018-7-21 21:18
要成品干啥,自己写啊。。

不会啊,萌新啊
wushaominkk 发表于 2018-7-23 10:14
这个转载的都是以前的资料了,现在最新技术不用ROOT也可以HOOK了
 楼主| andorxor 发表于 2018-7-23 16:02
wushaominkk 发表于 2018-7-23 10:14
这个转载的都是以前的资料了,现在最新技术不用ROOT也可以HOOK了

大哥,这是原创。。

点评

发帖前看清版规,如果是原创可在分类选择原创源码!  详情 回复 发表于 2018-7-23 16:05
wushaominkk 发表于 2018-7-23 16:05
andorxor 发表于 2018-7-23 16:02
大哥,这是原创。。

发帖前看清版规,如果是原创可在分类选择原创源码!
niebaohua 发表于 2018-7-23 16:53 来自手机
看看就好,虽然啥也看不懂
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 17:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表