Xposed(一)创建一个xposed程序

安装本地服务Xposed

安装xposed参考资料
xpoesd官网
xposed安装器源码

这是安装成功后的截图

S70921-171807.jpg

装完之后我们需要打开我们的Studio,新建一个项目,并导入依赖

导入依赖

dependencies {
       provided 'de.robv.android.xposed:api:82'
}

在AndroidManifest.xml中添加

<meta-data android:name="xposedmodule" android:value="true"/>
<meta-data android:name="xposeddescription" android:value="第一个xposed程序"/>
<meta-data android:name="xposedminversion" android:value="54"/>

  • xposedmodule:表明是一个xposed程序
  • xposeddescription:xposed程序的简介
  • xposedminversion:xposed插件的最低版本

新建一个类实现接口

public class XposedModule implements IXposedHookLoadPackage {
       @Override
       public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
      }
}

在assets文件夹中新建一个xposed_init的文件

把我们刚刚创建的那个类的包名复制过来,并加上类名


TIM截图20170921181248.png

接下来我们在我们的mainActivity写一个点击事件

@OnClick(R.id.btn_click)
public void onViewClicked() {
     showToast(getString());
}
public String getString(){
    return "开启xposed失败";
}

然后我们在我们刚刚的那个XposedModule类中去通过反射修改getString的内容

public class XposedModule implements IXposedHookLoadPackage {

@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
    if (lpparam.packageName.equals("com.tanxin.myxposed")){
        Class clazz = lpparam.classLoader.loadClass("com.tanxin.myxposed.MainActivity");
        XposedHelpers.findAndHookMethod(clazz, "getString", new XC_MethodHook() {
            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                super.beforeHookedMethod(param);
            }

            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
               param.setResult("已经劫持了。开启起飞了");
            }
        });
    }

}

}

这时候运行你的app,发现还是劫持失败?what?老子的代码怎么可能会有BUG!!!
现在打开你的XPosedInstaller,去模块中勾选你的app,然后重启手机,然后就起飞了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,872评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,560评论 18 399
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,858评论 0 17
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,873评论 0 9
  • 不知道什么时候起?妈妈开始注意我的心 思,不知道什么时候起?妈妈开始刻意照顾 我的情绪。但每一次我都开心又难过……...
    4e57b8f24a48阅读 4,239评论 0 0

友情链接更多精彩内容