我正在尝试在 android 源代码中打开一个套接字。具体来说,现在我在 DisplayDevice.cpp 文件中,但套接字代码的位置可能会改变。就在我这样做之后:
int fd = socket(AF_INET, SOCK_STREAM, 0);
fd 返回为 -1,当我检查错误消息时,它被列为“权限被拒绝”。我对此进行了很多查找,大多数答案都涉及将互联网权限添加到 AndroidManifest 文件中。这会not为我工作,因为我添加的代码位于 android 源代码内部。
我想知道是否有办法绕过拒绝的权限。或者如果有更好的方法来做到这一点/使用不同类型的套接字(现在我正在使用来自
谢谢。
你很自然地得到Permission Denied
错误。这只是因为您没有正确的权限:)。查看安卓权限模型 http://source.android.com/tech/security/index.html#the-android-permission-model-accessing-protected-apis!
想象一下这样一个场景,就像操作系统中的普通用户一样,您编写了一个程序来尝试打开像您一样的套接字。您很可能会遇到同样的问题,具体取决于要创建命名套接字的位置。
当您尝试在中创建套接字时显示设备.cpp https://android.googlesource.com/platform/frameworks/native/+/27e2562868dcd3ad26f9b4677b64ae272941704e/services/surfaceflinger/DisplayDevice.cpp(从源代码编译 android),您可能有兴趣以超级用户身份编译源代码。Here https://stackoverflow.com/a/12624051/782094是一个解决方案发布者m-ric https://stackoverflow.com/users/808044/m-ric(我从未测试过)。
在类似方向上的一些有用的指针/参考文献以及我在研究这个令人着迷的主题期间发现有用的指针/参考文献是:
- https://android.stackexchange.com/questions/18857/how-to-build-compile-su-from-source https://android.stackexchange.com/questions/18857/how-to-build-compile-su-from-source
- execv 命令=>http://code.google.com/p/superuser/source/browse/trunk/su/su.c?r=2#169 http://code.google.com/p/superuser/source/browse/trunk/su/su.c?r=2#169
- https://github.com/ChainsDD/su-binary https://github.com/ChainsDD/su-binary
- http://e2e.ti.com/support/omap/f/849/p/178679/648158.aspx#648158 http://e2e.ti.com/support/omap/f/849/p/178679/648158.aspx#648158
- Google I/O 2011 的视频http://www.youtube.com/watch?v=5yorhsSPFG4 http://www.youtube.com/watch?v=5yorhsSPFG4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)