Allow up to 3 seconds for adhoc mode to start (looks like client mode till then if no peers)

Tweak layout and add phone number label

Refactor wifi mode detection and preparation control flow

Ensure all wifi mode changes are listened to

Retry root commands, don’t always run prep on startup

Don’t rerun preparation if unsupported handset.

Improve behaviour of unrooted handsets

Disallow adhoc mode if wifi chipset is re-selected after crashing the phone

Prevent logging of executed processes that are already captured somewhere

Substantial work towards nice integrated preparation wizard that starts up first and does all the detection and unpacking before handing over to the main activity (now called dashboard).

Fixed some bugs with new wizard that handles setup and checking that we have everything we need, and sets the framework for then guiding the user through testing of experimental chipset detections, and ultimately we hope uploading working scripts.

Added wireless-tools to jni build. This provides source for iwconfig, and also gets what we need to produce a fast JNI iwconfig and also add iwconfig() command to edify, which can be used to speed up mode switches by letting us replace the sleep(3) with a function that waits exactly until the wireless interface comes up.

Slight rearrangement of code for handling multiple and non detections of wifi chipset. (Still needs iwconfig JNI before it can be finished)

Progress towards having iwconfig output available from Java for testing wifi mode status.

we can now get the output of iwconfig natively from in the JVM. Next step is to use it to verify effectiveness of mode switches.

fixed some more bugs, now ifconfig and iwconfig output can both be gathered from in java.

Added first step of NaCl native library access functions. Requires latest serval-dna and building of libdnalib to work.

Modified makefile to handle nacl-containing Serval DNA

NaCl native wrapping now reasonably sane, with a single class containing the native functions, and separate classes within that to wrap the calls.

Added experimental support for GT540 handset running CyanogenMod.

Added wrapper for NaCl safe random number source.

Partial de-spaghettied preparation wizard. Also replaced jiggly clock graphics with grey scale pulsing square, except that it doesn’t pulse due to some weird issue with the asynchronous task not really running asynchronously, or at least it seems that way.

Further work on integrating NaCl crypto library.

Updated LG GT540 control scripts using information gained from Android-wifi-tether support for the same.

Imported updates to edify from android-wifi-tether to allow use of load_wifi() and unload_wifi() for generic device control from in edify scripts (so we can make generic.edify.adhoc etc).

Added generic control scripts for new improved edify imported from latest version of android-wifi-tether.

Updated BUILD.txt to actually contain the build instructions for Batphone.

Improved BUILD.txt to automatically work out sdk.dir for local.properties file.

Totally disabled uploading of detection logs to serval server until we build out the very explicit means of asking the user for permission.

Added layout and activity for trying experimental chipsets.

Fixed display of chipset in auto-detect if there are multiple matches. Now says “one of several possibilities”, instead of “Unsupported ….”. Also fixed order of chipset testing to always try non-experimental before experimental, so that in this case we always try the safe options before possibly jamming the kernel with a wrong module load, for example. This also deals with the problem of having stale invented support files laying around on reinstall.

wifi autodetect now informs user if wifi chipset is in a strange state, and asks them to reboot, and then quits batphone completely.

Relaunching batphone after it realises the wifi is in a funny state now reminds the user to reboot their phone. This probably comes up sometimes when it doesn’t need to, because it doesn’t recheck that the wifi is in a funk. But it will do for now.

Improved chipset detection log display to be more meaningful, explicitly show chosen chipset and the capabilities the control script offers.

Changed default SSID to ‘Mesh’, following interoperability agreement with VillageTelco.org.

Made BUILD.txt tolerant of trailing slash at end of path used to find adb.

Fixed a null pointer exception source.

More fixing of null pointer catching.

Added ARP table reading for Serval DNA and asterisk module (but not peer list in java). Phones with screens off in client mode can now be called (although what happens when the arp table entries expire?)

added screen-off detection code to reset wifi , but stimied by bug 146, which prevents us knowing when it should be done.

Adding commandline front end for libiwstatus for debugging.

Fixed wrapper function wrong function. Something is still not right, though, as it doesn’t show any output.

Delete attempt files when redetecting WiFi.

Fixed typo that prevented this script from being usable.

Made experimental for now, since we need to update edify to work with it.

Added fancy dlsym() code to access libhardware_legacy if it is available.

updated to also rebuild adhoc/edify interpretor binary.

Changed default SSID from ServalProject.org to Mesh in line with interoperability accord wth VillageTelco.org.

Generic chipset control script now works with updated adhoc/edify binary. But detection on installation is wonky for it.. Timing issue?

remarked generic experimental, because we want it to be used only if there is no dedicated script, as the dedicated scripts can make sure there is no packet filter nonsense going on, where as the wifi_driver_load() function will enable such silliness, and cause things like no reception of broadcast packets when the screen turns off.

attempted fixes and debugging for iwconfig jni bridge (looks like it might need root to run reliably, so will probably switch to using iwconfig from the command line instead).

Changed wifi modal management to fix some null pointer issues and use the command line iwconfig command to read current wifi mode instead of using the iwstatus jni library we made, because it looks like that the iwconfig/iwstatus code might need root access to work reliabily/properly.