像/dev/log/main
, 之类的文件/dev/input/event*
始终由操作系统保存。如果你 cat 文件,文件的末尾将不会显示,新词将不断地附加到你的“cat”结果中。
当我new FileInputStream
用来打开此类文件时,它总是以权限被拒绝作为响应(可能是因为它们正被我之前提到的其他目的使用)。对于像/proc/cpuinfo
.
有没有办法读取这些文件?我想知道是否有任何用户输入来自 /dev/input/event*
.
Android 上 /data/local 之外的大多数文件都需要 root 权限才能查看。我不记得设备上的默认 bin 命令是什么,但是如果您安装 BusyBox,您可以在目录中运行 ls -l 并获取访问文件所需的权限列表。
很可能你需要root你所在的设备——这会将“su”命令添加到你的bin目录中,这样你就可以获得root shell访问权限。
如果您决定这样做并且需要以编程方式运行,那么您可以在项目中包含一个 shell 接口类来执行此操作。
我希望这有助于提供一些见解。
与 Windows 不同,Linux 不会仅仅因为某些其他进程打开文件而锁定文件。我刚刚在我的 HTC Desire 上打开了一个外壳,然后看了看:
$ ls -l /dev/input
crw-rw---- root input 13, 73 2012-03-02 19:19 event9
crw-rw---- root input 13, 72 2012-03-02 19:19 event8
(etc)
如您所见,这些文件只能由用户“root”和组“input”读写。
像 /proc/cpuinfo 这样的文件是有意为世界可读的,因为它们包含内核提供给进程的信息。事实上,/proc 中的所有文件都不是真正的文件:整个 /proc 包含的条目只存在于内核中,而不存在于磁盘中。