Android短信广播监听调研

参考文章:一、【android安全问题(五) 抢先拦截短信】;二android安全问题(四) 抢先开机启动】。

网上已有结论:

优先级

假设我们广播优先级别都设成:2147483647(注:最大int形整数)

首先动态注册优先级别最高

其次静态注册

在动态注册中

最早动态注册优先级别最高


测试前提:动、静态注册,优先级均设置为最高(2147483647)。注册接收开机广播,在接到开机广播时动态注册短信接收广播。程序第一次执行时动态注册短信接收广播。同时,在AndroidManifest.xml里静态注册短信接收广播。


测试程序:同一个程序,命名为不同的包名。分别为程序A:com.android.smsblock、B:com.zandroid.smsblock。


测试机一情况:【G14 miui】
1、安装完程序,未重启时,谁先装谁先收到广播。【验证相同优先级情况下,谁先动态注册,谁优先级高。多次注册,以第一次注册为准】。
2、安装完重启:依然是重启前谁先安装,谁先拦截到短信。

注:G14上装有360手机卫士和腾讯手机管家。两个程序均将测试号设置为黑名单。【360手机卫士未开机启动,对我们的测试全无影响;腾讯手机管家有开机启动,由于它先安装,所以一开始会拦截测试短信,但是强制关闭一次后,再打开腾讯手机管家,此时相当于它比我们的程序后安装了,于是也不再影响后续测试。】

测试机二情况:【HTC desire HD 原生系统】
1、同一。
2、手机重启后,不管谁先安装,B先收到广播。

包名好像没有什么影响,这一点跟【android安全问题(四) 抢先开机启动】说的好像不太一样。

结论:手机重启后,接收开机广播的顺序,不同手机情况似乎是不一样的。开机广播接收顺序的不一样,导致重启后动态注册短信监听广播的顺序不一样,导致短信广播接收优先级的难以确定。。。

测试Demo:http://download.csdn.net/detail/viviwen123/5509327


PS:后来发现,之前是把360的开机启动给禁止了,解除禁止之后,不管什么情况,手机重启后,360都能把测试短信拦截掉。

反编译360,发现它在开机注册短信接收广播时并不是开启服务进行注册的,而是通过一个实例化一个继承自Application的类,在onCreate里进行注册的。http://www.linuxidc.com/Linux/2012-05/59818.htm以及http://blog.csdn.net/imdxt1986/article/details/8803300讲解了如何使用Application。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值