拨号拦截
当用户拨出一个号码时,系统会发出一条广播:android.intent.action.NEW_OUTGOING_CALL
我们通过继承BroadcastReceiver 实现拨出电话的广播接收器OutgoingCallReceiver,使它只响应拨出电话的广播。接收到广播后先获取用户呼叫的号码,然后判断号码的类型,若为开启Policy Manager 设置界面的指令,则启动Policy Manager
——基于Android的手机隐私保护技术及实现
?
1)对于系统Framework 层的修改和扩展主要是集中在PackageManagerService 类的checkUidPermission 方法中[7,14],在权限检测成功的分支上调用自定义的一个方法,启动应用行为监控模块,调用日志输出模块输出应用行为,实现应用行为监控。
2)利用系统提供的API 来实现对特定权限对应行为的监控,主要包括两个权限,分别是网络访问以及内存卡读写权限。通过实现一个Android上的应用来实现对这两个权限的监控,也采用相同的日志输出模块进行处理,这样就可以将两种检测模式下检测到的行为信息整合到一
起有利于以后的分析。对于网络访问情况的监控利用系统提供的TrafficStats 类来实现。Google 在Android 2.3 之后对流量监控进行了很好的封装,基于系统提供的接口可以对系统所有应用的网络访问情况进行很好的监控。
TrafficStats 提供了多种接口实现对网络流量的监控,包括发送和接收的流量以及WiFi 情况下、Mobile 情况下的流量等,清晰地监控到应用访问网络的行为[19,20]。
对于内存卡的读写监控是基于系统提供的FileObverser类实现。它是利用Linux 系统的Notify 机制完成的,可以实现对内存卡中文件或者文件夹的打开、创建、移动和删除等操作实时的监控。同时该应用还包含对日志输出模块的交互操作,来实现对日志模块的控制。
?
——基于权限管理的Android应用行为检测
?