trol—proc—file可实 采用较新的arm926-ej.s内核,所以要使用交叉编译现对watch filelist更新、删除等操作。
下面是filelist 工具编译内核。
这里使用了arm.none.eabi交叉编_proc_file和印一control_proc_fde的实现代码: 译工具,在linux2.6环境下,执行make menuconfig fdelist_pmc—file=create—proc—entry(。
watch—filelist”,0644.fp— 命令配置Android的内核编译参数,然后修改kernel proc_dir);//创建filelist_pmc_file 目录中的Makefile文件,其中ARCH=arm,CROSS— filelist_proc_file一>data=data.bur; COMPILE=arm—none—eabi一。
最后用make命令生成 //将信息写到fdelist_proc_file filelist 镜像文件,kemel/arch/ann/boot/zlmage文件就是我 proc3de一>read_proc=proc—read filelist;//从proc读取 文件信息 们需要的内核镜像。
filellst_proc._file一>write_prcc。
prcc—write—melis‖/向proc写人 3.4查看日志信息 文件信息 在对监控列表中的文件进行监控后,发生在文 最后由函数proc—write—fi〕elist()调用create—llst((&watch—fdel· 件上的所有事件都将被记录在系统中的watch—log ist。
f_data。
sizeof f_data)函数.将要监控的文件添加到watch— 文件中;为方便查看发生在监控文件上的事件信 filelist链表中。
息,我们在Android平台下设计了一个小型的浏览3.2获得文件监控信息 器log_browser.apk,应用API函数为FileReader(), 在对watch—filelist中的文件进行监控后,需要 关键实现代码为:获得在监控的文件上所发生的事件;通过分析,确 StringBuffer newTxtFileBuf=new StringBuffer(4000);//接收信息定的数据结构为struct watch_event_queue。
即通过建 fllerend=nw FihReader(file);//读取文件信息立事件队列来保存该文件上所发生的事件,该数据 BufferedReMer bIJ缸Bd=Ilw BufferedReader(filerend);//缓存结构如下所示: 信息 SImct watch_event_quene{ newTxtFileBuf.append(bufread.readLine());11读取信息 int capacity;//队列容量 通过adb install命令将log—browser.apk安装在 int front;//上一节点位置 Android系统中,log_browser如图2所示。
int rear;//下一节点位置 int size;//当前队列大小 watch_event_queue··event;//指向事件节点 }·events;当event一>size=0时,表示事件队列为空,当event 一>size=event一>capacity时表示事件队列已满。
初始化事 件队列后.对发生的事件记录在事件队列结构中.完成操作为 events一>size++;events一>_ear=next—position(events一> 瑚r.events),所有发生的事件将按照发生的先后次序链接在队一 图2日志查看器log_browser 列中,最后按照先进先出的顺序输出,并保存在生成的日志文 件watch—log中。
3.3交叉编译内核 4测试 Android手机系统所使用的镜像文件位于An·droid SDK中images文件中,包含有ramdisk.img、 Android提供了Emulator模拟器,不需使用物理system.img、userdata.img、kernel—qemu四个镜像文 设备即可预览、开发和测试Android应用程序的功件。
其中ramdisk.img是启动使用的根文件系统映 能。
同时还提供了Android Debug Bridge(adb)调试象,system.img是Android的系统镜像,userdata.img 桥,它是通用的debug工具,通过它可以管理设备或为保存用户数据的镜像文件,kernel.qemu则是需要 者模拟器的状态,使用adb shell命令进入模拟器, 万 方数据7期 温敏,等:Android智能手机系统中文件实时监控的研究与实现 1719在shell状态可以查看系统、执行命令。
从上述测试结果可以看出,对发生在监控文件 测试环境使用Android SDK为
android—sdk—win— 上的事件能够进行有效的监控,可以达到实时监控dows-0.9_beta版本,其采用了Linux-2.6.25一Android 文件的目的。
内核。
将测试文件test.txt、/sys、/etc加入到监控列表进行监控,对其测试的结果如图3所示。
5结论 本文实现的在Android系统中采用文件的实时 监控技术,已经在西安市科技创新支撑计划项 目——“智能手机的安全防护技术”中使用,能有 效、实时、准确的记录监控文件上发生的操作,并以 日志形式记录到手机当中去,能较好的满足当前的 图3打印监控文件信息 一些应用。
当然,该技术还需要进一步的完善,需 要在日后的工作中不断地探索和研究,以形成一套 同时,在Android系统的根目录下生成日志文 实用的文件监控系统。
随着C,oosle公司大力推广件watch—log(如图4所示),用log—browser打开 Android平台和Android智能手机的推出,相信会有watch—log可以看到发生在测试文件上的事件信息 很好的应用前景。
(如图5所示)。
参考文献 l王启智。
申功迈,单和平.实用UNIX和Internct安全技术.北京: 电子工业出版社,1999:139—237 2毛勇强。
黄光明.武汉:华中师范大学物理学院.YAFFS文件系统 在嵌入式Linux的实现http://www.∞w.唧.on/news/display/ article./4170 3 Bar M.Linux文件系统.北京:清华大学出版社,2003:31—63 4毛德操,胡希明.Linux内核源代码情景分析.杭州:浙江大学出 版社.2001:419—鹋7 图4生成watch log文件 5 Jones M T.Access the Linux kernel u8illg thepmefilesystem.(200卜 3--14)http://www.ibm.corn/developerworka/linux/library/l-pine. .
上一篇:
基于Android系统的H_264视频监控解码实现
下一篇:
7*30m公路预应力混凝土连续梁桥上部结构设计