Android默认设置静态IP

修改frameworks/opt/net/ethernet/java/com/android/server/ethernet/EthernetConfigStore.java文件

下面是修改好的文件源码,不影响用户自行配置,仅修改未配置IP情况下默认使用静态IP

/*
 * Copyright (C) 2014 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.server.ethernet;

import android.net.IpConfiguration;
import android.net.IpConfiguration.IpAssignment;
import android.net.IpConfiguration.ProxySettings;
import android.os.Environment;
import android.util.Log;
import android.util.SparseArray;

import com.android.server.net.IpConfigStore;

import java.net.InetAddress;//add by lvjiong
import android.net.NetworkUtils;
import android.net.LinkAddress;
import android.net.StaticIpConfiguration;

/**
 * This class provides an API to store and manage Ethernet network configuration.
 */
public class EthernetConfigStore extends IpConfigStore {
    private static final String TAG = "EthernetConfigStore";

    private static final String ipConfigFile = Environment.getDataDirectory() +
            "/misc/ethernet/ipconfig.txt";

    public EthernetConfigStore() {
    }

    public IpConfiguration readIpAndProxyConfigurations() {
        SparseArray<IpConfiguration> networks = readIpAndProxyConfigurations(ipConfigFile);

        if (networks.size() == 0) {
            Log.w(TAG, "No Ethernet configuration found. Using default.");
	    /********add by lvjiong***********/
		    final InetAddress ADDRV4 = NetworkUtils.numericToInetAddress("10.131.0.112");
		    final InetAddress DNS1 = NetworkUtils.numericToInetAddress("10.128.142.149");
		    final InetAddress DNS2 = NetworkUtils.numericToInetAddress("172.16.13.105");
		    final InetAddress GATEWAY1 = NetworkUtils.numericToInetAddress("10.131.0.1");
		    final LinkAddress LINKADDRV4 = new LinkAddress(ADDRV4, 32);
		    StaticIpConfiguration staticIpConfig = new StaticIpConfiguration();
		    staticIpConfig.ipAddress = LINKADDRV4;
		    staticIpConfig.gateway = GATEWAY1;
		    staticIpConfig.dnsServers.add(DNS1);
		    staticIpConfig.dnsServers.add(DNS2);
            return new IpConfiguration(IpAssignment.STATIC, ProxySettings.NONE, staticIpConfig, null);
            //return new IpConfiguration(IpAssignment.DHCP, ProxySettings.NONE, null, null);
        }

        if (networks.size() > 1) {
            // Currently we only support a single Ethernet interface.
            Log.w(TAG, "Multiple Ethernet configurations detected. Only reading first one.");
        }

        return networks.valueAt(0);
    }

    public void writeIpAndProxyConfigurations(IpConfiguration config) {
        SparseArray<IpConfiguration> networks = new SparseArray<IpConfiguration>();
        networks.put(0, config);
        writeIpAndProxyConfigurations(ipConfigFile, networks);
    }
}
发布了44 篇原创文章 · 获赞 31 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/u013463707/article/details/100516834