- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
android 通过DHCP获取IP初步流程
====================================================================
1.
java中实现log的方法是
Log.v(TAG, Static IP configuration succeeded);
D/WifiStateTracker( 860): DhcpHandler: DHCP request started
发生在 ./frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java:2285
2.
java层运行dhcp的地方有两个
./frameworks/base/ethernet/java/android/net/ethernet/EthernetStateTracker.java
./frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java
定义在
./frameworks/base/core/java/android/net/NetworkUtils.java
runDhcp的jni实现./frameworks/base/core/jni/android_net_NetUtils.cpp:231
对应的函数是android_net_utils_runDhcp,此函数会调用dhcp_do_request, dhcp_do_request定义在./system/core/libnetutils/dhcp_utils.c中
3.
rt3070 wifi 驱动适配层在./hardware/libhardware_legacy/wifi/wifi_ralink3070.c
Ethernet分析
1.EthernetNative.java的jni在./frameworks/base/core/jni/android_net_ethernet.cpp
故障描述:
(android手机)LG P350连接wifi(wlan)时若使用动态ip分配,则总停留在“正在从[SSID名称]获取IP地址”,然后获取失败,自动断开。反复重新连接均如此。
设置静态IP则可以连接。
排查过程:
(1)搜索引擎输入“LG P350 wifi obtain ip fail”,无有效信息。
(2)刷包,刷了3个官方KDZ(V10K_00,V10N_00,V10P_00),无果。
(3)今天反编译关系,得学android调试技术,adb logcat时发现DHCP获取ip时,提示有文件无权限打开,接着就是超时失败。关键部分信息摘录如下:
D/NetworkStateTracker(1372): setDetailed state, old =AUTHENTICATING and new sta
te=OBTAINING_IPADDR
…...
D/WifiStateTracker(1372): DhcpHandler: DHCP request started
….
E/dhcpcd? ( 9576): open`/data/misc/dhcp/dhcpcd-wlan0.pid: Permission denied
…...
V/WifiStateTracker(1372): Changing supplicant state: COMPLETED == DORMANT
D/WifiStateTracker(1372): Reset connections and stopping DHCP
…….
D/WifiStateTracker( 1372): Disabling interface
D/NetworkStateTracker(1372): setDetailed state, old=OBTAINING_IPADDR and new state=FAILED
E/WifiInfo( 1372):setSSID null
…….
V/WifiStateTracker( 1372): New network state is DISCONNECTED
V/WifiStateTracker(1372): Changing supplicant state: DORMANT == DORMANT
E/WifiInfo( 1372):getSSID null
D/ConnectivityService(1372): ConnectivityChange for WIFI:DISCONNECTED/FAILED
V/ConnectivityService(1372): Attempt to con
文档评论(0)