你有没有想过自己写一个Xposed模块?教程来了~(二)

简介: 在互联网上,关于Xposed模块编写的教程可谓是一抓一大把。但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化等)也正因此,网上的教程往往有一些时限性,比如现如今 provide 这个关键字已经被舍弃了却仍有人在用,还有些说要把jar包放到lib文件夹而非libs文件夹……种种错误或者落伍的教程对新手产生了很大的误导。

0×02 迈开第一步,新建项目并编辑AndroidManifest.xml


1、首先打开AndroidStudio(以版本3.1为例,还在用老版本的请升级),建立一个工程,提示我们选择“Activity”,那就选一个Empty Activity吧。(这个是模块的界面,随意选择即可)。

1fe9e0702f22259f91f468c6e6dd5652.jpg

2、我们可以把项目查看方式设置为Project模式,以方便查看。然后在 “项目名称/app/src/main/”目录下找到AndroidManifest.xml,双击之,并在指定位置插入以下三段代码:

android:name="xposedmodule"

android:value="true" />
android:name="xposeddeion"
android:value="这是一个Xposed例程" />
android:name="xposedminversion"
android:value="53" />


插入位置及代码说明如图所示:

1a1e4b4951a7a4d5ea0bfc5a7717dde2.jpg


插入之后,如果你把手机连上AndroidStudio ,点击“编译”或者“运行”的话,手机就会启动刚刚编写的这个程序。而在手机里的Xposed框架中也会显示出这个模块:

1dd3759c82de55d77fefd9220c4436a5.jpg

说明Xposed框架已经认出了我们写的程序。但先别高兴太早——虽然框架已经觉得他是一个Xposed模块了,但我们自己心里清楚,这个模块还啥都不会干呢。下一步,我们让这个模块长点本事。


0×03 走出第二步,搞定XposedBridgeApi-xx.jar 与 build.gradle


我们知道,Xposed模块主要功能是用来Hook其他程序的各种函数。但是,如何让前一步中的那个“一穷二白”的模块长本事呢?那就要引入 XposedBridgeApi.jar 这个包,你可以理解为一把兵器,模块有了这把宝刀才能施展出Hook本领。以前,都需要手动下载诸如XposedBridgeApi-54.jar 、 XposedBridgeApi-82.jar 等jar包,然后手工导入到libs目录里,才能走下一步道路。其实在AndroidStudio 3.1里面,我们完全不用这么麻烦,只需要多写一行代码,就让AndroidStuido自动给我们配置XposedBridgeApi.jar !下面操作开始(序号接着上一节):

3、在 “项目名称/app/src/main/”目录下找到build.gradle,在图示位置加上:

repositories {undefined

jcenter()

}

以及

compileOnly \\\\\'de.robv.android.xposed:api:82\\\\\'

compileOnly \\\\\'de.robv.android.xposed:api:82:sources\\\\\'

这句代码是告诉AndroidStuido使用jcenter作为代码仓库,从这个仓库里远程寻找 de.robv.android.xposed:api:82 这个API。这个网上很少有Xposed教程介绍它的!(我们不用自己找XposedBridgeApi.jar了。注意!此处要用compileOnly这个修饰符!网上有些写的是provide ,现在已经停用了!)如图:

415ac19346f4147c9a0cc64c8ee61c3c.jpg

写完之后, build.gradle会提示文件已经修改,是否同步。点击 “sync now”,同步即可:

55c61356f7d0f0442a8acee102627a05.jpg

【ps:如果网络不通,或者同步不畅,就不要进行第三步的repositories { jcenter()}这个步骤了,改做这个步骤:】


手动下载XposedBridgeApi-82.jar ,拖放到“项目名称/app/libs/”里面(不是网上说的单独建立lib文件夹,那是很久以前的故事了!),然后右键“Add As Library” 自行添加这个jar包。而compileOnly ‘de.robv.android.xposed:api:82′和 compileOnly ‘de.robv.android.xposed:api:82:sources’这两句仍然照常添加。

目录
相关文章
|
3月前
|
Python
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
手撕Python!模块、包、库,傻傻分不清?一分钟带你弄明白!
47 1
|
6月前
|
XML Java API
安卓逆向 -- Xposed模块编写
安卓逆向 -- Xposed模块编写
72 0
|
Java API Android开发
你有没有想过自己写一个Xposed模块?教程来了~(一)
在互联网上,关于Xposed模块编写的教程可谓是一抓一大把。但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化等)也正因此,网上的教程往往有一些时限性,比如现如今 provide 这个关键字已经被舍弃了却仍有人在用,还有些说要把jar包放到lib文件夹而非libs文件夹……种种错误或者落伍的教程对新手产生了很大的误导。
374 0
|
6月前
|
JavaScript Unix
mac学习vue被这件事折磨的无路可退(绝了,我通过脚本解决一切)
mac学习vue被这件事折磨的无路可退(绝了,我通过脚本解决一切)
60 0
|
运维 Java Devops
莫慌!阿里人用五个模块讲明白了SpringCloud,可下载
Spring Cloud “微服务”应该是互联网圈内争论很久的一个话题,开发者对此的讨论也一直在继续,近些年,SpringCloud有碾压Dubbo的趋势,你怎么看呢? SpringCloud在近些年来受到国内不少开发人员的广泛关注,也是比较吃香的一个技术技能,如果一个程序员连SpringCloud都没有怎么了解过或者使用过,那么可能会有面临被时代淘汰的危机! SpringCloud是知名的微服务架构,包含了很多组件,每个组件又有各自的分工。那么你对SpringCloud了解有多少呢,知之甚少还是运用自如?
|
Java Android开发
你有没有想过自己写一个Xposed模块?教程来了~(三)
在互联网上,关于Xposed模块编写的教程可谓是一抓一大把。但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化等)也正因此,网上的教程往往有一些时限性,比如现如今 provide 这个关键字已经被舍弃了却仍有人在用,还有些说要把jar包放到lib文件夹而非libs文件夹……种种错误或者落伍的教程对新手产生了很大的误导。
159 0
|
Java Android开发
你有没有想过自己写一个Xposed模块?教程来了~(四)
在互联网上,关于Xposed模块编写的教程可谓是一抓一大把。但由于时间的推移,很多工具和方法都发生了变化(如Eclipse退出安卓编程舞台,AndroidStudio 不断升级导致其一些设置也随之变化等)也正因此,网上的教程往往有一些时限性,比如现如今 provide 这个关键字已经被舍弃了却仍有人在用,还有些说要把jar包放到lib文件夹而非libs文件夹……种种错误或者落伍的教程对新手产生了很大的误导。
118 0
|
安全 Java Linux
手把手教你搭个Frida + Sekiro Rpc框架
手把手教你搭个Frida + Sekiro Rpc框架
手把手教你搭个Frida + Sekiro Rpc框架
|
Java Linux API
抱歉,Xposed真的可以为所欲为——1.基础知识储备(上)
本节简单介绍了什么是Xposed,基本原理,如何创建一个Xposed项目以及Xposed常用的类与方法。
441 0
|
API
抱歉,Xposed真的可以为所欲为——1.基础知识储备(下)
本节简单介绍了什么是Xposed,基本原理,如何创建一个Xposed项目以及Xposed常用的类与方法。
748 0