So I am making some good progress on the WifiSpoof update, and it is a pretty big update and incorporates some really nice features. (i think).
The new update is sandboxed, and now includes a privileged helper app, so there is no more messing around with storing system passwords in the keychain. You will need to still authorise the helper for WiFiSpoof to be able to do its job, but this will only be a one time occurrence.
WiFiSpoof will finally gain rule support, giving you the ability to totally customise your browsing experience. There will be support for performing different actions when connected to different networks. Say for example you want to use you in-built Mac Address when connected to your home network, at your local cafe you want to randomise every 15mins, and at work you need to use another specific Mac Address – stating in v3.0 this will all be totally possible.
check out the screenshots for a better idea of how rules are generated and managed.
Still to do
I have finished rule generation and management, but currently the rules aren’t read or acted on by WiFiSpoof yet… I also still need to add an indicator to the main interface to show the active rule status. I imagine both of these to be relatively easy tasks…. lets hope my hunch is correct.
On a side note, the most difficult problems I’ve faced in my progress so far were with getting the privileged helper installed and activated, and with making sure that all rules, favourite addresses and favourite networks all had unique names!
The privileged helper code does have a lot of examples around the internet of how to set it up, but all missed out at least one key task… I was banging my head against the wall for days trying to get all the code signing, and build settings just right. Now thats its working though, it makes installing and using WiFiSpoof much more secure and pleasant.
Also maybe of interest for some, the Rules are saved and accessed via core-data. I was initially turned off from using core data as I thought it looked too complicated… but it turns out, core data was a huge time saver, and actually pretty easy to implement.