Android 静态ip的dns设置

         Android默认开机是获取的动态ip,在一些环境中需要设置静态ip,目前项目中静态ip,网关等都能完成,就dns这个难题困扰  了我们很久。


         Android4.3之前

         在Android4.3以前,如果需要修改DNS服务器,有很多种方法,这些方法的实质就是向系统属性中添加“net.dns1”字段的信息。这些方法的前提条          件都是获得root权限。具体方法有:

         1.     在shell下,直接设置“net.dns1”等的系统属性。

         2.     在init.rc脚本中,添加对“net.dns1”等系统属性的设置。

         3.     在root权限下创建resovle.conf文件并添加相关name server信息。



Android4.3以后

在Android4.3以后,通过系统属性或者解析文件来手动修改DNS服务器已经是不可能了。主要有两种方法,一个是在NDK下面修改DNS解析逻辑,第二个是通过Android系统源代码修改相关逻辑,让Android4.3的新修改无效,然后重构Android。下面是一个老外基于NDK的修改方案,该方案需要以下权限:

1.     Root权限

2.     对/system文件夹有写权限

3.     能修改/etc/init.d

 

该方案重写了DnsProxyListener和bionic解析器逻辑,通过将/dev/socket/dnsproxyd改名然后自己替换它来达到目的。


下载地址:http://download.csdn.net/detail/asdfgcjw/8623337


你可能感兴趣的:(android)