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