【Android源码 栏目提醒】:网学会员Android源码 为您提供智能手机系统中文件 Android 实时监控的研究与实现 - 中学课件参考,解决您在智能手机系统中文件 Android 实时监控的研究与实现 - 中学课件学习中工作中的难题,参考学习。
第9卷 第7期 2009年4月09721716205 科 学 技 术 与 工 程ScienceTechnologyandEngineering Vol19 No17 Apr.2009Ζ 2009 Sci1Tech1Engng1
Android智能手机系统中文件实时监控的研究与实现温 敏 艾丽蓉3 王志国西北工业大学
计算机学院西安710129摘 要 保证文件的安全是保护系统安全的一个重点通过文件监控来保证数据的完整性是保护系统安全和灾情评估的基础。
通过对
Android智能手机操作系统的研究和分析提出了在
Android系统下采用基于文件信息节点的监控机制实现对文件的实时监控并详细的描述了在
Android平台下实现的关键数据结构、实现细节以及实验测试结果。
关键词 文件监控
Android 智能手机中图法分类号 TN929.5 文献标志码 B2008年11月24日收到陕西省自然科学基础研究计划项目2007F45、西安市科技创新支撑计划项目YF07019资助第一作者简介:温 敏1985—男硕士研究生研究方向:智能手机的安全防护。
3通信作者简介:艾丽蓉1970—女副教授研究方向:软件安全信息安全与智能处理。
随着手机技术的不断发展一方面手机功能不断增强向智能方向发展手机与个人电脑之间的界限越来越模糊许多用户将自己的私密信息存放在手机中这些信息一旦泄露或损坏对手机用户造成的损失将无法估量另一方面随着智能手机的普及针对手机的恶意软件也越来越多这些恶意软件包括蠕虫、木马、间谍
软件及其他病毒等随着智能手机在全球范围内销量的急剧增加恶意软件大规模扩散的危险也越来越严重给手机上用户的信息安全带来了极大的威胁。
对于一个安全的计算系统而言保证其文件的安全是保护系统安全的一个重点对文件实施监控对于从文件管理器到安全工具的各种应用程序都是必要的也是保护系统安全乃至于以后的灾情评估的基础因此需要对文件的实时监控技术进行分析和研究也就是通过文件监控来保证数据的完整性1。
针对当前智能手机操作系统多种多样本文采用了
Android手机系统通过对
Android智能手机操作系统的研究在此基础上描述了一套对手机中文件进行实时监控的方法和实现细节。
在当前手机数据
通信交换通道多样化的环境下能对智能手机中的文件进行有效的监控。
1
Android智能手机系统简介
Android系统是Google公司开发的基于Linux平台开源手机操作系统该平台由操作系统、中间件、用户界面和应用软件组成是首个为移动终端打造的开放和完整的移动软件。
Android系统基于Linux2.6内核来提供系统的核心服务例如安全机制内存管理进程管理网络堆栈和驱动模块。
其包含一组核心库提供了Java语言核心库内的大部分功能。
Android应用程序运行于Dalvik虚拟机之上该虚拟机是基于存储器的运行经过
Java语言编译器的类这些类通过dx工具被转换成.dexDalvikExecutable格式。
Android中应用程序一种是APKAndroidPackage格式文件是类似于ZIP文件的
压缩文件可以直接运行于Dalvik虚拟机上。
Android系统中文件系统采用的是一种针对NAND设备的新型文件系统Yaffs22读写速度更快并支持大容量的NAND2Flash芯片。
2 设计原理Linux内核文件系统管理中每一个目录或文件在内核中都对应一个唯一的文件信息节点in2odeinode节点是内核管理文件系统的最基本单位3。
如果对文件或目录对应的inode节点实行监控将是一种细粒度的、非常有效的文件监控措施。
通过对
Android系统Linux内核的分析尤其是对文件系统源代码的深入分析和理解本文提出了在
Android系统下采用基于inode节点的文件监控机制实现对文件的有效监控其实现可分以下几个步骤见图1。
1
Android应用
程序所使用的文件类型包括txt、jpg、mp3、avi等常见类型普通文件和二进制文件以及直接运行于AndroidDalvik虚拟机上的APKAndroidPackage格式文件2创建监控文件列表要实施监控的文件将保存在此表中3通过接口函数inotify_add_watch为监控文件列表中的每个文件或目录inode节点创建监控实例这一过程在内核中通过系统调用sys_inotify_add_watch实现若要停止对某文件或目录的监控通过接口函数inotify_rm_watch取消其所对应的监控实例在内核中通过
系统调用sys_inotify_rm_watch实现。
基于inode节点的文件监控机制使用文件描述符fd作为基本接口通过使用文件I/O操作select和poll4来监控文件系统的变化4对
Android系统Linux内核修改后使用交叉编译工具重新编译内核用生成的新内核镜像文件替换
Android系统原来的镜像5启动
Android系统通过设置的监控列表对其中的文件进行监控获得文件被访问、修改、打开或关闭、创建、删除等信息同时将监控文件信息及相应事件记录到日志文件以便查看和对文件完整性的检查6监控文件信息及相应事件记录由内核发送到用户应用程序使用AndroidSDK提供的日志类建立日志文件用来详细记录文件保护系统每天发生的各种各样的事件达到审核和监测的目的。
图1 文件实时监控流程图3 具体实现3.1 创建监控文件列表通过对内核中文件系统及有关数据结构的分析结合文件监控的功能需要确定了监控文件列表所采用的数据结构structfilelist并建立链表watch_filelist所有的受监控文件的文件名和inode信息都写入到该链表中该数据结构如下所示。
typedefstructfilelistcharfilenameFILENAME_SIZEstructinode3inodestructfilelist3next3watch_filelist另外通过使用proc_dir_entry数据结构in2clude/linux/proc_fs.h中在内存/proc文件系统5中建立
列表文件filelist_proc_file和控制文件fp_control_proc_file这样可以动态的添加新文件到/proc的监控文件列表中。
在/proc文件系统中创建的文件可根据函数read_proc和write_proc对这些文件实现数据的读写71717期温 敏等:
Android智能手机系统中文件实时监控的研究与实现 操作3。
通过对列表文件filelist_proc_file的读写可以动态添加新的文件到watch_filelist中通过将控制命令写入到控制文件fp_control_proc_file可实现对watch_filelist更新、删除等操作。
下面是filelist_proc_file和fp_control_proc_file的实现代码:filelist_proc_filecreate_proc_entry“watch_filelist”0644fp_proc_dir//创建filelist_proc_filefilelist_proc_file-datadata_buf//将信息写到filelist_proc_filefilelist_proc_file-read_procproc_read_filelist//从proc读取文件信息filelist_proc_file-write_procproc_write_filelist//向proc写入文件信息最后由函数proc_write_filelist调用create_listwatch_filel2istf_datasizeoff_data函数将要监控的文件添加到watch_filelist链表中。
3.2 获得文件监控信息在对watch_filelist中的文件进行监控后需要获得在监控的文件上所发生的事件通过分析确定的数据结构为structwatch_event_queue即通过建立事件队列来保存该文件上所发生的事件该数据结构如下所示:structwatch_event_queue intcapacity//队列容量 intfront//上一节点位置 intrear//下一节点位置 intsize//当前队列大小 watch_event_queue33event//指向事件节点3events当event-size0时表示事件队列为空当event-sizeevent-capacity时表示事件队列已满。
初始化事件队列后对发生的事件记录在事件队列结构中完成操作为events-sizeevents-rearnext_positionevents-rearevents所有发生的事件将按照发生的先后次序链接在队列中最后按照先进先出的顺序输出并保存在生成的日志文件watch_log中。
3.3 交叉编译内核
Android手机系统所使用的镜像文件位于An2droidSDK中images文件中包含有ramdisk.img、system.img、userdata.img、kernel2qemu四个镜像文件。
其中ramdisk.img是启动使用的根文件系统映象system.img是
Android的系统镜像userdata.img为保存用户数据的镜像文件kernel2qemu则是需要替换的Linux2.6内核镜像文件。
因为
Android系统使用的是嵌入式Linux系统采用较新的arm9262ej2s内核所以要使用交叉编译工具编译内核。
这里使用了arm2none2eabi交叉编译工具在linux2.6环境下执行makemenuconfig命令配置
Android的内核编译参数然后修改kernel目录中的Makefile文件其中ARCHarmCROSS_COMPILEarm2none2eabi2。
最后用make命令生成镜像文件kernel/arch/arm/boot/zImage文件就是我们需要的内核镜像。
3.4 查看日志信息在对监控列表中的文件进行监控后发生在文件上的所有事件都将被记录在系统中的watch_log文件中为方便查看发生在监控文件上的事件信息我们在
Android平台下设计了一个小型的浏览器log_browser.apk应用API函数为FileReader关键实现代码为:StringBuffernewTxtFileBufnewStringBuffer4000//接收信息filereadnewFileReaderfile//读取文件信息BufferedReaderbufreadnewBufferedReaderfileread//缓存信息newTxtFileBuf.appendbufread.readLine//读取信息通过adbinstall命令将log_browser.apk安装在
Android系统中log_browser如图2所示。
图2 日志查看器log_browser4 测试
Android提供了Emulator模拟器不需使用物理设备即可预览、开发和测试
Android应用程序的功能。
同时还提供了AndroidDebugBridgeadb调试桥它是通用的debug工具通过它可以管理设备或者模拟器的状态使用adbshell命令进入模拟器8171科 学 技 术 与 工 程9卷在shell状态可以查看系统、执行命令。
测试环境使用AndroidSDK为
android2sdk2win2dows20.9_beta版本其采用了Linux22.6.252
Android内核。
将测试文件test.txt、/sys、/etc加入到监控列表进行监控对其测试的结果如图3所示。
图3 打印监控文件信息同时在
Android系统的根目录下生成日志文件watch_log如图4所示用log_browser打开watch_log可以看到发生在测试文件上的事件信息如图5所示。
从上述测试结果可以看出对发生在监控文件上的事件能够进行有效的监控可以达到实时监控文件的目的。
5 结论本文实现的在
Android系统中采用文件的实时监控技术已经在西安市科技创新支撑计划项目———“智能手机的安全防护技术”中使用能有效、实时、准确的记录监控文件上发生的操作并以日志形式记录到手机当中去能较好的满足当前的一些应用。
当然该技术还需要进一步的完善需要在日后的
工作中不断地探索和研究以形成一套实用的文件监控系统。
随着Google公司大力推广
Android平台和
Android智能手机的推出相信会有很好的应用前景。
参 考 文 献1 王启智申功迈单和平.实用UNIX和Internet安全技术.北京:电子工业出版社1999:139—2372 毛勇强黄光明.武汉:华中师范大学物
理学院.YAFFS文件系统在嵌入式Linux的实现http://www.eaw.com.cn/news/display/article/41703 BarM.Linux文件系统.北京:清华大学出版社2003:31—534 毛德操胡希明.Linux内核
源代码情景分析.杭州:浙江大学出版社2001:419—6875 JonesMT.AccesstheLinuxkernelusingtheprocfilesystem.2006—3—14http://www.ibm.com/developerworks/
linux/library/l2proc.html.6 陈莉君冯 锐牛欣源.深入理解Linux内核M.北京:中国电力出版社2001:364—4127 MatthewNStonesR.Linux程序
设计.北京:人民邮电出版社2007:99—1408 李善平等.Linux内核指导M.杭州:浙江大学出版社2002:236—2779 JonesMT.AnatomyoftheLinuxfilesystem.http://www.ibm.com/developerworks/linux/library/l2linux2filesystem.2007—10—30下转第1724页91717期温 敏等:
Android智能手机系统中文件实时监控的研究与实现 神经
网络控制的
问题。
主要从仿真试验的角度来对体操机器人进行分析和研究仿真的结果也表明用联立约束法设计的仿真模型能够满足仿真要求从另一个途径实现了对体操机器人数学建模并且设计的神经网络控制器能够使机器人在不平衡位置到达很好的收敛域和较强的平衡范围为以后研究提供了新的建模方法和研究途径。
参 考 文 献1 SongMW.TheSwingupcontrolofrobotmanipulations.IEEETransontheAutomaticControl19923711:1782—17862 SpongMW.TheSwingupcontrolproblemfortheAcrobot.IEEEControlSystemMagazine1995151:49—553 LaiXZSheJHCaiZX.FuzzycontrolstrategyforAcrobotsconm2biningmodel2basedcontrol.IEEEProceedingsControlTheoryandApplications19991466:505—5104 郑 艳朱 媛井元伟.一类欠驱动机械系统基于滑模变结构控制.东北大学学报2005266:511—5145 郑 艳井元伟.Acrobot系统基于滑模的离散时间变结构控制.东北大学学报2006276:591—5946 赖旭芝蔡自兴吴 敏.一类欠驱动系统的模糊与变结构控制.自动化学报2001276:850—8547 郑 艳郑秀萍褚俊霞等.基于T2S模型的体操机器人系统模糊变结构控制.控制与决策2006211:34—378 美约翰??F??加德纳.SimulationsofMachinesUsingMATLABandSIMULINK.周进雄张 陵译.西安:西安交通大学出版社2002:75—77VariableStructureControlBasedonNeuralNetworkforaClassofUnderactuactedMechanicalSystemXIEHengNIUQin2zhouGuilinUniversityofTechnologyGuilin541004P.R.ChinaAbstract NeuralnetworkcontrolisappliedtothedesignofbanlancecontrolforAcrobotsystem.FirstusingsimultaneousbindinglawandvectorcentralforAcrobotsystembulidsthemathematicalmodel.Thendevelopedthelinearfeedbacktheorymakesitssystemlinearized.FinallythedesignofneuralnetworkbalancecontrollerforAcro2botisapplied.SimulationresultsshowedthatthelinearfeedbacktheoryoftheneutralnetworkwouldkeeptheAcro2botsystemasymptoticallystableintheneighorboodofup2verticalthusenablingthevariablestructurecontrolbasedonneuralnetworkforAcrobotsystemtocometure.Keywords Acrobot simultaneousbindinglaw neuralnetwork linearfeedbacktheory上接第1719页AnalysisandImplementationofFileReal2timeMonitoringBasedontheAndroidSmartPhoneSystemWENMinAILi2rong3WANGZhi2guoSchoolofComputerScienceandEngineeringNorthwesternPolytechnicalUniversityXi’an710072P.R.ChinaAbstract Ensurethesafetyofthefile2systemisakeypointtoprotectthesecurityofsystem.Toprotectthein2tegrityofdatathroughthefilemonitoringisthebaseofdisasterevaluationandprotectionofthesecuritysystem.AccordingtotheresearchoftheAndroidsmartphonesystemafilemonitoringmechanis
misdiscussedbasedonin2ode2monitorunderandroidplatformincludingitskeydatastructurekeyimplementationsandtestindetail.Key
words filemonitor
android smartphone4271科 学 技 术 与 工 程9卷