2013-03-08 14 views
2

我想在android源代码中打开一个套接字。具体来说,我现在在DisplayDevice.cpp文件中,但是套接字代码的位置可能会改变。在我现在做之后:在android代码中创建一个套接字(不是在android应用程序中)获取权限被拒绝

int fd = socket(AF_INET, SOCK_STREAM, 0); 

fd获取返回为-1,并且当我检查错误消息它被列为权限被拒绝。我已经为此考虑了很多问题,大多数答案都是将互联网权限添加到AndroidManifest文件中。这将不是为我工作,因为我添加的代码是在android源代码中。

我想知道是否有办法绕过拒绝的权限。或者,如果有更好的方法来做到这一点/不同类型的插座的使用(现在我使用套接字从

谢谢。

+0

啊,你可能想把它标记为C或C++的问题。这是非常BSD式套接字 – 2013-03-08 20:56:33

回答

2

这是很自然的,你得到Permission Denied错误。这简直是因为你没有正确的许可:)。退房android permission model

想象一下像操作系统中的普通用户一样的场景,并且您会编写一个程序,尝试打开与您的套接字类似的套接字。你很可能会面临同样的问题,这取决于在哪里创建指定的套接字。

当您尝试在DisplayDevice.cpp(从源代码编译android)中创建套接字时,您可能有兴趣将源代码编译为超级用户。 Here是由m-ric发布的解决方案(我从未测试过)。

一些有用的指针/在类似的方向和研究期间我发现是有用的关于这个迷人主题的参考资料包括:

  1. https://android.stackexchange.com/questions/18857/how-to-build-compile-su-from-source
  2. execv命令=>http://code.google.com/p/superuser/source/browse/trunk/su/su.c?r=2#169
  3. https://github.com/ChainsDD/su-binary
  4. http://e2e.ti.com/support/omap/f/849/p/178679/648158.aspx#648158
  5. 来自Google I/O 2011的视频http://www.youtube.com/watch?v=5yorhsSPFG4
+0

谢谢。这真的帮助我开始正确的方向。我仍然在寻找更明确的答案,因为我很困惑,到底发生了什么以及在多解决方案中会发生什么。所有这一切,这是非常有用的信息向前迈进。 – challeng 2013-03-09 18:16:28

相关问题