本文主要介绍external/wpa_supplicant_8/wpa_supplicant/main.c 这个文件
现在直接看main方法
int main(int argc, char *argv[])
{
int c, i;
struct wpa_interface *ifaces, *iface;
int iface_count, exitcode = -1;
struct wpa_params params;
struct wpa_global *global;
//Android 平台中, 下面这个函数的实现在 os_unix.c 中。 Android 对其做了一些修改,主要是权限方面的设置防止某些情况下被破解者利用权限漏洞以获取 root 权限
if (os_program_init())
return -1;
//初始化一些参数
os_memset(¶ms, 0, sizeof(params));
//设置debug的级别
params.wpa_debug_level = MSG_INFO;
// os_zalloc是通过进行内存分配后,也会调用os_memset初始化一些参数
iface = ifaces = os_zalloc(sizeof(struct wpa_interface));
if (ifaces == NULL)
return -1;
iface_count = 1;
// 输入输出重定向到 /dev/null 设备
wpa_supplicant_fd_workaround(1);