android 4.3以上修改DNS 及 流程(netd)


一、android中代码
framework端,设置dns服务器代码路径如下:
kk-4.x/libcore/luni/src/main/java/java/net/InetAddress.java
kk-4.x/frameworks/base/services/java/com/android/server/NetworkManagementService.java
kk-4.x/frameworks/base/services/java/com/android/server/NativeDaemonConnector.java
NetworkManagementService中函数setDnsServersForInterface
最终会通过本地socket传输命令到守护进程netd
所以framework层还可以使用INetworkManagementService mNetd  来更改dns地址

二、和dns相关libc代码路径如下:
kk-4.x/bionic/libc/netbsd

三、netd模块,netd是一个守护进程
kk-4.x/system/netd

四、其他命令设置dns
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT --to-destination 202.96.134.33:53

取消设置的DNS:
iptables -t nat -L OUTPUT -n -v --line-numbers
iptables -t nat -D OUTPUT *linenumber*


五、第一次开机起来后获取DNS:

/data/data/com.android.providers.settings/databases/Settings.db 里面有保存dns数据


在开机状态下,获取DNS:
EthernetManager可以设置获取DNS,这个dns是保存在内存的键值对中。

六、流程
android 4.3之后通过DNS获取ip,采用netd代理, netd是一个守护进程

通过ndc命令可
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值