我们正在开发一个从串行设备读取数据的应用程序。现有的 C++ 代码作为共享库(libProtocol.so 使用 NDK 构建)被重用,以读取和解码来自设备的数据并将其传递给应用程序。但是当设备连接时,由于权限问题,共享库代码无法访问设备。在 adb shell 命令 ls -l/dev/ttyUSB0 中显示“crw------- root root”。如果我手动使用 adb 中的 chmod 777 ttyUSB0 并运行应用程序,它就可以打开端口。(如果我创建一个 C++ exe 来访问 USB 串行端口并在 android 环境中运行,它可以访问端口但从共享库访问失败)
- 是否可以永久更改权限?
- android 是否以 root 或任何其他用户身份运行?
- 一般 ttyUSB0 属于拨出组,为什么它显示为 root 和 crw------- 而不是 crw-rw---- ?
- 为什么从 exe 访问有效,从共享库访问失败?
硬件平台:Beagle Board - XM OS:Android Froyo 有人可以帮忙吗?