Android手机安全软件之电话拦截功能浅析

本文深入分析了Android手机安全软件电话拦截功能的原理,指出第三方应用级方案的局限性,提出从系统底层进行拦截的新方案,旨在提高拦截效率和用户体验。详细介绍了在PhoneBase和PhoneNotifier中的拦截实现,以及如何避免多款安全软件间的冲突。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android手机安全软件之电话拦截功能浅析

目前中国市场,骚扰电话大量的充斥手机用户的生活,因此手机安全软件的电话拦截功能受到广泛关注和使用。但第三方应用级电话拦截功能的效果并不理想,比如拦截电话时已经响了一声、或出现短暂的来电界面,多款安全软件同时存在时可能发生冲突等,其本质原因是目前的第三方应用无法及时的、快速的判断出来电事件,拦截不及时造成的。现在@安卓安全小分队就分析其中的原理,并给出我们自己的解决方案。

一、原理分析

1Android来电流程

上图中间框图中给出的是Android系统来电流程。方框的上部分(包括蓝色方框)是App层,下部分(粉色方框)为framework层。当有incoming call发生时,RIL层会将incoming call事件向上报给CallTracker。在CallTracker中,incoming call事件将会通过两条路向上层走。

i)上图方框中黄色箭头所示路线。通过PhoneNotifier->TelephonyRegistryPHONE_STATE_CHANGED通知上去。第三方应用通过SDK API注册listenerPhoneStateListener),监听frameworkTelephonyRegistry发出的PHONE_STATE_CHANGED通知。若call stateCALL_STATE_IDLE变成CALL_STATE_RINGING,则说明有电话打入,且打入的电话号码会包含在广播出来的intent中。

第三方安全软件的拦截功能就是通过这一原理检测到有来电以及该来电的号码(其拦截点为图中灰色方框所示)。若号码为黑名单号码,则将来电hangup

ii)上图方框中红色箭头所示路线。通过PhoneBase->CallManager->CallNotifier->InCallScreen,即从framework->PhoneApp,将NewRingingConnection通知上去。

 

2、第三方应用级方案缺点

i) 黑名单打入电话时,可能会有来电界面。

这是由于第三方应用只能通过左边黄色流程的PHONE_STATE_CHANGED来判断是否有来电并拦截,其拦截点比较晚,可能会出现右边红色路线已经走到InCallScreen,即来电界面已出现,左边的第三方应用才将电话hangup,用户体验不好。

ii) 手机上同时存在多款安全软件时可能存在冲突。

若各个安全软件的黑名单各不相同时,若一个号码N是安全软件A的黑名单,但不是安全软件B的黑名单。由于拦截时机晚,当号码N打入时,B也会检测到有来电且无需拦截,就有可能做一系列的操作而导致此时N有可能会被接通。因此,多款安全软件的情况下,不能杜绝每个黑名单中的号码一定会被拦截掉。

 

二、优化和改进

针对第三方应用级方案拦截优先级低、时间延迟严重的情况,我们可以从系统入手,通过在底层拦截来提前拦截时间、提高拦截优先级,使用户根本无法感知拦截过程,在手机屏幕上不会有任何变化。

我们从底层对两条路线都做“拦截”(如上图左右两个绿色方框所示):

1、针对上图右边红色箭头所示流程,在底层PhoneBase中进行hook,每当有来电发生时,通知到我们自己的service(如上图右边绿色service方框所示),PhoneBase根据service的返回结果进行处理。具体如下:

1.1) framework中添加一个service(上图右边绿色Service绿色方框所示),并授予它root权限。该service起来之后,等待client端的请求。并对client端暴露了一套SDK API接口(上图右边Security SDK API绿色方框所示):

接口:ITelephonyListener

boolean onIncomingCall(String phoneNumber, int simId);// callback

boolean registerTelephonyListener(ITelephonyListener listener, int events)// 注册监听器

1.2) app实现并注册电话监听器,当来电发生时,PhoneBase通知监听器,监听器返回是否需要拦截,PhoneBase根据返回值处理。

2、针对上图左边黄色所示流程,在PhoneNotifier中进行拦截,当有黑名单来电发生时根据一定的规则,阻止phone state向上通知。

 

根据以上分析可知,我们的拦截在incoming call流程的底层“静默”进行拦截,时机早,优先级高,上层用户无法感知拦截过程。并且若手机上有多个安全软件同时存在时,我们的拦截可以杜绝其他安全软件检测到来电,防止了手机上多个安全软件的冲突问题。

 

新浪微博 @安卓安全小分队

数据集介绍:野生动物目标检测数据集 一、基础信息 数据集名称:野生动物目标检测数据集 图片数量: - 训练集:4,181张图片 - 验证集:1,212张图片 - 测试集:610张图片 总计:6,003张航拍及自然场景图片 分类类别: 涵盖23类野生动物,包括: - 濒危物种(北极熊、犀牛、熊猫) - 大型哺乳动物(大象、河马、长颈鹿) - 猛禽类(鹰、鹦鹉、企鹅) - 食肉动物(狮子、猎豹、美洲豹) - 草食动物(斑马、鹿、山羊) 标注格式: YOLO格式标注,包含边界框坐标与类别标签,适配主流目标检测框架。 数据特性: 航拍视角与地面视角相结合,包含动物群体活动和个体行为场景。 二、适用场景 生态保护监测系统: 构建野生动物种群识别系统,支持自然保护区自动监测动物迁徙和栖息地活动。 智能林业管理: 集成至森林巡护无人机系统,实时检测濒危物种并预警盗猎行为。 动物行为研究: 为科研机构提供标注数据支撑,辅助研究动物种群分布与行为特征。 自然纪录片制作: AI预处理工具开发,快速定位视频素材中的特定物种片段。 教育科普应用: 用于野生动物识别教育软件,支持互动式物种学习功能开发。 三、数据集优势 物种覆盖全面: 包含非洲草原系、极地系、森林系等23类特色动物,特别涵盖10种IUCN红色名录物种。 多场景适配: 整合航拍与地面视角数据,支持开发不同观测高度的检测模型。 标注质量可靠: 经动物学专家校验,确保复杂场景(群体/遮挡)下的标注准确性。 模型兼容性强: 原生YOLO格式可直接应用于YOLOv5/v7/v8等系列模型训练。 生态研究价值: 特别包含熊科动物(棕熊/北极熊/熊猫)细分类别,支持濒危物种保护研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值