[轉錄] enable wifi using GUI on android
http://vanix.blogspot.com/2009/08/enable-wifi-used-gui-on-android.html
Kernel
將wireless adapter driver編成module, 放置android fs的/system/lib/modules
The patches for android source
$ vi external/wpa_supplicant/Android.mk
WPA_BUILD_SUPPLICANT := true
$ vi external/wpa_supplicant/.config
CONFIG_DRIVER_WEXT=y
$ vi build/target/board/generic/system.prop
wifi.interface=wlan0
$ vi hardware/libhardware_legacy/wifi/wifi.c
//vanix
static const char DRIVER_MODULE_NAME[] = "zd1211";
static const char DRIVER_MODULE_TAG[] = "zd1211 ";
static const char DRIVER_MODULE_PATH[] =
"/system/lib/modules/zd1211rw.ko";
//註解wifi_load_driver function
int wifi_load_driver()
{
char driver_status[PROPERTY_VALUE_MAX];
int count = 100; /* wait at most 20 seconds for completion */
return 0;
/*
if (check_driver_loaded()) {
return 0;
}
if (insmod(DRIVER_MODULE_PATH) <>
return -1;
property_set("ctl.start", FIRMWARE_LOADER);
sched_yield();
while (count-- > 0) {
if (property_get(DRIVER_PROP_NAME, driver_status, NULL)) {
if (strcmp(driver_status, "ok") == 0)
return 0;
else if (strcmp(DRIVER_PROP_NAME, "failed") == 0)
return -1;
}
usleep(200000);
}
property_set(DRIVER_PROP_NAME, "timeout");
return -1;
*/
}
$ vi frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java
private static final boolean LOCAL_LOGD = Config.LOGD || true;
The patches for android fs
$ vi init.rc
#wifi
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
mkdir /data/system/wpa_supplicant 0770 wifi wifi
mkdir /data/misc/dhcp 0770 dhcp dhcp
chown dhcp dhcp /data/misc/dhcp
#service name一定要是wlan_loader
service wlan_loader /sbin/wlan_loader
oneshot
disable
service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 -c
/system/etc/wifi/wpa_supplicant.conf
group system wifi
disabled
oneshot
service dhcpcd /system/bin/dhcpcd wlan0
group system dhcp
disabled
oneshot
$ vi /sbin/wlan_load
#!/system/bin/sh
insmod /system/lib/modules/zd1211rw.ko
$ vi /system/etc/wifi/wpa_supplicant.conf
ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=system
update_config=1
# 如果有紀錄加入過的網路的話, 會自動出現在檔案下方
network={
ssid="W320AP4"
key_mgmt=NONE
}
network={
ssid="Mtube5566"
psk="password"
proto=RSN
key_mgmt=WPA-PSK
group=CCMP TKIP
priority=4
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.108.145