Android的DHCP功能

Android的DHCP功能包含两个独立的部分:dhcpcd和netcfg。

1)dhcpcd位于external\dhcpcd目录下,在系统中以service的方式存在,负责通过dhcp协议为Android系统获取IP地址。
上层应用通过对dhcpcd service的操作来实现DHCP功能。其调用流程大体如下:
runDhcp(java) -- android_net_utils_runDhcp(JNI) --- android_net_utils_runDhcpCommon(C++)-- dhcp_do_request(C)

在init.rc或init.{boardtype}.rc中定义了dhcpcd对应的service。

2)netcfg位于system/core/netcfg目录下,提供了系统命令行的网络配置功能。其支持的功能定义在如下结构体中:
CMDS[] = {
    { "dhcp",   1, do_dhcp },
    { "up",     1, ifc_up },
    { "down",   1, ifc_down },
    { "flhosts",  1, ifc_remove_host_routes },
    { "deldefault", 1, ifc_remove_default_route },
    { "hwaddr", 2, set_hwaddr },
    { 0, 0, 0 },

其中,dhcp相关功能的实现代码位于system\core\libnetutils目录下。

你可能感兴趣的:(Android)