安卓Hook系列教程(一):xposed模块开发环境搭建
2016-11-05 23:41
447 查看
xposed教程比较多,但是大多都相差无几,要么就只是入门级,要么就是从源码角度分析xposed的原理。但是针对xposed开发技巧类的却不多,很难找。 经常有人问我xposed静态方法,静态变量如何hook,插件更新后能不能不重启调试,我决定针对这些写一系列教程,如果有不正确的地方希望大家指出来改正。
xposed是什么东西就不介绍了,百度搜索一下就有,太多了。
首先给出几个地址,相信对你会很有帮助
rovo的github主页:https://github.com/rovo89
xposed官网:http://repo.xposed.info/
xposed javadoc地址:http://api.xposed.info
官方英文教程:https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
xda论坛的xposed版块:http://forum.xda-developers.com/xposed
最后XposedBridgeApi地址:https://jcenter.bintray.com/de/robv/android/xposed/api/
当然XposedBridgeApi你也可以前往csdn下载54版的,但是我喜欢尝鲜,就下载了新版,都可以用,看自己喜好。开始安装
Eclipse开发:将jar复制到lib或者libs目录下即可
Android Studio开发:将jar复制到app下的libs目录中,修改app的build.gradle,添加
大致是这样
然后如果Android Studio是2.0以上版本需要关闭Instant Run,File>>Setting>>Build….全部取消勾选就行了
在AndroidManifest.xml中添加如下代码:
新建一个类,并实现IXposedHookLoadPackage接口,并实现IXposedHookLoadPackage接口中的handleLoadPackage方法
接下来在assets中创建一个新的文件,命名为xposed_init,在里面添加你刚才创建的类名
运行应用,在xposed框架中勾选你刚才编写的模块,重启手机,然后手机机型就改变了。
下一篇文章将会更详细的介绍各种情形的hook方式
如果有问题欢迎发表评论,或者发送到我的邮箱zuimao66@foxmail.com,有时间我会一一解答
xposed是什么东西就不介绍了,百度搜索一下就有,太多了。
首先给出几个地址,相信对你会很有帮助
rovo的github主页:https://github.com/rovo89
xposed官网:http://repo.xposed.info/
xposed javadoc地址:http://api.xposed.info
官方英文教程:https://github.com/rovo89/XposedBridge/wiki/Development-tutorial
xda论坛的xposed版块:http://forum.xda-developers.com/xposed
最后XposedBridgeApi地址:https://jcenter.bintray.com/de/robv/android/xposed/api/
当然XposedBridgeApi你也可以前往csdn下载54版的,但是我喜欢尝鲜,就下载了新版,都可以用,看自己喜好。开始安装
Eclipse开发:将jar复制到lib或者libs目录下即可
Android Studio开发:将jar复制到app下的libs目录中,修改app的build.gradle,添加
provided files('libs/api-81.jar')
大致是这样
dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.0' testCompile 'junit:junit:4.12' provided files('libs/api-81.jar') }
然后如果Android Studio是2.0以上版本需要关闭Instant Run,File>>Setting>>Build….全部取消勾选就行了
在AndroidManifest.xml中添加如下代码:
<!-- xposed模块开关,默认true就行 --> <meta-data android:name="xposedmodule" android:value="true" /> <!-- 提示文字 --> <meta-data android:name="xposeddescription" android:value="Module测试" /> <!-- 最低版本支持 --> <meta-data android:name="xposedminversion" android:value="54" />
新建一个类,并实现IXposedHookLoadPackage接口,并实现IXposedHookLoadPackage接口中的handleLoadPackage方法
public class HookMain implements IXposedHookLoadPackage { @Override public void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable { //这里测试Hook静态变量,修改手机机型和厂商 XposedHelpers.setStaticObjectField(android.os.Build.class, "MANUFACTURER", "醉猫");//厂商 XposedHelpers.setStaticObjectField(android.os.Build.class, "MODEL", "bestmk.cn");//机型 } }
接下来在assets中创建一个新的文件,命名为xposed_init,在里面添加你刚才创建的类名
cn.bestmk.HookMain
运行应用,在xposed框架中勾选你刚才编写的模块,重启手机,然后手机机型就改变了。
下一篇文章将会更详细的介绍各种情形的hook方式
如果有问题欢迎发表评论,或者发送到我的邮箱zuimao66@foxmail.com,有时间我会一一解答
相关文章推荐
- Android Wear开发系列教程——搭建开发环境
- 安卓Hook系列教程(二):Xposed插件开发进阶篇
- 微信程序开发系列教程(一)开发环境搭建
- 跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建
- [cocos2d-x]游戏开发系列教程-搭建cocos2d-x的windows开发环境
- Cocos2d-x 3.x 系列教程01-开发环境的搭建
- vagrant系列教程(五):vagrant搭建python开发环境
- EasyAR从入门到精通开发系列教程(1)---搭建开发环境
- 跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建
- Html5斜45度地图+3D模型ARPG系列教程(1)-- 搭建开发环境
- PyQt5系列教程(一)Mac OS X下搭建Python3.5.1+PyQt5开发环境
- Android NDK开发系列教程1:环境搭建及基本代码结构
- [cocos2d-x]游戏开发系列教程-搭建cocos2d-x的windows开发环境
- Java入门教程系列 – 开发环境搭建
- 跨平台移动开发phonegap/cordova 3.3全系列教程-开发环境搭建
- Cocos2d-x 3.0final 终结者系列教程02-开发环境的搭建
- Silverlight for Windows Phone 7开发系列(1):环境搭建(转载来自Jake Lin)
- Silverlight for Windows Phone 7开发系列(1):环境搭建
- Silverlight for Windows Phone 7开发系列(1):环境搭建