【发布时间】:2010-08-10 17:06:02
【问题描述】:
我正在开发一个不打算作为标准应用程序发布的应用程序。它将在单个根设备上运行。
我需要能够写入 /sys/ 目录中的文件。有问题的文件归 root 所有并具有 -rw-rw-rw- 权限。
我知道我的代码在其中运行的 VM 可能存在限制,禁止写入文件系统的该区域,但我观察到另一个应用程序显然这样做了。
这可能吗?如何实现?手机是否需要root都没关系(我正在使用的开发者是)。
我研究过简单地使用 FileWriter 写入文件,导致.flush() 出现以下错误:
java.io.IOException: Invalid argument
at org.apache.harmony.luni.platform.OSFileSystem.writeImpl(Native Method)
我也尝试过从 Java 中执行一个 shell 命令,无论有没有“su”。分别返回“request denied”和“Permission Denied”。
Process process = Runtime.getRuntime().exec("echo 'hello' > /sys/file");
最后,我尝试使用 NDK 和 JNI,以防 C 神奇地设法写入该文件。当尝试 fflush 到这个文件时,我收到一个 EOF(意味着发生了错误)。
非常欢迎所有建议!
【问题讨论】:
标签: android permissions filesystems android-ndk sys