项目里面需要将系统的串口库封给JNI,然后java来调用系统提供的串口接口。这些串口接口中涉及到读写权限的问题,被Android的SELinux和Linux的用户组权限所影响,因为java的进程权限比较低,所以导致系统封给java的接口调用失败,且selinux和Linux的用户组权限都在报错。
解决Linux的用户组权限报错:
需要去修改ueventd.rc(D:\src\system\core\rootdir\ueventd.rc)文件。但是ueventd.rc文件还是有一定的修改规则,通过几次修改之后大概总结了一下这个规则,不保证对错。
/dev/tty* 0777 root system
ueventd.rc文件中的内容大致为这样,第一列表示要修改的设备节点;第二列为修改后的权限;第三列为该节点的用户,注意,不要尝试去修改该节点的用户,很有可能修改导致修改失败,我一开始修改失败就是因为把该节点的用户给修改了;第四列表示所属的组,组是可以修改的。
按以上修改之后,设备节点权限修改成功。