如何在Android 4.4上实现短信拦截

如何在Android 4.4上实现短信拦截,第1张

众所周知Android在4.4上增加了不少安全措施,除了把SELinux设置为enforce外,在短信方向也加强了限制。4.4之后,新增了一个default sms的机制,详细的描述,可以参考我的另一篇文章《谈谈4.4中的新增功能对安全类软件的影响》。简而言之,就是如果要在4.4之后实现短信拦截功能,就必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截。但这种做法,适配性和兼容性的工作是非常巨大的,短信、wapush(多种)、彩信、单双卡等等,相当于要求短信拦截类的软件要集成一个功能非常完善的通讯录类应用的功能。

那么,是否有一种方法,可以在不成为default sms的同时也可以对短信进行“写 *** 作”(这可是让4.4一下子回到解放前啊。。。。)? 答案是有的。

XDA大牛有人发现了一种比较讨巧的方法,原文可以参考这里。

原理很简单,主要是利用4.2+后的添加的App Ops权限管理功能,在MESSAGE的TAB中找到自己的App,并进入相应的权限管理界面,如下图所示,FinalDemo是我自己测试的一个DEMO:

留意到Write SMS/MMS的开头,默认是OFF的,但我们可以把它打开。

打开之后,我们就可以通过监控短信数据库变化的方法实现短信拦截了,我也写了个简单的测试代码,测试成功,把代码和相关的配置也放了来吧

打开App Ops的代码

[java] view plaincopy

<span style="white-space:pre"> </span>Intent intent = new Intent(Intent.ACTION_MAIN)

ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.Settings")

数据库监听?数据库有这功能吗?应该是你在Activity中触发了什么事件,事件中的代码去修改数据库中的数据吧?

还是你想问的是别的应用怎么监听数据库的数据变化?如果多个应用需要用同一个数据库的最新数据,那在修改数据的时候发送一个广播,让所有的应用都接收到,在查一次。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6688210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存