Xposed快速入门例子(二)----- 调方法的合适时机

、前言

上篇文章已经介绍了如何用Xposed实现调一个小功能的方法(Xposed快速入门例子(一)----- 拉黑好友

那么这个代码在什么时机调用呢?我主要想到了以下两个模式。

二、两种调用模式

1.发广播(主要用于测试)

具体思路就是往Xposed模块中注册广播,然后在其它app中发送广播过去。

那么在什么地方注册广播呢? 网上大佬们给的方法很多,但是很多都会出现重复接收的情况。

所以介绍一下我的思路。看以下代码

        //注意:这是kotlin代码,kotlin中"=="相当于java中的"equals"
        if (lpparam.processName=="com.tencent.mm"){
          
            //在此处注册广播!
            val intentFilter = IntentFilter().apply {
                addAction("action_pull_black")
            }

            context.registerReceiver(myReceiver, intentFilter)
        }

可以看到注册广播的时候,我是用进程过滤的。因为微信的进程很多,所以不要用包名过滤。这样保证不会收到重复的广播!

    /**
     * 广播接收器
     * */
    private val myReceiver = object :BroadcastReceiver(){
        override fun onReceive(context: Context?, intent: Intent) {
            if (intent.action=="action_pull_black"){
                val wxid = intent.getStringExtra("extra_wxid")

                Handle.setBlack(wxid)


            }
        }
    }

通过广播接收器,可以看到收到了一个wxid,直接调拉黑的方法就可以了。

我在app主页,写了一个EditText和一个Button。点拉黑就把广播发送了过去。看以下代码

        btn_pull_black.setOnClickListener {
            val wxid = et_wxid.text.toString()
            if (wxid==""){
                Toast.makeText(this, "wxid不能为空!", Toast.LENGTH_SHORT).show()
                return@setOnClickListener
            }

            sendBroadcast(Intent().setAction("action_pull_black").apply {
                putExtra("extra_wxid", wxid)
            })


        }

这样这种模式就完成了!

 

 

2.hook到微信的方法之后,再调相应的Xposed代码

一般做Xposed模块的项目,主要用到的就是这种模式。

我们可以设想一个实际场景,如果好友说了一句骂人的话,我们就把他拉黑。

所以我们现在要做的就是hook到这个聊天内容和好友的wxid。

如何hook呢。我看大佬们的方法也是千奇百怪。

我觉得做实用的思路就是微信巫师所提供的------trace微信的数据库。

这种方式的好处就是简单明了,不用适配微信的版本。

以下是打开微信的db文件(db文件是加密的,网上有很多解密的方法,请自行百度),通过分析找到了聊天记录的表所在的地方。

我们只要hook插入数据库的方法就可以了。

    // Hook SQLiteDatabase to trace all the database operations.
    @JvmStatic
    fun traceDatabase() {

        XposedHelpers.findAndHookMethod(
                pkg.SQLiteDatabase, "insertWithOnConflict",
                String::class.java, String::class.java, ContentValues::class.java, Int::class.java, object : XC_MethodHook() {
            @Throws(Throwable::class)
            override fun beforeHookedMethod(param: MethodHookParam) {
                try {
                    val table = param.args[0] as String?
                    val values = param.args[2] as ContentValues?
                    val talker = values?.get("talker").toString()
                    if (table == "message") {
                        val content = values?.get("content").toString()
                        Log.e("Developer","hook到的---->content:$content\n" +
                                "talker--->$talker")

                        if (content == "滚") {
                            Handle.setBlack(talker)
                        }
                    }

                } catch (e: Exception) {
                }


            }

        })
    }

下面测试一下这个hook。我用我的微信给测试的微信号发一个“你好啊”

下图可以看到日志已经打印到logcat里了

所以这种方式也可以实时监控聊天记录。

如果我给测试的微信号发一个内容为“滚”的消息,那么测试的微信号肯定就拉黑我了!

三、Xposed修改免重启

修改Xposed代码的时候,每次都得重启设备,给测试工作带来了不少麻烦。

微信巫师中有一套免重启的方案,我拿来用了。文章最后会给出源码。

只要在源码的app主页,点击【重启微信】的按钮,就可以了。

 

版权声明:本文为博主原创文章,转载请声明出处

源码下载地址:https://github.com/syxxjujing/Occasion

下一篇文章计划分享利用群发助手,按照标签群发消息。

欢迎加QQ群:536941874      群里会实时分享技巧。包括一些简单实用的源码。我有时间也会回答大家的问题

 

 

### 回答1: xposed-framework-v90-beat3-magiskmodule.zip 是一个Magisk模块,它提供了对Xposed Framework的支持。Xposed Framework是一个强大的Android修改工具,可以让用户对系统进行深度定制,并添加各种功能和特性。 该模块需要通过Magisk来进行安装,因为Magisk是一个系统级的框架,可以在无需修改系统分区的情况下对Android设备进行修改。 Xposed Framework主要通过向Android系统注入代码,来实现对系统的修改。它提供了许多插件和模块,可以实现一些常见的功能,如修改某些应用的行为、添加新的快捷方式,甚至可以更改应用的外观和主题等。 通过使用xposed-framework-v90-beat3-magiskmodule.zip,用户可以将Xposed Framework集成到Magisk中,以便在Android设备上进行高级定制。安装这个模块非常容易,只需要将它放置在Magisk的模块文件夹中,然后在Magisk Manager中选择安装即可。 但是需要注意的是,由于Xposed Framework对Android系统进行了深度修改,可能会导致系统的不稳定和安全性的风险。因此,在安装前务必备份设备,以防出现意外情况。另外,确保从可信的来源下载和安装该模块,以避免安全风险。 总之,xposed-framework-v90-beat3-magiskmodule.zip 是一个Magisk模块,用于将Xposed Framework集成到Magisk中,从而实现对Android系统的深度定制和功能增强。但是请谨慎操作,并确保安全和稳定性。 ### 回答2: xposed-framework-v90-beat3-magiskmodule.zip是一个针对安卓手机的Magisk模块,用于安装Xposed框架的。Xposed框架是一个开源的第三方框架,通过它可以实现在不修改系统的情况下对安卓手机进行个性化定制和功能增强。 这个Magisk模块的版本是v90-beat3,表示这是一个测试版本,可能存在一些问题和不稳定性。Magisk是一个用于完整系统脱机挂载的工具,可以在不修改系统分区的情况下对系统进行修改,因此可以避免一些安全性问题。 将xposed-framework-v90-beat3-magiskmodule.zip安装到Magisk Manager后,可以在手机上启用Xposed框架。Xposed框架具有丰富的模块,可以实现一些强大的功能,如修改系统UI、增加新的快捷方式、改变应用行为等。用户可以根据自己的需求选择和定制需要的模块。 需要注意的是,安装Xposed框架可能会对手机的稳定性和安全性产生一定的影响,因此在安装前需要做好备份,并确保自己具备一定的技术水平和知识来解决可能出现的问题。安全起见,建议仅在了解风险的情况下使用这个Magisk模块,并使用官方推荐的版本。 总结来说,xposed-framework-v90-beat3-magiskmodule.zip是一个通过Magisk安装的Xposed框架模块,可以在安卓手机上实现个性化定制和功能增强。安装前需要备份和了解风险,并需具备一定的技术水平来解决问题。 ### 回答3: xposed-framework-v90-beat3-magiskmodule.zip是一个用于安卓系统的模块,主要用途是通过修改系统文件来实现一些个性化的功能和优化。 Xposed Framework是一个非常流行的开源项目,它提供了让用户在不修改APK文件的情况下修改系统应用程序和框架的能力。它通过在系统启动时使用一个虚拟机来实现这一点,并通过安装不同的模块来添加各种功能。 v90-beat3意味着这是Xposed Framework的版本号,版本号的增加通常意味着更多的功能和更好的稳定性。这个版本可能是一个测试版本,意味着它仍然处于开发阶段,可能存在一些问题,但它也可能包含一些新功能的改进。 Magisk Module是一个用于Magisk Manager的模块,Magisk是一种基于开源的Android通用系统修改工具。它允许用户以系统级的方式对设备进行修改,而不会影响原始系统文件。Magisk Module可以通过Magisk Manager进行管理和安装,它可以添加各种功能,如Root权限、模块管理和隐藏特定应用程序等。 总的来说,xposed-framework-v90-beat3-magiskmodule.zip是一个用于安卓系统的Xposed Framework模块,通过修改系统文件来提供个性化功能和优化。它可能是一个测试版本,而Magisk Module是用于Magisk Manager的模块,可以添加各种功能和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值