我正在包装libril库并尝试从那里打开一个套接字。尝试在/ dev / socket中打开套接字失败,因为rild作为用户'radio'运行并且它没有权限,在抽象命名空间中打开套接字似乎没问题但是客户端(android app)在尝试时遇到“权限被拒绝”连接。我在普通Linux下创建了一个测试客户端和服务器,即使一个以root身份运行,另一个流程作为另一个组中的低权限用户,它们也会连接。
任何想法如何让这个在手机上工作?我在部分绑定和连接中抛光了代码,并且我给出了合适的长度。请注意,如果未正确配置套接字或服务器或客户端的长度不正确,则错误为“连接被拒绝”。现在我得到'权限被拒绝'。我会感谢所有的帮助,包括如何通过其他方式进行沟通的想法。
服务器:
#define SOCKET_ADDR "test.socket"
void* initSRV(void* dummy) {
int err = 0;
int fdListen = -1;
int fdConnect = -1;
int i;
char buf[4096];
struct sockaddr_un sock;
socklen_t len = 0;
memset(&sock, 'x', sizeof(struct sockaddr_un));
sock.sun_family = AF_UNIX;
sock.sun_path[0] = ' ';
strncpy(sock.sun_path+1, SOCKET_ADDR, strlen(SOCKET_ADDR));