【发布时间】:2014-01-23 17:33:38
【问题描述】:
请告知是否可以在 Android 设备上拦截/监控文件 I/O。例如。在现有的 Linux 上,我们可能会使用 LSM 或系统调用陷阱。
我希望将所有新创建的文件的文件名记录到文本文件或短信到另一部手机。
感谢您对入门的任何帮助。先感谢您。
干杯, 比尔
【问题讨论】:
标签: kernel
请告知是否可以在 Android 设备上拦截/监控文件 I/O。例如。在现有的 Linux 上,我们可能会使用 LSM 或系统调用陷阱。
我希望将所有新创建的文件的文件名记录到文本文件或短信到另一部手机。
感谢您对入门的任何帮助。先感谢您。
干杯, 比尔
【问题讨论】:
标签: kernel
您可以使用 FileObserver 类:
“监视文件(使用 inotify)在设备上的任何进程(包括这个)访问或更改文件后触发事件。FileObserver 是一个抽象类;子类必须实现事件处理程序 onEvent(int, String )。”
http://developer.android.com/reference/android/os/FileObserver.html
【讨论】:
鉴于 Android 内核支持 inotify,您可以编译一些使用 inotify 报告文件系统活动的工具。
或者你可以试试pyinotify (http://pyinotify.sourceforge.net/)
【讨论】:
andriod SMS 服务由另一个独立的 java 程序提供,SMS 消息可能存储在 SQLlite 数据库中。 通常是一个恶意程序,它调用 SMS 管理器的服务来轮询其中的内容或发送 SMS 消息。 即使你从内核截取所有磁盘 io,也很难知道是哪个程序触发了这个磁盘 IO 给管理器。 而且也很难从接收到的文件名或数据块中了解 IO 活动的意图。
如果你想尝试用于学习目的的拦截功能,你可以尝试 Android 中的 ptrace 功能。它很像标准 Linux 中的 ptrace,可以拦截从进程发送的每个系统调用请求。
【讨论】: