我正在使用 Olinuxino-A20(或 Cubieboard-2,它们具有相同的 Android 图像)。我想给 /dev/ttyS0 写点东西。我正在使用用 C 编写的 JNI 方法。在我的 .cpp 文件中,我的权限被拒绝。
fd = open(tty, O_RDWR);
....
f(fd < 0){
LOGE("Failed to open serial console!");
LOGE(strerror(errno));
return -1;
} else
LOGI("Serial port opened!");
所以这个返回“权限被拒绝”。
在我的活动中,我尝试通过以下方式访问:
try {
Runtime.getRuntime().exec(
new String[] { "su", "-c", "chmod 777 /dev/ttyS*" });
Log.i("root", "Success chmod.");
} catch (IOException e) {
e.printStackTrace();
Log.e("root", "Fail to gain access");
}
仍然没有任何反应。Android 版本为 4.2.2,内核为 3.3。是的,该设备已植根。我在 Olinuxino-A13(内核 3.0 的 4.0.3)中使用了几乎相同的代码,并且可以正常工作。
此外,当我打开串行终端并手动输入命令:chmod 777 /dev/ttyS*然后运行应用程序时,一切正常。
有人可以给我一些建议,为什么我的代码不起作用?