xref: /aosp_15_r20/external/wpa_supplicant_8/wpa_supplicant/README-Windows.txt (revision 03f9172ca588f91df233974f4258bab95191f931)
1*03f9172cSAndroid Build Coastguard Workerwpa_supplicant for Windows
2*03f9172cSAndroid Build Coastguard Worker==========================
3*03f9172cSAndroid Build Coastguard Worker
4*03f9172cSAndroid Build Coastguard WorkerCopyright (c) 2003-2009, Jouni Malinen <[email protected]> and contributors
5*03f9172cSAndroid Build Coastguard WorkerAll Rights Reserved.
6*03f9172cSAndroid Build Coastguard Worker
7*03f9172cSAndroid Build Coastguard WorkerThis program is licensed under the BSD license (the one with
8*03f9172cSAndroid Build Coastguard Workeradvertisement clause removed).
9*03f9172cSAndroid Build Coastguard Worker
10*03f9172cSAndroid Build Coastguard Worker
11*03f9172cSAndroid Build Coastguard Workerwpa_supplicant has support for being used as a WPA/WPA2/IEEE 802.1X
12*03f9172cSAndroid Build Coastguard WorkerSupplicant on Windows. The current port requires that WinPcap
13*03f9172cSAndroid Build Coastguard Worker(http://winpcap.polito.it/) is installed for accessing packets and the
14*03f9172cSAndroid Build Coastguard Workerdriver interface. Both release versions 3.0 and 3.1 are supported.
15*03f9172cSAndroid Build Coastguard Worker
16*03f9172cSAndroid Build Coastguard WorkerThe current port is still somewhat experimental. It has been tested
17*03f9172cSAndroid Build Coastguard Workermainly on Windows XP (SP2) with limited set of NDIS drivers. In
18*03f9172cSAndroid Build Coastguard Workeraddition, the current version has been reported to work with Windows
19*03f9172cSAndroid Build Coastguard Worker2000.
20*03f9172cSAndroid Build Coastguard Worker
21*03f9172cSAndroid Build Coastguard WorkerAll security modes have been verified to work (at least complete
22*03f9172cSAndroid Build Coastguard Workerauthentication and successfully ping a wired host):
23*03f9172cSAndroid Build Coastguard Worker- plaintext
24*03f9172cSAndroid Build Coastguard Worker- static WEP / open system authentication
25*03f9172cSAndroid Build Coastguard Worker- static WEP / shared key authentication
26*03f9172cSAndroid Build Coastguard Worker- IEEE 802.1X with dynamic WEP keys
27*03f9172cSAndroid Build Coastguard Worker- WPA-PSK, TKIP, CCMP, TKIP+CCMP
28*03f9172cSAndroid Build Coastguard Worker- WPA-EAP, TKIP, CCMP, TKIP+CCMP
29*03f9172cSAndroid Build Coastguard Worker- WPA2-PSK, TKIP, CCMP, TKIP+CCMP
30*03f9172cSAndroid Build Coastguard Worker- WPA2-EAP, TKIP, CCMP, TKIP+CCMP
31*03f9172cSAndroid Build Coastguard Worker
32*03f9172cSAndroid Build Coastguard Worker
33*03f9172cSAndroid Build Coastguard WorkerBuilding wpa_supplicant with mingw
34*03f9172cSAndroid Build Coastguard Worker----------------------------------
35*03f9172cSAndroid Build Coastguard Worker
36*03f9172cSAndroid Build Coastguard WorkerThe default build setup for wpa_supplicant is to use MinGW and
37*03f9172cSAndroid Build Coastguard Workercross-compiling from Linux to MinGW/Windows. It should also be
38*03f9172cSAndroid Build Coastguard Workerpossible to build this under Windows using the MinGW tools, but that
39*03f9172cSAndroid Build Coastguard Workeris not tested nor supported and is likely to require some changes to
40*03f9172cSAndroid Build Coastguard Workerthe Makefile unless cygwin is used.
41*03f9172cSAndroid Build Coastguard Worker
42*03f9172cSAndroid Build Coastguard Worker
43*03f9172cSAndroid Build Coastguard WorkerBuilding wpa_supplicant with MSVC
44*03f9172cSAndroid Build Coastguard Worker---------------------------------
45*03f9172cSAndroid Build Coastguard Worker
46*03f9172cSAndroid Build Coastguard Workerwpa_supplicant can be built with Microsoft Visual C++ compiler. This
47*03f9172cSAndroid Build Coastguard Workerhas been tested with Microsoft Visual C++ Toolkit 2003 and Visual
48*03f9172cSAndroid Build Coastguard WorkerStudio 2005 using the included nmake.mak as a Makefile for nmake. IDE
49*03f9172cSAndroid Build Coastguard Workercan also be used by creating a project that includes the files and
50*03f9172cSAndroid Build Coastguard Workerdefines mentioned in nmake.mak. Example VS2005 solution and project
51*03f9172cSAndroid Build Coastguard Workerfiles are included in vs2005 subdirectory. This can be used as a
52*03f9172cSAndroid Build Coastguard Workerstarting point for building the programs with VS2005 IDE. Visual Studio
53*03f9172cSAndroid Build Coastguard Worker2008 Express Edition is also able to use these project files.
54*03f9172cSAndroid Build Coastguard Worker
55*03f9172cSAndroid Build Coastguard WorkerWinPcap development package is needed for the build and this can be
56*03f9172cSAndroid Build Coastguard Workerdownloaded from http://www.winpcap.org/install/bin/WpdPack_4_0_2.zip. The
57*03f9172cSAndroid Build Coastguard Workerdefault nmake.mak expects this to be unpacked into C:\dev\WpdPack so
58*03f9172cSAndroid Build Coastguard Workerthat Include and Lib directories are in this directory. The files can be
59*03f9172cSAndroid Build Coastguard Workerstored elsewhere as long as the WINPCAPDIR in nmake.mak is updated to
60*03f9172cSAndroid Build Coastguard Workermatch with the selected directory. In case a project file in the IDE is
61*03f9172cSAndroid Build Coastguard Workerused, these Include and Lib directories need to be added to project
62*03f9172cSAndroid Build Coastguard Workerproperties as additional include/library directories.
63*03f9172cSAndroid Build Coastguard Worker
64*03f9172cSAndroid Build Coastguard WorkerOpenSSL source package can be downloaded from
65*03f9172cSAndroid Build Coastguard Workerhttp://www.openssl.org/source/openssl-0.9.8i.tar.gz and built and
66*03f9172cSAndroid Build Coastguard Workerinstalled following instructions in INSTALL.W32. Note that if EAP-FAST
67*03f9172cSAndroid Build Coastguard Workersupport will be included in the wpa_supplicant, OpenSSL needs to be
68*03f9172cSAndroid Build Coastguard Workerpatched to# support it openssl-0.9.8i-tls-extensions.patch. The example
69*03f9172cSAndroid Build Coastguard Workernmake.mak file expects OpenSSL to be installed into C:\dev\openssl, but
70*03f9172cSAndroid Build Coastguard Workerthis directory can be modified by changing OPENSSLDIR variable in
71*03f9172cSAndroid Build Coastguard Workernmake.mak.
72*03f9172cSAndroid Build Coastguard Worker
73*03f9172cSAndroid Build Coastguard WorkerIf you do not need EAP-FAST support, you may also be able to use Win32
74*03f9172cSAndroid Build Coastguard Workerbinary installation package of OpenSSL from
75*03f9172cSAndroid Build Coastguard Workerhttp://www.slproweb.com/products/Win32OpenSSL.html instead of building
76*03f9172cSAndroid Build Coastguard Workerthe library yourself. In this case, you will need to copy Include and
77*03f9172cSAndroid Build Coastguard WorkerLib directories in suitable directory, e.g., C:\dev\openssl for the
78*03f9172cSAndroid Build Coastguard Workerdefault nmake.mak. Copy {Win32OpenSSLRoot}\include into
79*03f9172cSAndroid Build Coastguard WorkerC:\dev\openssl\include and make C:\dev\openssl\lib subdirectory with
80*03f9172cSAndroid Build Coastguard Workerfiles from {Win32OpenSSLRoot}\VC (i.e., libeay*.lib and ssleay*.lib).
81*03f9172cSAndroid Build Coastguard WorkerThis will end up using dynamically linked OpenSSL (i.e., .dll files are
82*03f9172cSAndroid Build Coastguard Workerneeded) for it. Alternative, you can copy files from
83*03f9172cSAndroid Build Coastguard Worker{Win32OpenSSLRoot}\VC\static to create a static build (no OpenSSL .dll
84*03f9172cSAndroid Build Coastguard Workerfiles needed).
85*03f9172cSAndroid Build Coastguard Worker
86*03f9172cSAndroid Build Coastguard Worker
87*03f9172cSAndroid Build Coastguard WorkerBuilding wpa_supplicant for cygwin
88*03f9172cSAndroid Build Coastguard Worker----------------------------------
89*03f9172cSAndroid Build Coastguard Worker
90*03f9172cSAndroid Build Coastguard Workerwpa_supplicant can be built for cygwin by installing the needed
91*03f9172cSAndroid Build Coastguard Workerdevelopment packages for cygwin. This includes things like compiler,
92*03f9172cSAndroid Build Coastguard Workermake, openssl development package, etc. In addition, developer's pack
93*03f9172cSAndroid Build Coastguard Workerfor WinPcap (WPdpack.zip) from
94*03f9172cSAndroid Build Coastguard Workerhttp://winpcap.polito.it/install/default.htm is needed.
95*03f9172cSAndroid Build Coastguard Worker
96*03f9172cSAndroid Build Coastguard Worker.config file should enable only one driver interface,
97*03f9172cSAndroid Build Coastguard WorkerCONFIG_DRIVER_NDIS. In addition, include directories may need to be
98*03f9172cSAndroid Build Coastguard Workeradded to match the system. An example configuration is available in
99*03f9172cSAndroid Build Coastguard Workerdefconfig. The library and include files for WinPcap will either need
100*03f9172cSAndroid Build Coastguard Workerto be installed in compiler/linker default directories or their
101*03f9172cSAndroid Build Coastguard Workerlocation will need to be adding to .config when building
102*03f9172cSAndroid Build Coastguard Workerwpa_supplicant.
103*03f9172cSAndroid Build Coastguard Worker
104*03f9172cSAndroid Build Coastguard WorkerOthen than this, the build should be more or less identical to Linux
105*03f9172cSAndroid Build Coastguard Workerversion, i.e., just run make after having created .config file. An
106*03f9172cSAndroid Build Coastguard Workeradditional tool, win_if_list.exe, can be built by running "make
107*03f9172cSAndroid Build Coastguard Workerwin_if_list".
108*03f9172cSAndroid Build Coastguard Worker
109*03f9172cSAndroid Build Coastguard Worker
110*03f9172cSAndroid Build Coastguard WorkerBuilding wpa_gui
111*03f9172cSAndroid Build Coastguard Worker----------------
112*03f9172cSAndroid Build Coastguard Worker
113*03f9172cSAndroid Build Coastguard Workerwpa_gui uses Qt application framework from Trolltech. It can be built
114*03f9172cSAndroid Build Coastguard Workerwith the open source version of Qt4 and MinGW. Following commands can
115*03f9172cSAndroid Build Coastguard Workerbe used to build the binary in the Qt 4 Command Prompt:
116*03f9172cSAndroid Build Coastguard Worker
117*03f9172cSAndroid Build Coastguard Worker# go to the root directory of wpa_supplicant source code
118*03f9172cSAndroid Build Coastguard Workercd wpa_gui-qt4
119*03f9172cSAndroid Build Coastguard Workerqmake -o Makefile wpa_gui.pro
120*03f9172cSAndroid Build Coastguard Workermake
121*03f9172cSAndroid Build Coastguard Worker# the wpa_gui.exe binary is created into 'release' subdirectory
122*03f9172cSAndroid Build Coastguard Worker
123*03f9172cSAndroid Build Coastguard Worker
124*03f9172cSAndroid Build Coastguard WorkerUsing wpa_supplicant for Windows
125*03f9172cSAndroid Build Coastguard Worker--------------------------------
126*03f9172cSAndroid Build Coastguard Worker
127*03f9172cSAndroid Build Coastguard Workerwpa_supplicant, wpa_cli, and wpa_gui behave more or less identically to
128*03f9172cSAndroid Build Coastguard WorkerLinux version, so instructions in README and example wpa_supplicant.conf
129*03f9172cSAndroid Build Coastguard Workershould be applicable for most parts. In addition, there is another
130*03f9172cSAndroid Build Coastguard Workerversion of wpa_supplicant, wpasvc.exe, which can be used as a Windows
131*03f9172cSAndroid Build Coastguard Workerservice and which reads its configuration from registry instead of
132*03f9172cSAndroid Build Coastguard Workertext file.
133*03f9172cSAndroid Build Coastguard Worker
134*03f9172cSAndroid Build Coastguard WorkerWhen using access points in "hidden SSID" mode, ap_scan=2 mode need to
135*03f9172cSAndroid Build Coastguard Workerbe used (see wpa_supplicant.conf for more information).
136*03f9172cSAndroid Build Coastguard Worker
137*03f9172cSAndroid Build Coastguard WorkerWindows NDIS/WinPcap uses quite long interface names, so some care
138*03f9172cSAndroid Build Coastguard Workerwill be needed when starting wpa_supplicant. Alternatively, the
139*03f9172cSAndroid Build Coastguard Workeradapter description can be used as the interface name which may be
140*03f9172cSAndroid Build Coastguard Workereasier since it is usually in more human-readable
141*03f9172cSAndroid Build Coastguard Workerformat. win_if_list.exe can be used to find out the proper interface
142*03f9172cSAndroid Build Coastguard Workername.
143*03f9172cSAndroid Build Coastguard Worker
144*03f9172cSAndroid Build Coastguard WorkerExample steps in starting up wpa_supplicant:
145*03f9172cSAndroid Build Coastguard Worker
146*03f9172cSAndroid Build Coastguard Worker# win_if_list.exe
147*03f9172cSAndroid Build Coastguard Workerifname: \Device\NPF_GenericNdisWanAdapter
148*03f9172cSAndroid Build Coastguard Workerdescription: Generic NdisWan adapter
149*03f9172cSAndroid Build Coastguard Worker
150*03f9172cSAndroid Build Coastguard Workerifname: \Device\NPF_{769E012B-FD17-4935-A5E3-8090C38E25D2}
151*03f9172cSAndroid Build Coastguard Workerdescription: Atheros Wireless Network Adapter (Microsoft's Packet Scheduler)
152*03f9172cSAndroid Build Coastguard Worker
153*03f9172cSAndroid Build Coastguard Workerifname: \Device\NPF_{732546E7-E26C-48E3-9871-7537B020A211}
154*03f9172cSAndroid Build Coastguard Workerdescription: Intel 8255x-based Integrated Fast Ethernet (Microsoft's Packet Scheduler)
155*03f9172cSAndroid Build Coastguard Worker
156*03f9172cSAndroid Build Coastguard Worker
157*03f9172cSAndroid Build Coastguard WorkerSince the example configuration used Atheros WLAN card, the middle one
158*03f9172cSAndroid Build Coastguard Workeris the correct interface in this case. The interface name for -i
159*03f9172cSAndroid Build Coastguard Workercommand line option is the full string following "ifname:" (the
160*03f9172cSAndroid Build Coastguard Worker"\Device\NPF_" prefix can be removed). In other words, wpa_supplicant
161*03f9172cSAndroid Build Coastguard Workerwould be started with the following command:
162*03f9172cSAndroid Build Coastguard Worker
163*03f9172cSAndroid Build Coastguard Worker# wpa_supplicant.exe -i'{769E012B-FD17-4935-A5E3-8090C38E25D2}' -c wpa_supplicant.conf -d
164*03f9172cSAndroid Build Coastguard Worker
165*03f9172cSAndroid Build Coastguard Worker-d optional enables some more debugging (use -dd for even more, if
166*03f9172cSAndroid Build Coastguard Workerneeded). It can be left out if debugging information is not needed.
167*03f9172cSAndroid Build Coastguard Worker
168*03f9172cSAndroid Build Coastguard WorkerWith the alternative mechanism for selecting the interface, this
169*03f9172cSAndroid Build Coastguard Workercommand has identical results in this case:
170*03f9172cSAndroid Build Coastguard Worker
171*03f9172cSAndroid Build Coastguard Worker# wpa_supplicant.exe -iAtheros -c wpa_supplicant.conf -d
172*03f9172cSAndroid Build Coastguard Worker
173*03f9172cSAndroid Build Coastguard Worker
174*03f9172cSAndroid Build Coastguard WorkerSimple configuration example for WPA-PSK:
175*03f9172cSAndroid Build Coastguard Worker
176*03f9172cSAndroid Build Coastguard Worker#ap_scan=2
177*03f9172cSAndroid Build Coastguard Workerctrl_interface=
178*03f9172cSAndroid Build Coastguard Workernetwork={
179*03f9172cSAndroid Build Coastguard Worker	ssid="test"
180*03f9172cSAndroid Build Coastguard Worker	key_mgmt=WPA-PSK
181*03f9172cSAndroid Build Coastguard Worker	proto=WPA
182*03f9172cSAndroid Build Coastguard Worker	pairwise=TKIP
183*03f9172cSAndroid Build Coastguard Worker	psk="secret passphrase"
184*03f9172cSAndroid Build Coastguard Worker}
185*03f9172cSAndroid Build Coastguard Worker
186*03f9172cSAndroid Build Coastguard Worker(remove '#' from the comment out ap_scan line to enable mode in which
187*03f9172cSAndroid Build Coastguard Workerwpa_supplicant tries to associate with the SSID without doing
188*03f9172cSAndroid Build Coastguard Workerscanning; this allows APs with hidden SSIDs to be used)
189*03f9172cSAndroid Build Coastguard Worker
190*03f9172cSAndroid Build Coastguard Worker
191*03f9172cSAndroid Build Coastguard Workerwpa_cli.exe and wpa_gui.exe can be used to interact with the
192*03f9172cSAndroid Build Coastguard Workerwpa_supplicant.exe program in the same way as with Linux. Note that
193*03f9172cSAndroid Build Coastguard Workerctrl_interface is using UNIX domain sockets when built for cygwin, but
194*03f9172cSAndroid Build Coastguard Workerthe native build for Windows uses named pipes and the contents of the
195*03f9172cSAndroid Build Coastguard Workerctrl_interface configuration item is used to control access to the
196*03f9172cSAndroid Build Coastguard Workerinterface. Anyway, this variable has to be included in the configuration
197*03f9172cSAndroid Build Coastguard Workerto enable the control interface.
198*03f9172cSAndroid Build Coastguard Worker
199*03f9172cSAndroid Build Coastguard Worker
200*03f9172cSAndroid Build Coastguard WorkerExample SDDL string formats:
201*03f9172cSAndroid Build Coastguard Worker
202*03f9172cSAndroid Build Coastguard Worker(local admins group has permission, but nobody else):
203*03f9172cSAndroid Build Coastguard Worker
204*03f9172cSAndroid Build Coastguard Workerctrl_interface=SDDL=D:(A;;GA;;;BA)
205*03f9172cSAndroid Build Coastguard Worker
206*03f9172cSAndroid Build Coastguard Worker("A" == "access allowed", "GA" == GENERIC_ALL == all permissions, and
207*03f9172cSAndroid Build Coastguard Worker"BA" == "builtin administrators" == the local admins.  The empty fields
208*03f9172cSAndroid Build Coastguard Workerare for flags and object GUIDs, none of which should be required in this
209*03f9172cSAndroid Build Coastguard Workercase.)
210*03f9172cSAndroid Build Coastguard Worker
211*03f9172cSAndroid Build Coastguard Worker(local admins and the local "power users" group have permissions,
212*03f9172cSAndroid Build Coastguard Workerbut nobody else):
213*03f9172cSAndroid Build Coastguard Worker
214*03f9172cSAndroid Build Coastguard Workerctrl_interface=SDDL=D:(A;;GA;;;BA)(A;;GA;;;PU)
215*03f9172cSAndroid Build Coastguard Worker
216*03f9172cSAndroid Build Coastguard Worker(One ACCESS_ALLOWED ACE for GENERIC_ALL for builtin administrators, and
217*03f9172cSAndroid Build Coastguard Workerone ACCESS_ALLOWED ACE for GENERIC_ALL for power users.)
218*03f9172cSAndroid Build Coastguard Worker
219*03f9172cSAndroid Build Coastguard Worker(close to wide open, but you have to be a valid user on
220*03f9172cSAndroid Build Coastguard Workerthe machine):
221*03f9172cSAndroid Build Coastguard Worker
222*03f9172cSAndroid Build Coastguard Workerctrl_interface=SDDL=D:(A;;GA;;;AU)
223*03f9172cSAndroid Build Coastguard Worker
224*03f9172cSAndroid Build Coastguard Worker(One ACCESS_ALLOWED ACE for GENERIC_ALL for the "authenticated users"
225*03f9172cSAndroid Build Coastguard Workergroup.)
226*03f9172cSAndroid Build Coastguard Worker
227*03f9172cSAndroid Build Coastguard WorkerThis one would allow absolutely everyone (including anonymous
228*03f9172cSAndroid Build Coastguard Workerusers) -- this is *not* recommended, since named pipes can be attached
229*03f9172cSAndroid Build Coastguard Workerto from anywhere on the network (i.e. there's no "this machine only"
230*03f9172cSAndroid Build Coastguard Workerlike there is with 127.0.0.1 sockets):
231*03f9172cSAndroid Build Coastguard Worker
232*03f9172cSAndroid Build Coastguard Workerctrl_interface=SDDL=D:(A;;GA;;;BU)(A;;GA;;;AN)
233*03f9172cSAndroid Build Coastguard Worker
234*03f9172cSAndroid Build Coastguard Worker(BU == "builtin users", "AN" == "anonymous")
235*03f9172cSAndroid Build Coastguard Worker
236*03f9172cSAndroid Build Coastguard WorkerSee also [1] for the format of ACEs, and [2] for the possible strings
237*03f9172cSAndroid Build Coastguard Workerthat can be used for principal names.
238*03f9172cSAndroid Build Coastguard Worker
239*03f9172cSAndroid Build Coastguard Worker[1]
240*03f9172cSAndroid Build Coastguard Workerhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/ace_strings.asp
241*03f9172cSAndroid Build Coastguard Worker[2]
242*03f9172cSAndroid Build Coastguard Workerhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/sid_strings.asp
243*03f9172cSAndroid Build Coastguard Worker
244*03f9172cSAndroid Build Coastguard Worker
245*03f9172cSAndroid Build Coastguard WorkerStarting wpa_supplicant as a Windows service (wpasvc.exe)
246*03f9172cSAndroid Build Coastguard Worker---------------------------------------------------------
247*03f9172cSAndroid Build Coastguard Worker
248*03f9172cSAndroid Build Coastguard Workerwpa_supplicant can be started as a Windows service by using wpasvc.exe
249*03f9172cSAndroid Build Coastguard Workerprogram that is alternative build of wpa_supplicant.exe. Most of the
250*03f9172cSAndroid Build Coastguard Workercore functionality of wpasvc.exe is identical to wpa_supplicant.exe,
251*03f9172cSAndroid Build Coastguard Workerbut it is using Windows registry for configuration information instead
252*03f9172cSAndroid Build Coastguard Workerof a text file and command line parameters. In addition, it can be
253*03f9172cSAndroid Build Coastguard Workerregistered as a service that can be started automatically or manually
254*03f9172cSAndroid Build Coastguard Workerlike any other Windows service.
255*03f9172cSAndroid Build Coastguard Worker
256*03f9172cSAndroid Build Coastguard WorkerThe root of wpa_supplicant configuration in registry is
257*03f9172cSAndroid Build Coastguard WorkerHKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant. This level includes global
258*03f9172cSAndroid Build Coastguard Workerparameters and a 'interfaces' subkey with all the interface configuration
259*03f9172cSAndroid Build Coastguard Worker(adapter to confname mapping). Each such mapping is a subkey that has
260*03f9172cSAndroid Build Coastguard Worker'adapter', 'config', and 'ctrl_interface' values.
261*03f9172cSAndroid Build Coastguard Worker
262*03f9172cSAndroid Build Coastguard WorkerThis program can be run either as a normal command line application,
263*03f9172cSAndroid Build Coastguard Workere.g., for debugging, with 'wpasvc.exe app' or as a Windows service.
264*03f9172cSAndroid Build Coastguard WorkerService need to be registered with 'wpasvc.exe reg <full path to
265*03f9172cSAndroid Build Coastguard Workerwpasvc.exe>'. Alternatively, 'wpasvc.exe reg' can be used to register
266*03f9172cSAndroid Build Coastguard Workerthe service with the current location of wpasvc.exe. After this, wpasvc
267*03f9172cSAndroid Build Coastguard Workercan be started like any other Windows service (e.g., 'net start wpasvc')
268*03f9172cSAndroid Build Coastguard Workeror it can be configured to start automatically through the Services tool
269*03f9172cSAndroid Build Coastguard Workerin administrative tasks. The service can be unregistered with
270*03f9172cSAndroid Build Coastguard Worker'wpasvc.exe unreg'.
271*03f9172cSAndroid Build Coastguard Worker
272*03f9172cSAndroid Build Coastguard WorkerIf the service is set to start during system bootup to make the
273*03f9172cSAndroid Build Coastguard Workernetwork connection available before any user has logged in, there may
274*03f9172cSAndroid Build Coastguard Workerbe a long (half a minute or so) delay in starting up wpa_supplicant
275*03f9172cSAndroid Build Coastguard Workerdue to WinPcap needing a driver called "Network Monitor Driver" which
276*03f9172cSAndroid Build Coastguard Workeris started by default on demand.
277*03f9172cSAndroid Build Coastguard Worker
278*03f9172cSAndroid Build Coastguard WorkerTo speed up wpa_supplicant start during system bootup, "Network
279*03f9172cSAndroid Build Coastguard WorkerMonitor Driver" can be configured to be started sooner by setting its
280*03f9172cSAndroid Build Coastguard Workerstartup type to System instead of the default Demand. To do this, open
281*03f9172cSAndroid Build Coastguard Workerup Device Manager, select Show Hidden Devices, expand the "Non
282*03f9172cSAndroid Build Coastguard WorkerPlug-and-Play devices" branch, double click "Network Monitor Driver",
283*03f9172cSAndroid Build Coastguard Workergo to the Driver tab, and change the Demand setting to System instead.
284*03f9172cSAndroid Build Coastguard Worker
285*03f9172cSAndroid Build Coastguard WorkerConfiguration data is in HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs
286*03f9172cSAndroid Build Coastguard Workerkey. Each configuration profile has its own key under this. In terms of text
287*03f9172cSAndroid Build Coastguard Workerfiles, each profile would map to a separate text file with possibly multiple
288*03f9172cSAndroid Build Coastguard Workernetworks. Under each profile, there is a networks key that lists all
289*03f9172cSAndroid Build Coastguard Workernetworks as a subkey. Each network has set of values in the same way as
290*03f9172cSAndroid Build Coastguard Workernetwork block in the configuration file. In addition, blobs subkey has
291*03f9172cSAndroid Build Coastguard Workerpossible blobs as values.
292*03f9172cSAndroid Build Coastguard Worker
293*03f9172cSAndroid Build Coastguard WorkerHKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant\configs\test\networks\0000
294*03f9172cSAndroid Build Coastguard Worker   ssid="example"
295*03f9172cSAndroid Build Coastguard Worker   key_mgmt=WPA-PSK
296*03f9172cSAndroid Build Coastguard Worker
297*03f9172cSAndroid Build Coastguard WorkerSee win_example.reg for an example on how to setup wpasvc.exe
298*03f9172cSAndroid Build Coastguard Workerparameters in registry. It can also be imported to registry as a
299*03f9172cSAndroid Build Coastguard Workerstarting point for the configuration.
300