3

当我们进入android手机的设置->无线和网络选项并检查usb tether选项时,立即创建一个网络设备rndis0,我们可以从adb shell netcfg看到

我基本上想知道这个网络设备是如何创建的,通过设置应用程序调用哪个api来创建rndis0接口

谢谢

4

1 回答 1

3

rndis0是用作网络共享的NIC时 USB 端口的名称。它可能以RNDIS协议命名,它在与计算机连接时使用。我从未能够找到以编程方式修改它的非 root 方法(因此从未找到任何 API 方法),我也没有找到任何可以修改它的非 root 应用程序。

为了正确回答您的问题,我需要确切地知道您要做什么,因为存在以不太直接的方式使用 Android 网络接口的有根和无根方法;下面列出了一些包含示例的链接。

以编程方式打开/关闭 USB 网络共享:
在 android 上以编程方式启用/禁用 USB 或 Wifi 网络
共享 从代码开始/停止内置 Wi-Fi/USB 网络共享?

以编程方式打开/关闭 WIFI:
如何以编程方式在 Android 设备上关闭 WiFi?

如果你有 root 并且不介意使用 Linux 终端弄脏你的手,你可以尝试手动设置它。但是,您的两个主要问题是 1) 一些 Android 内核只是删除了主要的 Linux 功能,以及 2) 即使您手动导入了一些默认功能(可能借助Busybox之类的工具)Android 并不总是遵循所有 Linux 规则和普通电脑一样。例如,我曾经尝试设置我的 S2 的 DHCP 范围(我在基于 Linux 的计算机上的各种发行版上轻松完成了此操作),但无论我多么努力,手机都拒绝遵守我的规则。另一方面,像 iptables 这样的工具从来没有让我失望过。

一些有用的 Linux 链接:

ArchWiki - 我所学的所有 Linux(Ubuntu、CentOS、Arch Linux、一些 Android、vanilla Linux..)的 90% 都来自这里。它们通常比那些发行版本身涵盖的更多细节涵盖其他发行版。

iptablesiptables更多iptables..

一般网络配置ip路由更多路由..

请记住,上述某些链接中的大部分信息不适用于 Android,因为 Android 仅实现了部分功能。不过,这绝对值得一读。

希望有帮助。

于 2013-09-22T15:05:35.303 回答