美文网首页
Xposed(一)创建一个xposed程序

Xposed(一)创建一个xposed程序

作者: 雕刻的时光岁月 | 来源:发表于2017-09-21 18:33 被阅读0次

安装本地服务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,然后重启手机,然后就起飞了

相关文章

网友评论

      本文标题:Xposed(一)创建一个xposed程序

      本文链接:https://www.haomeiwen.com/subject/wlktextx.html