Its been long since last update.
Here I present a pre-alpha of the android application along with the
changes required in fred. It presently supports bluetooth and wifi-direct
based reference exchanges.

The code for the server on home node is more or less unchanged from the
previous update and the main changes are on the android part. Some of them
pertain to

UI and code structure: The UI had to be changed completely in order to
support old versions of android. Presently, the main thread serves as the
UIThread and it has a handler. Any other thread which wishes to change the
UI sends a message to this handler and the UI is updated. There are some
concurrency issues left out but these are rare cases (for example, a new
node - other than homenode is detected on our LAN  while we are exchanging
noderefs with a friend) and some work is left on this front. Other than
these, UI issues are fixed.

Bluetooth: I had to face various compatibility issues, especially on old
android devices (<= android 2.1-Froyo). These devices cannot connect with
newer devices in the way they are meant to  i.e. as described is Android
SDK documentation. Following suit from
http://stackoverflow.com/questions/3397071/service-discovery-failed-exception-using-bluetooth-on-android,
I had to use java reflections to grab a bluetooth channel and force
connect. Note that this isn't so insecure as it sounds because any
bluetooth connection requires initial pairing. Alternatively, we can only
support devices > android 2.1.

General Incompatibility Issues: For example, android ships Bouncy Castle in
its packages but doesn't pack any one version completely.  We cannot build
along with the official bcprov...jar because it gives rise to class
conflicts with pre-shipped versions. The most used solution is to use
spongy castle (modified bouncy castle) but I used jarjar to rename the
classes and ended doing the same as what spongy castle does.

Several such compatibility issues cropped up and delayed my project and I
am determined to keep it up and complete in time frame

To be implemented:
#1 QR based exchange -  This should be for mobiles which couldn't use any
other methods because of lack of hardware / any issues
#2 Exchange over internet :
Some discussion is needed in this respect but in general, public keys (DH)
are exchanged by QR and the actual noderef is sent over internet (email?).
This would be received by other mobile/ node(?)

To try out the app:
Build using Eclipse + Android SDK or ant + Android SDK from source
https://github.com/NiteshBharadwaj/Freenet or alternatively, could be
downloaded form
http://www.mediafire.com/download/8h6889jtqpott5v/Freenet.apk

Also, the modified fred and modified mdns-plugin need to be forked and
built from https://github.com/freenet/fred-staging and
https://github.com/NiteshBharadwaj/plugin-MDNSDiscovery-official
_______________________________________________
Devl mailing list
[email protected]
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to