浅谈短、彩信的拦截

MTK方案上基于Android N拦截黑名单中的短/彩信的方法 --- 作者 zuhui.zhang 安卓7.0原生系统增加了在framework层拦截黑名单来电和短信,但不会将数据保存到数据库,因此无法查看到被拦截的来电和短信。在安卓7.0之前,黑名单的短信默认是不会拦截的,为了实现黑名单短信拦截功能,需要对短信数据库表中的字段新增特殊的值,以便标记黑名单短信。以下具体说明下笔者对于MTK方案里的短信应用中拦截短彩信的实现方法。 一、拦截黑名 阅读详情

关于Android平台上短、彩信的拦截,网上已经有不少介绍性的文章。那些文章大多是介绍具体的实现方法,其提供的方法并不一定能够成功拦截。今天我们就来详深入地介绍一下拦截短、彩信的内部原理,并分析一下拦截方法的优劣。

Android接收短、彩信的原理

正常的短信在到达手机后,会根据不同的制式(GSM、CDMA等)被解析并封装成SmsMessage对象。该对象会被SMSDispatcher进一步解析并分发。系统会将短信的“format”、“pdu”放到action为“android.provider.Telephony.SMS_RECEIVED”的Intent中。之后系统会将Intent以有序广播(Orderd Broadcast)的形式发出去。监听这两个广播的app收到广播后,通过对pdu的解析,就可以得到短信的具体内容。

彩信的情况与短信类似,只不过运营商首先会发一条WapPush短信。这类短信不包含彩信的具体内容,而是包含一条指向真实内容的URL地址。系统会将WapPush短信解析,提取“pduType”、“header”、“pdu”、“format”等信息放到action为“android.provider.Telephony.WAP_PUSH_RECEIVED”的Intent中。同样,系统会以有序广播的形式将Intent发出去。收到广播的app将intent解析,并提取其中的URL。之后访问该URL地址并下载实际的彩信内容。

有序广播的原理

经过以上的分析,拦截短、彩信的关键就是拦截action为“android.provider.Telephony.SMS_RECEIVED”和“android.provider.Telephony.WAP_PUSH_RECEIVED”的广播。由于该广播是有序广播,所有Receiver 是按照顺序接受广播的。先收到广播的Receiver有权利终止该广播的传播。因此只要一个Receiver能够第一个收到广播并终止继续传播,那么就可以实现短、彩信的拦截。

这里简单介绍一下有序广播的传播方式。BroadcastReceiver 有静态和动态两种方式注册。

1. 静态注册:

静态注册是指在AndroidManifest.xml 中注册。方法如下: 

<receiver android:name=“.XXXMessageReceiver”>
    <intent-filter android:priority=“1000”>
          <action android:name=“android.provider.Telephony.SMS_RECEIVED” />
    </intent-filter>
</receiver>

2. 动态注册:

动态注册是通过调用Context类的register方法来注册。方法如下:

registerReceiver(BroadcastReceiver receiver,IntentFilter filter);
registerReceiver(BroadcastReceiver receiver, IntentFilter filter, 
                 String broadcastPermission, Handler scheduler);

 

注意,动态注册Receiver 的优先级是通过IntentFilter.setPriority(int)方法来设置的。当一个广播发生时,系统会将静态和动态的Receiver 按优先级(priority)进行排序,优先级越高越早处理。对于优先级相同的Receiver ,先处理动态的。

第三方解决方案

网上的通常解决方案是采用静态注册的方式注册BroadcastReceiver ,并设置一个较高的优先级,例如,1000、9999等。经过以上对于广播原理的分析,可以看出,这种方式其实并不能够保证接受者会第一时间被触发。比较好的实现方法需要注意两点:

1. 采用动态方式而非静态方式注册。监听系统开机广播,系统启动之后采用动态方式注册BroadcastReceiver 。这样可以保证在第一时间将需要的BroadcastReceiver注册成功;

2.  并将优先级设为最高。注意,系统的最高优先级不是网上所说的1000、9999,而是2147483647。这是int类型能够表示的最大数值。

做到这两点可以大大增加拦截的成功率。由于第三方app本身的局限性,即使采用优化过的方法,第三方app还是不能够保证拦截的成功率。例如,如果有两个app都采用动态注册的方式,都设置其优先级为最高。那么其中一个就会被另一个拦截。

系统级拦截方案

拦截短、彩信的根本方法还是需要在系统层面来解决。需要在系统提供一个专用的Service(类似于ActivityManagerService、PackageManagerService),用于判断收到的短信是否需要拦截。接口如下: 

boolean needToBlockMsg(Intent intent);

系统在收到短信后,将短信内容组装到需要广播的Intent中。然后调用该接口判断是否需要拦截。如果需要拦截,则抛弃该短信,或者将其保存到特定的数据库中;如果不需要拦截,那么就照常发送广播。这样可以一劳永逸地解决短、彩信的拦截问题。

由于需要修改“/system/framework/framework.jar”之类的系统文件,第三方app是无法实现的,因此需要设备生产厂商的支持。

短信彩信拦截 该资源主要实现了短信以及彩信的拦截,并且让拦截后的短信和彩信存储在自己定义的数据库中,而且有短信的互动,也就是收发短信的功能,同事实现了彩信和短信的显示,不足之处在于接受彩信时,一定要开启数据流量,否则会报异常. 立即下载

相关推荐

安卓短信彩信相关相关-安卓拦截马360免杀.rar

安卓拦截马360免杀.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

彩信的拦截与发送

前段时间(已经过去两个月了....)公司让搞一下android彩信的拦截与发送,于是就在网上找了一些资料,开始研究它的实现过程。 PS:需要从系统源码中扣取部分文件,大概在30个左右,不知道能不能精简,没认真看过。这里我重点说一下彩信的拦截和解析,因为彩信解析方面的资料相对较少。发送的部分我会提供一下我的参考文章,并且可能会转载一下这篇文章,我就是通过这篇文章实现的彩信发送。 因为代码...

mmdev 501

安卓短信彩信相关相关-无法运行马上有短信.rar

(无法运行)马上有短信.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

浅谈短、信彩信的拦截

  关于Android平台上短、彩信的拦截,网上已经有不少介绍性的文章。那些文章大多是介绍具体的实现方法,其提供的方法并不一定能够成功拦截。今天我们就来详深入地介绍一下拦截短、彩信的内部原理,并分析一下拦截方法的优劣。 Android接收短、彩信的原理 正常的短信在到达手机后,会根据不同的制式(GSM、CDMA等)被解析并封装成SmsMessage对象。该对象会被SMSDispatcher...

iteye_2439的博客 792

安卓短信彩信相关相关-拦截短信.rar

拦截短信.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

MFC+Modbus-Tcp协议实现温湿度传感器采集

本文简单介绍MFC使用-Tcp通信实现系列MODBUSTCP型温湿度传感器采集数据。

zhigang_zhao的博客 2832

android拦截彩信,Android手机恶意彩信拦截系统的设计和实现

摘要:随着移动通信技术的快速发展,智能手机已逐渐普及,Android已成为第一大智能手机操作系统。彩信业务迅速发展,在智能手机用户中得到了全面推广,而很多不法分子利用彩信传播手机恶意软件,严重威胁用户的隐私、财产安全。本文发现了一种利用彩信的攻击方式,并针对这种攻击方式设计和实现了Android手机恶意彩信拦截系统。在彩信攻击方式中,恶意软件通过彩信附件传播。受害者的手机接收到恶意彩信后,附件中的...

weixin_32028965的博客 942

OC5021B 100V宽电压输入 LED车灯/大功率照明 DC降压型恒流驱动器

适用于LED大功率汽车大灯/大功率照明 OC5021B 100V宽电压输入 5A电流设计 DC-DC降压型恒流驱动IC

Handsome63841990的博客 2420

短彩信限制功能实现

1、实现机制 在d

成功不必在我,而功力必不唐捐! 889

STM32硬件SPI驱动W5500以太网模块全流程(附避坑指南)

本文详细介绍了STM32硬件SPI驱动W5500以太网模块的全流程,包括硬件架构设计、SPI接口选型、官方驱动移植、网络协议栈配置与优化等关键步骤。通过实战案例和性能对比数据,帮助开发者快速实现稳定高效的网络连接,特别提供了常见问题排查指南和性能调优技巧。

weixin_29194693的博客 269

软考高级-系统架构设计师 知识点整理 (一篇就够了 建议收藏)

软考高级-系统架构设计师知识点整理---十万字总结,助你通过高级

片言可决讼,半纸能缚龙 7356

高通平台Android 7.0屏蔽彩信发送功能

android\packages\providers\TelephonyProvider\AndroidManifest.xml 替换该文件中关于 sms, mms, sms-mms 的 android:readPermission="android.permission.READ_SMS 为 android:readPermission="android.permission.CANNT_R...

变 862

Thor芯片部署

英伟达Jetson Thor芯片性能分析与应用现状 摘要:英伟达最新发布的Jetson Thor芯片基于Blackwell架构,官方宣称AI算力达2070TFLOPS(FP4),较前代Orin提升7.5倍,配备14核Arm CPU和128GB内存。然而实际量产版算力缩水至700TOPS,且因4nm制程良率问题多次延期至2025-2026年交付。该芯片支持FP4/FP8量化、Transformer引擎等先进特性,适用于自动驾驶、机器人等边缘AI场景,但受供应链限制,国内厂商倾向自研方案。开发者可通过JetPa

xiaomu_347的博客 435

华为手机怎么屏蔽彩信广告?这两个方法都好

当我们收到的彩信广告全是推销时,内心是非常拒绝的,如果一天收到好几条,天天都能收到,就会想着马上要把它屏蔽,那华为手机怎么屏蔽彩信广告呢?华为手机可以使用自带软件“手机管家”,设置拦截短信,也可以在短信里面进行设置,下面小编就通过图文结合的方式跟大家讲讲华为手机如何屏蔽彩信广告 1、在手机中找到“手机管家”APP,点击进入 2、找到骚扰拦截,点击进入。 3、进入后显示如下图,找到拦截规则,点击进入。 4、进入后可以看到有电话拦截规则和短信拦截规则,点击短信拦截规则或者黑名单。 5、点

cr6868的博客 9378

假期搞定!2026国社科申报AI全攻略指南:从选题到创新,7大核心要点手把手教你!

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。你的任务是:用高度凝练的方式说明在(某一明确国家战略 / 政策方向,如:中国式现代化、共同富裕、基层治理现代化、数字中国、文化强国、国家安全等)背景下,我究竟要研究一个什么“具体而可操作的问题”。

智能AI让学术科研更容易 625

《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整

本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。

LuckyHanMo的博客 492

记一次短信/彩信拦截 还有锁屏打开页面

1.首先做了一个功能点 就是锁屏情况下弹出页面这个关键点就两行代码 this.getWindow().addFlags( WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); Window w...

qq_34420120的博客 443

基于DynamicHead的YOLOv8四头版本改进:面向复杂场景的多目标检测优化【YOLOv8】

YOLOv8的检测头是通过不同尺度的特征层输出检测结果。这些检测头通常包括三个:用于大物体、中等物体和小物体的检测。然而,这种单一结构可能会在复杂场景下失去针对性和灵活性,特别是当多个目标之间差异较大时。为了进一步提升模型在特定目标上的检测性能,DynamicHead的引入为我们提供了一个多检测头的优化方案。本文提出了一种基于DynamicHead的四头版本YOLOv8改进方案,以解决复杂场景下多目标检测的挑战。通过引入四个独立检测头,分别针对不同目标特征进行优化,实现了更灵活的检测结构。

博客 1718

彩信拦截功能的学习

  彩信拦截功能的学习: http://www.itivy.com/android/archive/2012/3/20/634678704212470654.html   http://www.2cto.com/kf/201204/127414.html   http://blog.youkuaiyun.com/agods/article/details/7456379   http://...

justwyy的专栏 280

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

彩信拦截

如何拦截到彩信并同时读取彩信的内容?之前一直不知怎么办。经过好几天的摸索、借鉴,总算搞明白了。发到网上,与大家分享! 简单说一下思路: 1、 注册一个广播,优先值为1000(这样才能先于系统收到广播),并在清单中申明接收发送短信及彩信的权限。在注册的广播类中申明接收彩信等的ACTION及DATA。哦,还有访问Internet及向sdcard读写的权限。(详情见附件源码清单) 2、 在广播类中

lyglostangel的专栏 1958

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android 收发彩信(MMS)

前段时间(已经过去两个月了....)公司让搞一下android彩信的拦截与发送,于是就在网上找了一些资料,开始研究它的实现过程。 PS:需要从系统源码中扣取部分文件,大概在30个左右,不知道能不能精简,没认真看过。这里我重点说一下彩信的拦截和解析,因为彩信解析方面的资料相对较少。发送的部分我会提供一下我的参考文章,并且可能会转载一下这篇文章,我就是通过这篇文章实现的彩信发送。 源码下载地址:h

Gabriel的专栏 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

拦截推送信息_信息便捷时代,彩信竟成垃圾短信帮凶

自从网贷广告遍布各个媒体宣传位置,宣传的手段也是五花八门。其中部分新闻媒体软件还是可以允许客户自行取消推送。这种用户可以主动防御、抵御的模式。相信很多人都能接受。但是,今天咱说道说道运营商平台。还记得05年左右上大学,想要个女孩的照片,或者想给朋友发个风景。都是通过彩信,这个承载着回忆的平台。在后来各种社交软件兴起之后,慢慢的,已经淡出用户的视野。可是,就是这样一个通信方式,在社交软件如此高使用率...

weixin_34569101的博客 862

Android 彩信拦截

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33728708的博客 606
上一篇: 系统安全原则:最小特权
下一篇: SEAndroid之IPC
鲶鱼团队
博客等级 码龄14年 36粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值