3 <title>Wifi Jail Breakout Assistant</title>
6 .screenshot { width: 400px; }
7 dd { margin-bottom: 1em; }
8 #roadmap li.done { text-decoration: line-through }
9 .cli { margin-left: 3em; }
14 <div style='height: 64px'>
15 <img style='float: left' src='gfx/wifi-assistant-64.png' alt="Wifi Assistant's Application Icon" />
16 <h1>Wifi Jail Breakout Assistant</h1>
26 This application aims to help make life easier when connecting your Nokia N900 to wifi networks (WLAN) that
27 requires you to visit a captive portal (login) page before you can access the Internet.
32 I got tired of not being able to connect easily to networks guarded by a login page, so I created this app to scratch that itch.
33 Nokia doesn't supply this feature and when asked for, it's out of scope for the N900.
40 <h2>How it works and Screenshots</h2>
41 <h3>Connected to network</h3>
43 When you're connected to a "new" network, you get this popup which asks you if you want to launch a browser.
44 Simply press Yes or No to open a new browser window.
45 The next time you connect to that network, the same action will be take (open or not open a browser window),
46 unless you untick the "Remember this decision" checkbox. (You'd get the same popup each time instead.)
47 <div><img class='screenshot' src='gfx/screenshot-popup.jpg' /></div>
50 <h3>Network Settings</h3>
52 If you fire up the configuration/settings GUI (it's called Wifi Assistant and the icon looks like the one at the top this page)
53 you get a list of all the networks we've used and whether to launch a browser or not.
54 You can change the settings by tapping the line you want to change.
55 <div><img class='screenshot' src='gfx/screenshot-launch-list.png' /></div>
56 <div><img class='screenshot' src='gfx/screenshot-launch-settings.png' /></div>
59 <h3>Daemon Settings</h3>
61 You can turn the daemon off (kind of) so that it won't show popups. It'll still open a new browser window when you connect to
62 networks where you've selected "Yes" previously.
63 <div><img class='screenshot' src='gfx/screenshot-daemon-settings.png' /></div>
69 <h2>Download and Install</h2>
71 Get the debian package file (wifi-assistant_X.X.X_all.deb) from
72 <a href="http://maemo.org/packages/view/wifi-assistant/">the Maemo.org packages site</a>
73 If you download the file using your browser, the application manager will start and you'll be asked to install the pacakge.
76 Eventually you'll be able to download Wifi Assistant from the Extras repository, provided by Nokia/Maemo.
79 If you want to use the terminal, the commands are (requires root shell (rootsh) and wget):
83 # dpkg -i wifi-assistant_latest.deb
89 You could also get the latest version from
90 <a href="https://garage.maemo.org/projects/wifi-assistant">this projects' garage (home)</a>.
91 This is where I put the packages I test myself. It should not differ at all from the ones
92 built by the Maemo build site.
100 <li class='done'>Daemon that launches browser</li>
101 <li class='done'>GUI app where you can change settings</li>
102 <li>Add and remove settings</li>
103 <li>Handles SSID/Network names with spaces in them</li>
104 <li>Upload wifi-assistant to Extras, put up a note on maemo.org forum</li>
105 <li>Ability to specify URL to launch, per SSID/Network name</li>
106 <li>Detect if the net is locked down or not
107 (useful for networks which gives you one day access - you only want the browser launched once per day)</li>
108 <li>Have the network settings sorted alphabetically</li>
111 <li>Let the GUI app launch daemon if it's not running</li>
112 <li>Change listenting to changes in gconf to using dbus</li>
115 <li>Implement Ideas (below)</li>
123 Comes included from the start ...
126 There's no grand bug tracking system setup for this project. If the application doesn't work as expected,
127 feel free to send me an e-mail, or post a message in
128 <a href="https://garage.maemo.org/forum/forum.php?forum_id=6070">the forum</a>
129 here at garage.maemo.org.
132 The only real "bug" right now is that network names with spaces in them aren't handled properly (they can't be part of a gconf key).
140 Is available, get it with <code>git clone https://vcs.maemo.org/git/wifi-assistant</code> or
141 <a href="https://garage.maemo.org/plugins/ggit/browse.php/?p=wifi-assistant">you could browse it online</a>.
142 There's more info at the <a href="https://garage.maemo.org/scm/?group_id=1777">SCM page</a>.
150 This application is free to use, inspect, adapt and share, licensed under a BSD type license.
158 To Lisa, Anton and Leia who support me (kind of) while I'm up late etc.
161 A big thanks to Andrew Flegg (Jaffa) - the build files for this application are extremely similar
162 to those used for the excellent anti-blue man syndrome application
163 <a href='http://hermes.garage.maemo.org/'>Hermes</a>.
170 <div style='margin-right: 1em; float: left'>
171 <script type="text/javascript">
172 var flattr_url = 'http://wifi-assistant.garage.maemo.org';
174 <script src="http://api.flattr.com/button/load.js" type="text/javascript"></script>
176 <div style='margin-right: 1em; float: left'>
177 <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
178 <input type="hidden" name="cmd" value="_s-xclick">
179 <input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
181 <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
182 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
187 You could either simply donate to PayPal, or Flattr this project - either way: thanks for your support!
196 <dt>Detect login page when connected to new network</dt>
197 <dd>This is fairly easy to do - simply make a HTTP HEAD request for a known static resource on the web.
198 If you get anything but a HTTP 200 in return, that network has a captive portal (or the connection was lost etc).</dd>
200 <dt>Detect URL needed to autologin</dt>
201 <dd>The best idea I have right now is to setup a local proxy. The way to operate this would be to:
203 <li>"Open browser and record URLs" button clicked</li>
204 <li>a HTTP proxy is setup, the browser is setup to use that proxy</li>
205 <li>browser is launched</li>
206 <li>user logs in at the portal page</li>
207 <li>user switches to Wifi Assistant, clicks "Turn off URL recording"</li>
208 <li>proxy is shut down, browser (system) settings reverted to previous settings</li>
209 <li>user looks at list of recorded URLs</li>
210 <li>user selects URL to use when being connected to this network next time</li>
215 <h2>More Screenshots</h2>
217 <p>These are not really needed to explain how the program works.</p>
219 <div><img class='screenshot' src='gfx/screenshot-menu.png' /></div>
220 <div><img class='screenshot' src='gfx/screenshot-delete.png' /></div>
221 <div><img class='screenshot' src='gfx/screenshot-launch-settings-empty.png' /></div>
222 <div><img class='screenshot' src='gfx/screenshot-about.png' /></div>