Wl1251-cal
(New page: rough pseudocode for what wl1251-cal seems to be doing: wl1251str *handle = libwl1251_init("wlan0",0); send dbus message "com.nokia.phone.net" "/com/nokia/phone/net" "Phone.Net" "get_regis...) |
|||
Line 1: | Line 1: | ||
+ | <pre> | ||
rough pseudocode for what wl1251-cal seems to be doing: | rough pseudocode for what wl1251-cal seems to be doing: | ||
wl1251str *handle = libwl1251_init("wlan0",0); | wl1251str *handle = libwl1251_init("wlan0",0); | ||
Line 41: | Line 42: | ||
libwl1251_nvs_push simply loads the nvs data to the card. | libwl1251_nvs_push simply loads the nvs data to the card. | ||
not sure whether anything special is done by libwl1251_init | not sure whether anything special is done by libwl1251_init | ||
+ | </pre> |
Latest revision as of 18:19, 30 January 2011
rough pseudocode for what wl1251-cal seems to be doing: wl1251str *handle = libwl1251_init("wlan0",0); send dbus message "com.nokia.phone.net" "/com/nokia/phone/net" "Phone.Net" "get_registration_status" set country code to uint32 argument 5 of dbus message wlan-tx-cost3_0 cal data is the nvs data default nvs data is in /lib/firmware/wl1251-nvs.bin flag in r9 controls special change to nvs data. If there is a dbus error/problem or if country code is 0, r9 is set to 2 if country code is obtained then it checks for FCC country (302, 310, 311, 316, 312, 313, 314, 315, 332, 466, 724, 722, 334, 732) and if so, sets r9 to 2 else it sets r9 to 1 If r9 is not set to 1, nvs data is changed as follows: nvsdata[151] = 2 nvsdata[154] = 9 nvsdata[179] = 2 nvsdata[17C] = 9 nvs data is sent via libwl1251_nvs_push(handle,nvsdata+4,0x2F0) //return value <= 0 indicates error) after nvs stuff this is done dbus message is sent "com.nokia.SystemInfo" "/com/nokia/SystemInfo" "com.nokia.SystemInfo" "GetConfigValue" with argument passed in "/certs/npc/esn/wlan_id" Also able to read wlan mac address from cal by reading wlan-mac Then it uses SIOCSIFHWADDR ioctl to set MAC address. next, if r9 is 1, set r10 to "EU" else set r10 to "US" Then its calling nl functions and sending a command (via genlmsg_put) with message 27. "nl80211" is passed to genl_ctrl_search_by_name and then genl_family_get_id to obtain family ID. Flags, seq, hdrlen and version parameters for genlmsg_put are all zero. pid comes from getpid. Its calling nla_put(33,3,r10) before it sends the message Its registering some callbacks via nl_cb_err and nl_cb_set It then appears to loop around with a nl_recvmsgs call in the middle waiting for a callback to trip. none of the 3 handlers seem to be doing anything specifically fancy. After the nl_recvmsgs loop finishes, the function ends. libwl1251_nvs_push simply loads the nvs data to the card. not sure whether anything special is done by libwl1251_init
- This page was last modified on 30 January 2011, at 18:19.
- This page has been accessed 4,549 times.