News for hackers. Stuff that matters.
Re:Show HN: Print a WiFi Login Card by seesawtron on Sunday May 31, 2020 @03:41PM (#23372066)
Yes I saw, that is what the QR code contains (username and password of the WIFI). But I do not understand what my phone does when it sees that. There are tons of dubmbed-down articles on "how-to" instructions but none explaining the backend stuff happening on my phone's side.

Also found qifi.org that does a similar thing.

Re:Show HN: Print a WiFi Login Card by daveevad on Sunday May 31, 2020 @04:09PM (#23372283)
it sounds to me like it's a custom url scheme built into ios.

https://developer.apple.com/documentation/uikit/inter-proces...

Re:Show HN: Print a WiFi Login Card by kevin_thibedeau on Sunday May 31, 2020 @04:38PM (#23372521)
It's vCard, not URL.
Re:Show HN: Print a WiFi Login Card by est31 on Sunday May 31, 2020 @04:12PM (#23372303)
The Zxing barcode scanner app does it this way: This [0] is the dispatch code. If it detects WIFI as type, it passes it to a WifiConfigManager [1] which then talks to Android's WifiManager API. On the back end, the addOrUpdateNetwork function of WifiManager [3] calls the method with the same name of IWifiManager [4]. That class has a channel to a WifiStateMachine [5] which sends a message with the command CMD_ADD_OR_UPDATE_NETWORK. It's handled in the same file (but I suppose it's in a different process, now a privileged system process), and calls the addOrUpdateNetwork function of WifiConfigStore [6].

The WifiConfigStore stores its config into a wpa_supplicant compatible file. The file is then passed to the wpa_supplicant service, which is also present on other Linux distros like the GNU/Linux ones, although here the config file is built by a dedicated NetworkManager service (also, some intel folks are building a replacement IIRC). wpa_supplicant is a privileged service that talks to the WiFi card drivers.

[0]: https://github.com/zxing/zxing/blob/0cf3b9be71680f50c90a71ca...

[1]: https://github.com/zxing/zxing/blob/0b9b39a74fb3d7b010fb2979...

[2]: https://developer.android.com/reference/android/net/wifi/Wif...

[3]: https://android.googlesource.com/platform/frameworks/base/+/...

[4]: https://android.googlesource.com/platform/frameworks/opt/net...

[5]: https://android.googlesource.com/platform/frameworks/base/+/...

[6]: https://android.googlesource.com/platform/frameworks/opt/net...