我正在尝试在运行 android 4.4 的设备上启用有线以太网。我成功地启动了 eth0 接口。但是 DNS 解析没有发生。从 adb ping 地址工作正常。(如果我通过 WiFi 连接到我的路由器一次,然后 dns 得到解析并且可以使用以太网浏览)。另一个观察是,如果我不存在这个问题使用 Firefox 而不是默认浏览器。
从日志中可以清楚地看出 gethostbyname() 调用失败。当我进一步跟踪时,很明显在 android_open_proxy() 函数中打开的代理套接字不包含正确的值。
/* reading proxy-- proxy -->/dev/socket/dnsproxyd ..*/
如果 (fread(buf, 1, sizeof(buf), proxy) != sizeof(buf)) 返回 NULL;
/* This is reading serialized data from system/netd/DnsProxyListener.cpp
* and changes here need to be matched there */
int result_code = strtol(buf, NULL, 10);
***这里 result_code 是 401(成功的情况下是 222)。