Post

enable wifi using GUI on android

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

}

This post is licensed under CC BY 4.0 by the author.