我一直在对 Android 进行一些低级的黑客攻击。
我正在尝试启用 wifi,即通过终端(adb shell)建立 Internet 连接。我编写了一个 C 程序,通过侵入 android 的仿生库和 libnetutils 库来实现这一点。
一切正常。我可以通过 dhcp 请求获取 IP 地址。问题是,每当我尝试为 ex 打开任何网站时。google.com 通过浏览器,它不会打开。但是当我输入站点“74.125.228.66”(google.com)的 IP 地址时,页面会被加载。
我尝试了几个选项,例如修改文件“resolv.conf”(存在于/system/etc)和文件“20-dns.conf”(位于/system/etc/dhcpcd/dhcpcd-hooks)中的dns条目。我还尝试使用“setprop”调用为“dhcp.eth0.dns*”和“dhcp.wlan0.dns*”手动设置 dns 值。
但似乎没有任何效果。我还注意到一个有趣的行为。如果我从“设置”菜单手动打开wifi,然后将其关闭然后运行我的程序,我就不会再遇到这个问题了。看起来它使用了一些我无法弄清楚的设置。
我的猜测是这是 DNS 问题,但可能是其他问题。让我知道是否有人以前遇到过这个问题。
这是我启用wifi的方法:
使用.
wpa_supplicant
_set_prop()
发送
dhcp
获取 IP 的请求(来自dhcpclient.c
in 的代码libnetutils
)。使用.
dhcpcd
_set_prop()
(即使没有这个,一切正常。我运行它以便自动更新 IP 租约。(虽然我不确定这一点,如果dhcpcd
守护进程会处理租约更新)。