安卓Hook系列教程(一):xposed模块开发环境搭建

posed教程比较多,但是大多都相差无几,要么就只是入门级,要么就是从源码角度分析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,添加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')
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

然后如果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" />  
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

新建一个类,并实现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");//机型
    }

}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

接下来在assets中创建一个新的文件,命名为xposed_init,在里面添加你刚才创建的类名cn.bestmk.HookMain 
运行应用,在xposed框架中勾选你刚才编写的模块,重启手机,然后手机机型就改变了。 
下一篇文章将会更详细的介绍各种情形的hook方式 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值