我花了几个小时阅读 AOSP 源代码,试图找出当需要启动 eth0 时如何以及在何处调用“ip link”或“ifconfig”。
Android 10 是否使用“ip link”或“ifconfig”来设置地址并启动 eth0?
或者它是否以其他方式操纵网络接口(interface)?
最佳答案
既然您提到了eth0
,我假设您对以太网接口(interface)感兴趣。每种传输类型都有自己的 IP 配置管理方式。对于以太网接口(interface),您可以在 EthernetNetworkFactory
link 找到所属类。 。您有兴趣了解其工作原理的方法是 EthernetNetworkFactory#provisionIpClient
link .
最终,如果您遵循代码,您将看到它最终到达 netd 的 NetdNativeService#interfaceAddAddress
link 。此时我们处于 native 层。
最终到达ifc_utils#ifc_act_on_address
link 。这是 IP 地址最终添加到以太网接口(interface)的地方。完成所有这些侦探工作后,我们在此函数中看到打开了一个 socket
以发送 NETLINK_ROUTE
消息 link设置IP地址。
关于android - Android 实际上在哪里调用 "ip link"或 "ifconfig"来启动界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67533929/