OK, I think I found a workaround for the “ever-changing MAC causes password prompts every time” issue.
Following the guide at connman docs, create a file named wifiprovisioned.config ("file names must not include other
characters than letters or numbers and must have a .config") which looks like below, and configure your most-used wifi networks there.
(Keys and SSIDs have been randomized, don’t bother noting them, and use your own values!)
[global]
Name=fixed_wifi
Description=static wifi config
[service_wifi_home]
Type=wifi
Favorite=true
AutoConnect=true
IPv4=192.168.0.22/28/192.168.0.1
IPv6=auto
IPv6.Privacy=disabled
Nameservers=192.168.0.1,192.168.0.100
Timeservers=ntp.pool.example.org,192.168.0.1
Domain=home.example.org
SearchDomains=home.example.org,fritz.box,local
Name=FRITZ!Box 7530 HK
SSID=229bc7170f8b403e8ceed1ea985e785f
Security=psk
Passphrase=2305435141612020574
[service_wifi_x10_hotspot]
Type=wifi
Favorite=true
AutoConnect=true
Name=Xperia10
SSID=17807446523704338
Passphrase=2698e0ae
IPv4=dhcp
IPv6=auto
IPv6.Privacy=disabled
[service_wifi_iphone]
Type=wifi
Favorite=true
AutoConnect=true
Name=iPhone
SSID=2698e0ae3cbb
Passphrase=4hKm-oCUt-cnka-uaA
IPv4=dhcp
IPv6=auto
IPv6.Privacy=disabled
You can take some of the values from existing configs at $CONNMANDIR/wifi_AAAAAAAAAAAAA_BBBBBBBBBBBBB_managed_psk/settings files, but note that not all keywords are the same! Especially not the use of semicolons (settings) versus commas (this config) for multi-value keys.
Now place them in the connman config directory.
Depending on SFOS release, this can be either one of
/var/lib/connman/home/.system/var/lib/connman-
/home/$DEFAULTUSER/.local/share/system/privileged/connman.
For my tablet which is currently on 4.4, the latter seems to work OK.
Possibly /etc/connman/foo.conf can also work, I haven’t tried.
Note that the file contains “plain text” passwords and things, so make sure you set permissions 0600 root:root. One might even do 0400 and chattr +i to be sure it stays put.
It’s quite possible that the SFOS Setting UI option of “Add network manually” does much of the same thing, but I haven’t tried that either.