首页 > 范文大全 > 正文

基于Android的手机防盗软件设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Android的手机防盗软件设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:随着Android应用环境越来越广泛,软件的复杂性不断增强,Android的安全性被提升到一个新的高度。而在Android系统的应用发展中,手机防盗也是一种重要的安全技术。文章针对手机被盗后个人信息遗失带来的安全隐患,提出并设计了一种基于android平台下的手机防盗软件。该软件利用Android的系统服务,并通过指令控制实现了远程定位追踪、远程控制和销毁数据的功能。在模拟器和真机的环境下进行实验测试的结果表明,该软件设计有效合理,能达到预期效果,具有较好的实用价值。

关键词:Android;手机防盗;系统服务;远程控制

中图分类号:TP393 文献标识码:A 文章编号:2095-1302(2016)01-00-02

0 引 言

近几年,随着移动互联网技术的高速发展,Android系统几乎占据了智能手机操作系统的半壁江山。而基于Android平台下的各种应用软件也同样是迅猛发展,几乎渗透到人们生活中的方方面面,在给人们带来极大便捷的同时又将手机安全问题推向了风口浪尖。在智能手机时代,手机上储存的不仅仅是通讯录和短信,更多的是个人隐私,比如说照片、银行卡、支付宝等。如果手机丢失,那不仅影响我们的生活工作更可能影响到我们的家人。所以手机安全问题不容忽视。

针对手机安全问题,本文提出并设计了一种基于Android的手机防盗软件。该软件可以通过指令控制远程定位并追踪被盗手机,同时远程控制手机并远程销毁数据,保证用户的数据安全。

1 系统整体结构设计

手机防盗系统是以手机作为唯一的载体,而远程控制指令则依赖于短信业务。如图1所示,该系统可分为两层,第一层为用户层,第二层为系统层。用户层使用Android的轻量级数据库Sqlite来保存用户注册的信息和安全号码。为尊重用户隐私,软件会让用户选择是否开启保护。第二层则包括开机监听,远程定位报警,远程控制,远程信息销毁四个部分。这四个部分分别通过监听系统开机广播,系统短信广播,利用系统位置服务和系统硬件服务分别来实现各自的主要功能。通过对整个系统的分析,明确各个功能模块与系统之间的关系。

2 系统流程

手机防盗系统流程图如图2所示。用户第一次安装完成防盗软件之后,需要进行用户注册,而数据保存在Android系统中的轻量级数据库Sqlite中。在注册完成之后,需要从手机联系人目录中选择或者手动输入一个安全号码作为防盗指令的发送者。如果用户选择了开启保护,那么系统会将当前手机的SIM卡串号保存在Sqlite中,并开始监听系统开机广播。因此,用户的每次开机行为都会触发重新检查当前手机的SIM卡信息的事件,如果发现SIM卡信息发生变更,则会向之前设定的安全号码发送危险报警短信。

图1 系统整体结构设计

收到报警短信的手机可以迅速发送相应的短信指令至被盗手机,被盗手机则会监听并解析所有短信内容,如果解析到的短信内容与防盗指令一致,那么被盗手机则会按照指令完成下一步操作。

3 系统实现

3.1 用户模块

用户模块主要有三个部分组成,分别是注册、安全号码选择以及是否开启防护。用户注册是将信息保存在Android系统下的轻量级数据库Sqlite中,而安全号码的选择则有两种,一种是通过ContentProvider获得系统下的电话录进行选择,另外一种是通过EditText手动输入。安全号码选择是防盗系统至关重要的一个环节,因为所有的指令都是通过该安全号码发出,因此如果用户没有设定安全号码将无法进行下一步操作。如果用户不想自己的短信被拦截解析,用户可以关闭防护功能。

图2 手机防盗系统流程图

获取手机联系人的关键代码如下:

Uri uri=Uri.parse(“content://” + ContactsContract.

AUTHORITY+”/raw_contacts/”+id+”/data”);

Cursor cursor=resolver.query(uri2,newString[]

{“data1”,”mimetype”}, null, null, null);

3.2 系统防护模块

系统防护模块主要包含开机监听,短信拦截解析,远程定位报警,远程锁定并清空数据四个部分。

开机监听的实现是因为此模块中注册了一个广播接受者,广播接受者订阅了Android系统的开机广播,所以每次手机开机时模块都会被激活。激活后再通过系统服务TelephoneManager检测本次开机中SIM卡的信息。短信拦截解析则同样是订阅了系统的短信广播,并设置为最高优先级。在获得短信之后通过解析短信内容,查看当前信息是否为控制指令。如果是控制指令那么中断广播,并执行相应的指令。获取SIM卡信息关键代码如下:

TelephonyManager m=context.getSystem

Service(Context.TELEPHONY_SERVICE)

String s =m.getSimSerialNumber();

远程定位报警模块则是利用Android系统服务LocationManager和MediaPlayer的组合实现的。当被盗手机接收到定位指令后,只要移动距离超过100 m,则自动通过短信将被盗的手机位置信息发送至安全号码。报警则会以最大音量循环播放手机中的音乐。远程锁定并清空数据则需要注册系统管理员权限,在获得root权限之后才可以通过DevicePolicyManager对手机进行锁屏或清除数据等控制。定位和锁定的关键代码如下:

LocationManager m=context.getSyste

mService(Context.LOCATION_SERVICE)

m.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,newmyLocationListener(context));//获得位置信息

DevicePolicyManager m=context.getSystem

Service(Context.DEVICE_POLICY_SERVICE);

dpm.resetPassword(“1234”, 0);//锁屏密码

4 系统测试

为了测试系统的可靠性,分别搭建了真实手机环境和模拟器下环境。

真机环境即为两部配置SIM卡的手机A,B,其中A手机装有此防盗软件,并将安全号码设置为B。当A进行更换SIM操作并重启手机后,B收到了A发来的手机被盗提示短信。而A通过短信指令控制B手机,也能达到预期效果。

模拟器环境则是在PC上开启Android模拟器,其中一台模拟器C安装了防盗软件,并且该模拟器开机后未设定过锁屏效果,如图3所示。另一台模拟器D被设定为安全号码,D可以通过短信发送指令至C,如图4所示。锁屏指令至C后,经过系统解析处理C被锁屏,并设定了锁屏密码,如图5所示。

5 结 语

本文介绍了手机防盗软件的系统架构以及流程,详细的分析了系统中的各个模块实现方法并给出关键点代码。最后在真实环境和模拟环境中测试,测试结果也达到了预期效果。结果表明,该软件的设计对提高手机的安全性,保护个人隐私等方面具有非常重要的意义。但是,我们也应该清楚的认识到系统目前还有很多漏洞,比如手机如果被刷机或者软件被卸载,那么防盗系统将不能在发挥其作用。以上不足也将是以后继续研究的方向。

参考文献

[1]姚昱F,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008(11):110-112.

[2]马建红,姬莉霞,卫权岗.基于Android平台的移动个人助手设计与实现[J].现代电子技术,2012,35(2):24-26.

[3] 韩超,梁泉.Android系统原理及开发要点详解[M].北京:电子工业出版社,2010.

[4] 段君,朱学森.基于Android智能手机来电防火墙的研究与设计[J].内蒙古科技大学学报,2012,31(4):356-359.

[5]李恺,刘怡铭.智能手机的病毒风险浅析[J].信息安全与通信保密, 2009(8):162-164.

[6]陈晓芳.几种常见软件可靠性测试方法综述及应用对比[J].科技信息,2007(17):6-9.