Android上的原始套接字

Android上的原始套接字,android,sockets,Android,Sockets,我想创建一个在Android上运行并使用原始套接字的应用程序。我看到java.net.*或android.net.*库中没有任何原始套接字支持。Android上可以使用原始套接字吗?正确,任何Java或Android库都不支持原始套接字,部分原因是(我引用自): 相信这样的一揽子计划 会降低当前Java的性能 安全模型,并且可能很难 在非操作系统中实现 (OS)依赖的时尚 有第三方图书馆,但是这些都需要编译C或C++,所以你在那里运气不好。 另外,我相信您需要root访问才能使用原始套接字 因此

我想创建一个在Android上运行并使用原始套接字的应用程序。我看到java.net.*或android.net.*库中没有任何原始套接字支持。Android上可以使用原始套接字吗?

正确,任何Java或Android库都不支持原始套接字,部分原因是(我引用自):

相信这样的一揽子计划 会降低当前Java的性能 安全模型,并且可能很难 在非操作系统中实现 (OS)依赖的时尚

有第三方图书馆,但是这些都需要编译C或C++,所以你在那里运气不好。 另外,我相信您需要root访问才能使用原始套接字


因此,尽管如此,我想说从技术上讲这是可能的,但目前还不实用。

为什么不使用Android进程间通信,比如:

艾德尔, 意图 广播等

例如,见。
据我所知,他们在内部使用原始套接字,这在Android上是不可能的。由于安全原因(我猜),java和c/c++中都没有,唯一可能的解决方案是通过根访问进行一些黑客攻击。我也一直在寻找一种方法,但从未找到任何东西。

我已经能够在根手机上使用原始套接字,使用在QPython应用程序下运行的Python。这有点笨重,如果脚本还没有以root身份运行,它会用“su”重新调用自己,但它可以工作。

您可以使用Android NDK for C/C++代码。但这对访问限制没有帮助。我实际上需要原始套接字。使用原始套接字的目的是为了能够操纵数据包。我想写一个PPPoE层,它需要访问原始数据包。它确实需要在与内置VPN客户端相同的级别上运行。有没有一个类似DDK的工具包可以让你在Android上编写驱动程序级的代码?@Tingo和Steve:“我相信你需要root访问才能使用原始套接字”:更确切地说,你需要,但是的,除非使用更细粒度的特权管理,否则这可以归结为“root”。问题是在Java或Android中使用套接字,而不是python。