socket select failed selinux

工作总结

昨天调试的时候,服务端的daemon连客户端daemon socket报 select failed 错误。这两部分的代码其实已在别的arm平台验证通过。
具体原因一个是因为安卓5.1的权限问题尤其是selinux,这个开启后,因为它的最小权限化原则导致socket连接失败。但是setenforce 0 临时 关闭后仍然失败,故将服务器端代码中socket连接时 select()函数 改为epoll,之后调试通过。
这里简单的记录一下,关于selinux 其实在高版本的安卓系统上,是默认开启的。很多人都直接关闭。目前我也不太清楚它存在的必须性,就像我们windows上的防火墙,有时候嫌麻烦也是关闭的。当然愿意研究的可以看看selinux的文档。
下面附上我看到别人写的select epoll的区别,感兴趣的自己研究吧。
http://www.cnblogs.com/Anker/p/3265058.html

猜你喜欢

转载自blog.csdn.net/chrycoder/article/details/78410743