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

Android之电话拦截 今天来和大家一起分享一下我最近写的一个Demo,类似于黑名单访问,也就是我们俗称的电话拦截                       首先我们需要两个aidl文件                       第一个:NeighboringCellInfo.aidl package android.telephony; parcelable NeighboringCellInfo;    阅读详情

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

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

一、原理分析

1、Android来电流程

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

i)上图方框中黄色箭头所示路线。通过PhoneNotifier->TelephonyRegistry将PHONE_STATE_CHANGED通知上去。第三方应用通过SDK API注册listener(PhoneStateListener),监听framework层TelephonyRegistry发出的PHONE_STATE_CHANGED通知。若call state从CALL_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流程的底层“静默”进行拦截,时机早,优先级高,上层用户无法感知拦截过程。并且若手机上有多个安全软件同时存在时,我们的拦截可以杜绝其他安全软件检测到来电,防止了手机上多个安全软件的冲突问题。

 

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

Android中电话拦截器案例 实验要求:实现拦截保存到手机中的号码 1.在main-activity布局文件中代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/acti 阅读详情

相关推荐

Android拦截电话与短信(电话拒接/短信拒收)

前段时间领导说了这样一个需求:对特定的号码电话进行拦截、短信拒收,在百度了查阅了很多的资料,结果有点不尽人意。特别是AIDL通信接口废了老大劲。直接上过程 创建aidl通信接口直接在main目录新建aldl类型文件ITelephony即可,自动生成包名等等如图所示此处有坑:网上基本上都是让这样写 interface ITelephony { boolean endCall(......

weixin_37587365的博客 6222

安卓来电归属地_原生 Android 也能远离骚扰电话:开源应用来电信息

现在看到一个陌生的电话打来,是不是都已经没有接听的冲动了?国内各种各样符合国情定制化的安卓手机系统,已经可以拦截众多烦人的骚扰电话。但无论是原生 Android 党还是在国外购机的回国用户,都会发现没有骚扰拦截的手机太可怕了,今天荔枝君推荐的这款 Android 开源应用: 「来电信息」就可以解决这个烦恼。应用链接:http://t.cn/Ai9qyaFK信息安全很重要这款开源应用首先...

weixin_39653733的博客 2527

android 12.0 屏蔽所有电话来电功能

在12.0定制化开发中,最近项目需要开发需求是屏蔽来电功能,需要根据标志位 屏蔽一切来电功能 就是去掉通话功能,这就需要从通话流程进行分析,然后实现功能 ,而我们知道所有的来电去掉都是CallManager.java来负责监听管理的。

安卓兼职framework和app工程师的博客 1612

Android 代码实现来电拦截

为了更好地理解这个Demo,我先向大家介绍一下需求与功能。 需求: 每天都会有很多无聊的电话,比如推销商品等,占用我们大量时间不说,有时候还会打乱我们的思路,扰乱我们的正常生活。所以实现一个对某些号码(比如陌生号码,指定号码/黑名单等)进行拦截以避免受到骚扰,是很有现实用途的。 为了避免程序过分复杂,造成不易学习的麻烦我在这里只实现“如果来电号码没在联系人中,则进行挂断,并存入xml文件(S...

weixin_34387468的博客 547

android 9.0 10.0拦截所有陌生来电防骚扰功能

在定制化开发中,客户需要开发拦截所有未知来电(陌生电话)防骚扰功能 所有就需要从拦截黑名单电话入手 在Telecomm 模块中 BlockChecker.getBlockStatus()是判断是否是黑名单的 而他被BlockCheckerAdapter.getBlockStatus()调用,AsyncBlockCheckFilter 又调用 BlockCheckerAdapter.getBlockStatus() 根据返回值来判断 是否是黑名单需要拦截来电 所以分析AsyncBlockCheckFilter

安卓兼职framework和app工程师的博客 4777

安卓电话自动化:实现自动接听与挂断功能

在当今智能手机的日常使用中,自动接听和挂断电话已成为一项需求,尤其是在特定场景中,如电话会议、重要任务执行期间,用户希望手机能够自动处理来电。安卓自动接电话和自动挂电话功能的实现,不仅仅是为了提升用户体验,更是一种智能与便捷性的体现。通过编程实现这一功能,可以大大减少用户在特定环境下的操作负担,同时也能在一定程度上帮助用户管理自己的电话通讯。实现这一功能的基础是安卓系统的电话管理API,它允许开发者编写代码来响应电话事件,如来电、去电和通话状态变化等。

weixin_42591908的博客 1867

android原生屏蔽电话,更人性化 Android P获得原生屏蔽未知来电功能

原标题:更人性化 Android P获得原生屏蔽未知来电功能【PConline资讯】骚扰电话让人十分头痛,不过得益于各种拦截数据库的完善,基本上手机来电时都能自动识别来电是推销电话还是诈骗电话。 骚扰拦截功能在国产手机中尤为常见,毕竟复杂的环境因素摆在这里,各大手机厂商定制的Android操作系统 都原生集成了骚扰识别及拦截功能。现据报道,谷歌今年发布的Android P系统也将原生支持骚扰电话识...

weixin_29696999的博客 716

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列)

超过4.2万个AOI(地理围栏),深圳市2025年2月15日更新的全类别AOI,矢量图层(全国22个超大特大城市AOI更新系列)

1073

Android手机安全软件之设置电话拦截返回音浅析

Android手机安全软件之设置电话拦截返回音浅析 相信很多Android手机用户都用过手机安全软件的“电话拦截”功能,不管您用的是360安全卫士、腾讯手机管家,还是金山毒霸…,它们的共同特点就是您在设置来电拦截黑名单或开启/关闭来电等待时,界面并不友好(如下图所示),比如:会有拨号界面弹出再消失,或者手机会拨打一个号码,需要用户手动挂断或直到连接自动挂断。 第三方应用(即使具有root权

android_squad的专栏 2865

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 467

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

Android拦截陌生号码,安卓手机应该如何设置拦截陌生号码

打开“手机管家”,“骚扰拦截”,点击“设置”,开启骚扰拦截,点击“拦截规则”,开启需要拦截的类型即可、打开手机2113,点击【电话】标志。52612、点击4102右下角‘三个点’标1653志,在点击【内骚扰拦截】。3、“容骚扰拦截”面板中,选择【电话】面板,再点击右上角“设置”标志。4、“拦截规则”面板中,【拦截未知隐藏号码】、【拦截所有陌生人】,都勾选上。设置完成。本回答被网友采纳www.how...

weixin_33392336的博客 9179

开源DIY | 打造会“听”会“走”的智能移动垃圾桶

本文详细介绍了如何利用Arduino和超声波传感器打造一款会“听”会“走”的智能移动垃圾桶。通过开源硬件和简单编程,实现声控移动和自动避障功能,适合创客爱好者和家庭DIY。项目成本控制在200元内,涵盖硬件搭建、电路连接和核心功能实现,是入门级机器人制作的理想选择。

weixin_33670713的博客 232

android 来电拒接_安卓手机怎么设置拦截陌生电话

智能手机对于很多人来说诸多的功能都是摆设,而关于手机的黑名单或者是拦截设置我们就必须的了解,否则就不知道如何的防护陌生的骚扰电话。那么安卓手机怎么设置拦截陌生电话呢?佰佰安全网小编来教大家怎么操作吧。一、通过手机设置防骚扰如果经常有陌生电话打进来的时候,经常是一个号码的时候可以在手机找到来电拒接,把骚扰你的手机号码设置在拒接电话名单里面,这样骚扰电话就打不进来啦。1、以安卓5.0为例,在手机程序里...

weixin_31088435的博客 9309

(赛事-2022)[re:Invent 2018]-002:通过分析log多次迭代优化奖励函数后- 最快7.6s / 圈

Deepracer training 流程

Rainbow 4715

16、树莓派Pico W:蓝牙与Wi-Fi应用指南

本文介绍了树莓派Pico W在蓝牙与Wi-Fi通信方面的应用,涵盖蓝牙配对原理、使用HC-06模块实现手机远程控制LED和传输内部温度,以及通过Wi-Fi进行网络连接、扫描和UDP协议下的设备控制。文章包含详细电路连接、代码实现与测试步骤,并提供拓展建议、常见问题解决方法及开发注意事项,帮助读者快速掌握基于Pico W的无线通信项目开发,适用于物联网入门与实践场景。

sun99的博客 291

Android 电话和短信拦截

之前用的手机上没有黑名单功能,下载第三方的软件又觉得不安全,所以自己写了一个简单版本的凑合用,在这里记录一下。 因为之前有做过短信的拦截相关功能,但是电话拦截接触也不是很多,所以并没有做过详细的测试(自己在两款手机上跑过,都是ok的),在做这个功能的时候也参考过几篇博客,但是具体地址没记住。 一、电话拦截 电话拦截的实现其实就是由电话的监听和电话的挂断两个部分组成,其中电话监

jeden的专栏 5099

【推荐100个unity插件】基于关节物理控制的自行车、电动车、摩托车模拟解决方案——Simple Bicycle Physics

摘要 "简易自行车物理"是Unity的自行车模拟资源包,支持Animation Rigging,实现基于关节物理的自行车控制。兼容所有平台和渲染管线,包含预制体、材质、脚本等资源。核心脚本Bicycle Controller管理自行车物理属性,支持自定义角色设置和移动端控制。安装后,用户可快速配置骑行场景,调整转向、速度、重心等参数,并支持地面贴合、兔跳等功能。适用于开发各类自行车模拟游戏和应用。 (字数:149)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1366

Android安卓电话拦截及短信过滤

package com.focus.manager; import java.lang.reflect.Method; import Android .app.Activity; import Android .content.BroadcastReceiver; import Android .content.Context; import Android .c

u014593566的专栏 2116

紫光展锐面试——FPGA/IC设计面试面经案例总结

自我介绍;研究生的主要研究方向是什么?为什么想要应聘数字芯片相关的工作?简单介绍下数字IC设计流程。逻辑综合主要做什么?你有实际做过逻辑综合工作吗?你了解SS corner和FF corner吗?综合时应该使用哪个corner?综合时需要考虑hold吗?为什么?提高时钟频率对setup和hold有什么影响?为什么?hvt、rvt/svt、lvt有什么区别?c40、c50是指什么概念?有什么区别?你对EDA工具有过了解吗?

FPGA/MATLAB学习教程/源码/项目合作开发 1565

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android拦截外拨电话

通过上述步骤,我们可以在Android应用中实现对外拨电话的监听和拦截。在Android中,拦截外拨电话是一种常见的需求,比如用于实现电话过滤、记录通话日志等功能。在Android开发中,有时我们需要实现对外拨电话的监听或拦截功能,比如为了实现特定的电话管理应用或者出于安全考虑。当用户尝试拨打一个电话时,系统会发出这个广播,你可以在接收器中处理这个事件,比如取消拨号或者记录拨号信息。​​等关键步骤,同时强调了实现过程中需要注意的问题。通过以上步骤,你就可以在Android应用中实现对外拨电话的拦截功能。

牛肉胡辣汤 972

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

设置电话拦截返回音浅析

相信很多Android手机用户都用过手机安全软件的“电话拦截”功能,不管您用的是360安全卫士、腾讯手机管家,还是金山毒霸…,它们的共同特点就是您在设置来电拦截黑名单或开启/关闭来电等待时,界面并不友好(如下图所示),比如:会有拨号界面弹出再消失,或者手机会拨打一个号码,需要用户手动挂断或直到连接自动挂断。   第三方应用(即使具有root权限)在完成这两个功能时,无法避免拨号界面的出现...

iteye_2439的博客 4537

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android拦截所有短信源码,Android手机防短信电话骚扰宝典 手机也会思考

随着Android支持机型的日益增多,使用Android手机的用户也越来越多了,大触摸屏+可媲美上网本的处理能力,让新入手Android机的用户惊喜不已。不过,再智能的手机也拦不住中国特色的垃圾短信/骚扰电话/响一声电话等等,今天我们就来介绍一款Android平台上防垃圾短信/骚扰电话的利器---360手机卫士Android版。生活中,我们经常会遇到这样的情况:凌晨,加班多时的你刚刚进入梦乡,“呤...

weixin_34945060的博客 791

android 短信和电话拦截

短信拦截实现    手机状态发生改变时,系统会发生各种广播。如电池信息、收到短信、接听电话等灯。如果要拦截手机的短信,只需要接受系统短信广播即可。短信广播属于有序广播,可以传递到下一个广接收者处理。如果需要屏蔽系统接收短信,只需要中断广播的传输。 短信广播  android.provider.Telephony.SMS_RECEIVED 1. 定义广播接收器

qq1761310972 3345
上一篇: Android 中的那些权限
下一篇: Android手机安全软件之设置电话拦截返回音浅析
鲶鱼团队
博客等级 码龄14年 36粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值