android– 连接到抽象unix套接字时’权限被拒绝’

android– 连接到抽象unix套接字时’权限被拒绝’,第1张

概述 *** 作系统:AndroidL服务器:本机级系统服务器,通过抽象套接字提供服务.客户:jni正常的第3个APK使用APK连接套接字时获取“权限被拒绝”.我以为抽象套接字没有权限!并且,在adbshell(rootedshell)中运行时,相同的代码也可以工作.问题是:权限集在哪里?代码:char*target_socket_name=

*** 作系统:Android L
服务器:本机级系统服务器,通过抽象套接字提供服务.
客户:jni正常的第3个APK
使用APK连接套接字时获取“权限被拒绝”.
我以为抽象套接字没有权限!

并且,在adb shell(rooted shell)中运行时,相同的代码也可以工作.

问题是:权限集在哪里?

代码:

char *target_socket_name = "@mobilelogd"; int sock_ID = 0; struct sockaddr_un sun;int address_len;sock_ID = socket(AF_UNIX, SOCK_STREAM, 0);if (sock_ID < 0) {    LOG("in %s: Unable to create socket: %s\n", __func__, strerror(errno));    return -1;} else {    LOG("socket created!\n");       }memset(&sun, 0, sizeof(sun));sun.sun_family = AF_UNIX;strncpy(sun.sun_path, target_socket_name, strlen(target_socket_name));sun.sun_path[0] = 0;address_len = offsetof(struct sockaddr_un, sun_path) + strlen(target_socket_name);if (connect(sock_ID, (struct sockaddr *)&sun, address_len) == -1) {    LOG("in %s: Connect to socket Failed: (%d),%s\n", __func__, errno, strerror(errno));    close(sock_ID);    return -1;}

—编辑1 —:添加一些初始化代码,并将’0’更改为0.相同的结果.

解决方法:

好的,这是它在L上通过引入的BUG改变的独家新闻……错误修复是管道:

https://android.googlesource.com/device/moto/shamu/+/b2db40f

而不是java管道或本机管道

总结

以上是内存溢出为你收集整理的android – 连接到抽象unix套接字时’权限被拒绝’全部内容,希望文章能够帮你解决android – 连接到抽象unix套接字时’权限被拒绝’所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117223.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存