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";
修改的地方很少,但是摸索的过程好艰难,这种修改默认配置的方法同样适用于其它项的配置