1. 程式人生 > >全志a20設定預設ip

全志a20設定預設ip

android 預設的配置和一般存在這兩個地方

frameworks/base/core/res/res/values/config.xml
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
但是a20有點奇怪,它的第二個設定檔案是在這個地方
device\softwinner\wing-clover\overlay\frameworks\base\packages\SettingsProvider\res\values\defaults.xml(下面是修改這個檔案)
設定預設ip主要修改這兩個地方
1. defaults.xml(這個必需修改,最終呼叫的是這個)
修改
<bool name="def_ethernet_on">true</bool><!--false-->
<bool name="def_ethernet_mode">false</bool><!--false-->

新增 

<string name="def_ethernet_ip" translatable="false">192.168.1.100</string>
<string name="def_ethernet_mask" translatable="false">255.255.255.0</string>
<string name="def_ethernet_gw" translatable="false">192.168.1.1</string>
<string name="def_ethernet_dns" translatable="false">8.8.8.8</string>
<add-resource type="string" name="def_ethernet_ifname" />
<string name="def_ethernet_ifname" translatable="false">eth0</string>
<add-resource type="bool" name="def_ethernet_conf" />
<bool name="def_ethernet_conf">true</bool>
2. 修改frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java   -->
private void loadSecureSettings(SQLiteDatabase db) {  //此函式是在android 第一次起動時載入的xml預設配置
......
loadStringSetting( stmt, Settings.Secure.ETHERNET_IFNAME,
                    R.string.def_ethernet_ifname );
loadStringSetting( stmt, Settings.Secure.ETHERNET_IP,
                    R.string.def_ethernet_ip );
loadStringSetting( stmt, Settings.Secure.ETHERNET_MASK,
                    R.string.def_ethernet_mask );
loadStringSetting( stmt, Settings.Secure.ETHERNET_ROUTE,
                    R.string.def_ethernet_gw );
loadStringSetting( stmt, Settings.Secure.ETHERNET_DNS,
                    R.string.def_ethernet_dns );
loadBooleanSetting(stmt, Settings.Secure.ETHERNET_CONF,
                    R.bool.def_ethernet_conf);
......
}
Settings.Secure.ETHERNET_IFNAME 等欄位 是在 frameworks\base\core\java\android\provider\Settings.java  中已經有的定義 如下
/**
         * Ethernet related configurations
         */
        public static final String ETHERNET_ON      = "eth_on";
        public static final String ETHERNET_MODE    = "eth_mode";
        public static final String ETHERNET_IP      = "eth_ip";
        public static final String ETHERNET_MASK    = "eth_netmask";
        public static final String ETHERNET_DNS     = "eth_dns";
        public static final String ETHERNET_ROUTE   = "eth_route";
        public static final String ETHERNET_CONF    = "eth_conf";
        public static final String ETHERNET_IFNAME  = "eth_ifname";
修改的地方很少,但是摸索的過程好艱難,這種修改預設配置的方法同樣適用於其它項的配置