4

我正在使用 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*然后运行应用程序时,一切正常。

有人可以给我一些建议,为什么我的代码不起作用?

4

0 回答 0