Discussion:
information required to replace Maemo5 wlan bits
Jonathan Wilson
2012-07-19 20:13:05 UTC
Permalink
Here is the information on the things you need to know
about/provide/use/etc in order to replace the Maemo5 ICD WLAN plugin with
something better (e.g. based on wpa-supplicant) and have every other
package on the stock install continue to work properly.
You will need to replace the following packages (and update the ICD2
configs accordingly)
osso-wlan
osso-wlan-security
libicd-network-wlan
libicd-network-wps
libicd-network-eap
and possibly icd2-network-wlan-config

You may need to send the following dbus messages
com.nokia.icd_ui.show_private_key_passwd_dlg
com.nokia.icd_ui.show_gtc_dlg
com.nokia.icd_ui.show_server_cert_dlg
com.nokia.icd_ui.show_mschap_change_dlg
com.nokia.icd_ui.show_passwd_dlg

You may need to add handlers for the following dbus signals:
com.nokia.icd_ui.passwd
com.nokia.icd_ui.mschap_change
com.nokia.icd_ui.gtc_response
com.nokia.icd_ui.private_key_passwd
com.nokia.icd_ui.server_cert
com.nokia.wps_ui.method_sig

You will need to respond to the following dbus messages:
com.nokia.wlancond.request

You will need to signal on the following dbus signals:
com.nokia.wlancond.signal.scan_results
com.nokia.eap.signal.wps_success

You may need to read files from /usr/share/sub-ca-certificates
You may need to use maemosec libraries and other things to read certificates

And you will probably need to read or write the following gconf keys (In
particular note that type and wlan_security need to be set to match stock
Maemo. Some keys will need to be read, some will need to be written to,
some will need to be both read and written to. This list is all the
relevant gconf keys referenced by both the packages being replaced and by
other packages on the system. The %s is replaced with the IAP name,
whatever that might be.)
/system/osso/connectivity/IAP/wlan_tx_power
/system/osso/connectivity/IAP/%s/type
/system/osso/connectivity/IAP/%s/wlan_security
/system/osso/connectivity/IAP/%s/wlan_ssid
/system/osso/connectivity/IAP/%s/wlan_wepdefkey
/system/osso/connectivity/IAP/%s/wlan_wepkey1
/system/osso/connectivity/IAP/%s/wlan_wepkey2
/system/osso/connectivity/IAP/%s/wlan_wepkey3
/system/osso/connectivity/IAP/%s/wlan_wepkey4
/system/osso/connectivity/IAP/%s/nai
/system/osso/connectivity/IAP/%s/temporary
/system/osso/connectivity/IAP/%s/wlan_hidden
/system/osso/connectivity/IAP/%s/EAP_wpa2_only_mode
/system/osso/connectivity/IAP/%s/powersave_after_scan
/system/osso/connectivity/IAP/%s/wlan_powersave
/system/osso/connectivity/IAP/%s/wlan_adhoc_channel
/system/osso/connectivity/IAP/%s/EAP_TLS_PEAP_client_certificate_file
/system/osso/connectivity/IAP/%s/EAP_default_type
/system/osso/connectivity/IAP/%s/EAP_wpa_preshared_passphrase
/system/osso/connectivity/IAP/%s/PEAP_tunneled_eap_type
/system/osso/connectivity/IAP/%s/EAP_MSCHAPV2_username
/system/osso/connectivity/IAP/%s/EAP_MSCHAPV2_password
/system/osso/connectivity/IAP/%s/EAP_GTC_identity
/system/osso/connectivity/IAP/%s/EAP_wpa_preshared_key
/system/osso/connectivity/IAP/%s/EAP_SIMPLE_CONFIG_device_password
/system/osso/connectivity/IAP/%s/EAP_MSCHAPV2_password_prompt
/system/osso/connectivity/IAP/%s/EAP_manual_username
/system/osso/connectivity/IAP/%s/EAP_use_manual_username
/system/osso/connectivity/IAP/%s/TLS_server_authenticates_client_policy_in_client


Combining this information with e.g. libicd-network-wpa could allow a
proper open-source drop-in replacement for the WiFi infrastructure on
Maemo5 Fremantle (for e.g. CSSU) that will automatically pick up all your
existing WiFi networks. No I dont have time to actually write any code for
this.
Anderson Lizardo
2012-07-23 10:56:34 UTC
Permalink
Hi, Jonathan,
Here is the information on the things you need to know about/provide/use/etc
in order to replace the Maemo5 ICD WLAN plugin with something better (e.g.
based on wpa-supplicant) and have every other package on the stock install
continue to work properly.
[snip]
Just to let you know, that IMHO the analysis and information you are
collecting are even more important than rewriting the proprietary
components. It helps both understanding the inner workings of the
system (what about writing a "Maemo 5 Internals" document for the
proprietary parts? :)) and help people interacting with these
components, customizing them (e.g. binary patching) or replacing them
when necessary.

Anyway, I appreciate reading these RE analysis, even though I'm not
actively using my N900 (now playing with N9). Maybe it could be added
to some wiki section as well?

Best Regards,
--
Anderson Lizardo
Jonathan Wilson
2012-07-23 13:27:15 UTC
Permalink
I'm not sure what would be the point of replacing the proprietary WLAN bits.
1.Ability to support WiFi security mechanisms that the stock bits dont support
2.Support for assigning higher priorities to different wireless networks
(i.e. if you move into range of a higher-priority network than the one you
are on, it will join to that)

Probably other things too.
Jamie Thompson
2012-07-25 11:05:21 UTC
Permalink
Post by Anderson Lizardo
Just to let you know, that IMHO the analysis and information you are
collecting are even more important than rewriting the proprietary
components. It helps both understanding the inner workings of the
system (what about writing a "Maemo 5 Internals" document for the
proprietary parts? :)) and help people interacting with these
components, customizing them (e.g. binary patching) or replacing them
when necessary.
Anyway, I appreciate reading these RE analysis, even though I'm not
actively using my N900 (now playing with N9). Maybe it could be added
to some wiki section as well?
Agreed, I am also immensely grateful for all the reverse-engineering
that goes on. One day I'll finally get around to reimplementing the
conversations and address books ;)

I also think the wiki is far more visible long-term than the mailing
list archive (though it's good to have it in more than one place), so
putting things there would be great. The mailing list is obviously far
better for drawing attention to it though (as is posting to TMO, as you
have been).
Post by Anderson Lizardo
I'm not sure what would be the point of replacing the proprietary
WLAN bits.
1.Ability to support WiFi security mechanisms that the stock bits
dont support
2.Support for assigning higher priorities to different wireless
networks
(i.e. if you move into range of a higher-priority network than the
one you
are on, it will join to that)
Probably other things too.
The particular reason I briefly looked at this a while back was to be
able to have WiFi and cellular active at the same time without having to
run a hotspot application (i.e. the WiFi as a client to my existing
wireless network, not a new AP). In my case, I just wanted to be able to
SSH to my phone over WiFi whilst it was sharing it's cellular signal
over PC-Suite/Unix-mode USB. In the end I set the N900 up as a router
and switched to Windows-mode USB networking, but it would be nice and
much simpler to just use it as I originally intended (not to mention, I
can't seem to get PC-Suite mode to work again afterwards without a
reboot).

- Jamie
Pali Rohár
2012-12-01 12:27:42 UTC
Permalink
Post by Jonathan Wilson
/system/osso/connectivity/IAP/wlan_tx_power
/system/osso/connectivity/IAP/%s/type
/system/osso/connectivity/IAP/%s/wlan_security
/system/osso/connectivity/IAP/%s/wlan_ssid
/system/osso/connectivity/IAP/%s/wlan_wepdefkey
/system/osso/connectivity/IAP/%s/wlan_wepkey1
/system/osso/connectivity/IAP/%s/wlan_wepkey2
/system/osso/connectivity/IAP/%s/wlan_wepkey3
/system/osso/connectivity/IAP/%s/wlan_wepkey4
/system/osso/connectivity/IAP/%s/nai
/system/osso/connectivity/IAP/%s/temporary
/system/osso/connectivity/IAP/%s/wlan_hidden
/system/osso/connectivity/IAP/%s/EAP_wpa2_only_mode
/system/osso/connectivity/IAP/%s/powersave_after_scan
/system/osso/connectivity/IAP/%s/wlan_powersave
/system/osso/connectivity/IAP/%s/wlan_adhoc_channel
/system/osso/connectivity/IAP/%s/EAP_TLS_PEAP_client_certificat
e_file
/system/osso/connectivity/IAP/%s/EAP_default_type
/system/osso/connectivity/IAP/%s/EAP_wpa_preshared_passphrase
/system/osso/connectivity/IAP/%s/PEAP_tunneled_eap_type
/system/osso/connectivity/IAP/%s/EAP_MSCHAPV2_username
/system/osso/connectivity/IAP/%s/EAP_MSCHAPV2_password
/system/osso/connectivity/IAP/%s/EAP_GTC_identity
/system/osso/connectivity/IAP/%s/EAP_wpa_preshared_key
/system/osso/connectivity/IAP/%s/EAP_SIMPLE_CONFIG_device_passw
ord
/system/osso/connectivity/IAP/%s/EAP_MSCHAPV2_password_prompt
/system/osso/connectivity/IAP/%s/EAP_manual_username
/system/osso/connectivity/IAP/%s/EAP_use_manual_username
/system/osso/connectivity/IAP/%s/TLS_server_authenticates_clien
t_policy_in_client
If you want to specify password for EAP_GTC_identity store it to:

/system/osso/connectivity/IAP/%s/EAP_GTC_passcode
--
Pali Rohár
***@gmail.com
Loading...