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

一、编写相应的文件内容

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

在这里插入图片描述
并去项目目录下面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当中加入以下模块内容:

 		<meta-data
            android:name="xposedmodule"
            android:value="true"/>
        <meta-data
            android:name="xposeddescription"
            android:value="Xposed example"/>
        <meta-data
            android:name="xposedminversion"
            android:value="54"/>           //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文件

<LinearLayout
        android:id="@+id/firstSupspend"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        tools:ignore="MissingConstraints">
       	    <TextView
            android:id="@+id/tv1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:textSize="30sp"
            tools:ignore="MissingConstraints" />

	        <TextView
	        android:id="@+id/tv2"
	        android:layout_width="match_parent"
	        android:layout_height="match_parent"
	        android:layout_gravity="center_vertical"
	        tools:ignore="MissingConstraints"
	        android:textSize="20sp"/>
    </LinearLayout>

相对应的文件代码为:

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当中进行显示。

二、运行结果

在这里插入图片描述
安装之后重启设备进行激活。
在这里插入图片描述
这是一个最为简单的Xposed监听模型。
本文代码的下载地址:https://download.csdn.net/download/qq_40282557/12598163

很抱歉,作为AI语言模型,我无法在Android Studio编写程序。不过,我可以提供一些建议和指导,帮助您开始编写流程管理程序。 首先,您需要确定您想开发的流程管理程序的功能和特征。一些常见的流程管理功能包括: - 创建和维护流程图 - 分配任务和责任 - 跟踪进度和状态 - 自动化流程操作 - 生成报告和分析 接下来,您需要选择编程语言和开发框架Android Studio通常用于开发Android移动应用程序,但您也可以使用其他编程语言和框架来开发桌面或Web应用程序。 一些常见的编程语言和框架包括: - Java:Java是一种广泛使用的编程语言,也是Android应用程序的首选语言。您可以使用Java编写桌面或Web应用程序,但需要使用其他工具和框架。 - Python:Python是一种易于学习和使用的编程语言,广泛用于Web开发、数据分析和人工智能领域。您可以使用Python编写桌面或Web应用程序,但需要使用其他工具和框架。 - Node.js:Node.js是一种基于JavaScript的运行时环境,用于开发Web应用程序。您可以使用Node.js和相关框架(如Express)开发Web应用程序。 一旦您确定了编程语言和框架,您需要学习如何使用它们来开发应用程序。您可以在网络上找到许多教程和资源,以帮助您快速入门。 最后,您需要设计和实现您的流程管理程序。这包括创建用户界面、编写业务逻辑和数据处理代码、调试和测试代码等。 总之,编写流程管理程序需要一定的计划、学习和实践。希望这些建议和指导能够帮助您开始编写您的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值