利用Android Studio编写一个简单的Xposed框架文件

一、编写相应的文件内容

1、首先在app目录下面新建一个lib文件夹,注意不能直接使用libs文件夹,将XposedBridgeApi-**.jar文件复制到lib文件目录下面,然后点击鼠标右键,选择Add As Library选项。(XposedBridgeApi-54.jar下载链接:https://pan.baidu.com/s/1pFfsmtpZVz1v8loO1W9XWg 提取码:ovdf)

利用Android Studio编写一个简单的Xposed框架文件_第1张图片
并去项目目录下面build.gradle文件最后修改相应的文件内容implementation files(‘lib/XposedBridgeApi-54.jar’)改为compileOnly files(‘lib/XposedBridgeApi-54.jar’)。

2、在app/src/main目录下面创建assets文件夹,在此文件夹下面创建文本文件xposed_init,在里面编写内容指定了module的入口类。

com.example.xposed.Main//com.example.xposed为包名,Main就是要编写的内容。

在AndroidMannifest.xml当中加入以下模块内容:

 		
        
                   //XposedBridgeApi-54.jar的版本号

这样由Xposed框架就能“认识”我们所编写的内容是一个Xposed的模块。

3、接下来就编写hook文件。
新建一个Java文件,编写如下代码:

public class Main implements IXposedHookLoadPackage {
    @Override
    public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        if (lpparam.packageName.equals("com.example.xposed")) {
            XposedHelpers.findAndHookMethod(TelephonyManager.class, "getDeviceId", new XC_MethodReplacement() {
                @Override
                protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
                    return "this is cainiaoxiaomanong";
                }
            });
            XposedHelpers.findAndHookMethod(TelephonyManager.class, "getSubscriberId", new XC_MethodReplacement() {
                @Override
                protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
                    return "this is imsi";
                }
            });
        }
    }
}

在新建一个Activity设置一个界面。
设置XML文件


       	    

	        
    

相对应的文件代码为:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        final TextView tv1 = (TextView) findViewById(R.id.tv1);
        final TextView tv2 = (TextView) findViewById(R.id.tv2);
        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        tv1.setText("imei: "+tm.getDeviceId());
        tv2.setText("imsi: "+tm.getSubscriberId());
    }
}

也就是通过两个方法:getDeviceId()与getSubscriberId()两个方法,返回相应的内容,并在Activity当中进行显示。

二、运行结果

利用Android Studio编写一个简单的Xposed框架文件_第2张图片
安装之后重启设备进行激活。
利用Android Studio编写一个简单的Xposed框架文件_第3张图片
这是一个最为简单的Xposed监听模型。
本文代码的下载地址:https://download.csdn.net/download/qq_40282557/12598163

你可能感兴趣的:(安卓,Xposed)