3

/dev/log/main, 之类的文件/dev/input/event*始终由操作系统保存。如果你 cat 文件,文件的末尾将不会显示,新词将不断地附加到你的“cat”结果中。

当我new FileInputStream用来打开此类文件时,它总是以权限被拒绝作为响应(可能是因为它们正被我之前提到的其他目的使用)。对于像/proc/cpuinfo.

有没有办法读取这些文件?我想知道是否有任何用户输入来自 /dev/input/event*.

4

2 回答 2

1

Android 上 /data/local 之外的大多数文件都需要 root 权限才能查看。我不记得设备上的默认 bin 命令是什么,但是如果您安装 BusyBox,您可以在目录中运行 ls -l 并获取访问文件所需的权限列表。

很可能你需要root你所在的设备——这会将“su”命令添加到你的bin目录中,这样你就可以获得root shell访问权限。

如果您决定这样做并且需要以编程方式运行,那么您可以在项目中包含一个 shell 接口类来执行此操作。

我希望这有助于提供一些见解。

https://github.com/jjNford/android-shell

于 2012-04-21T20:23:14.003 回答
0

与 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 包含的条目只存在于内核中,而不存在于磁盘中。

于 2012-04-22T05:25:10.773 回答