Android:读取操作系统当前持有的文件(例如/ dev / log / main,/ dev / input / event *)

时间:2012-04-21 18:53:48

标签: android file io

操作系统始终保留/dev/log/main/dev/input/event*等文件。如果您捕获文件,文件的末尾将不会显示,并且新单词将连续添加到您的“cat”结果中。

当我使用new FileInputStream打开这些文件时,它总是以拒绝权限进行响应(可能是因为它们被我之前提到的其他目的使用)。 对于/proc/cpuinfo等文件,不会拒绝权限。

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

2 个答案:

答案 0 :(得分:1)

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

您很可能需要根据自己的设备进行root操作 - 这会将“su”命令添加到您的bin目录中,以便您可以获得root shell访问权限。

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

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

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

答案 1 :(得分: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包含仅存在于内核中而不是存在于磁盘上的条目。