Android Auto IP Support.

来源:互联网 发布:知乎申请文书 编辑:程序博客网 时间:2024/05/21 08:03

 

Android 自带的dhcpcd 本身是支持IPv4LL AutoIP 功能。

http://roy.marples.name/projects/dhcpcd/

 

但是Android Wifi 连接的时候还是不能获到 IPv4LL 定义的 AutoIP。

 

有两个原因导致Android Wifi 连接不能获得 IPv4LL 定义的 AutoIP。

 

1. Android framework 中 dhcp 的超时时间是30s 而 dhcpcd 默认的超时时间也是30s

  

 

Android framework 在30s超时后会强制断开wifi 连接,而dhcpcd 只有在30s超时后才会作IPV4LL地址分配,

所以默认情况下永远也不会作IPV4LL.

 

2. dhcpcd 收到IPV4LL 时会设置Android dhcp失败
   setprop dhcp.${interface}.result "failed"

 

 

综上,如果要使Android 支持 AutoIP 功能。 需要作如下两个修改。

 

1. 修改

  

这样dhcpcd 10s 超时候继续有机会作IPv4LL 地址分配

 

2. 修改

/system/etc/dhcpcd/dhcpcd-hooks/95-configured

 

使得Android framework 认为IPV4LL 的结果作为dhcp 成功了。