[Commotion-dev] other potential approaches to adhoc on Android 4.x

Hans-Christoph Steiner hans at guardianproject.info
Thu Feb 28 19:03:29 UTC 2013


I was checking in with the Google crew about official Adhoc support in
Android, and got this trove of interesting information, which Lucas said I
could forward:

-------- Original Message --------
Subject: Re: Android Ad-Hoc
Date: Thu, 28 Feb 2013 09:24:30 -0800
From: Lucas Dixon <ldixon at google.com>

Hi!
Sorry for the delay in replying. We've had some success at getting adhoc
wifi to work on Android 4.x. here's my notes...

Note that there are several Motorola devices that do ship with working ad-
hoc, and their GUI includes some UX for ad hoc. e.g. Motorola Droid 4. In
the list ofWiFI networks, it lists ad hoc networks with a separate icon.
When clicking "Add Network", there is a tick box that states it is a "Peer
to peer (Ad-hoc) network.". In advanced settings there is an option to
specify the wifi channel for ad hoc networks. We're exploring proposing
this as UX for having ad-hoc wifi more generally supported.

We've ben wondering about virtual interfaces and if they could be used to
allow Ad-Hoc WiFi at the same time as normal wifi-connections. That way a
WiFi hotspot can both act as a P2P node and as an uplink, both on WiFi.
Cool.

Bringing IBSS support to Android (the long standing Issue
82<https://code.google.com/p/android/issues/detail?id=82> and
some old hacks to work around it<http://szym.net/2010/12/adhoc-wifi-in-android/>
):

No changes need to the kernel are necessary for 4.X. It's just a matter of
how the Wifi service talks to wpa_supplicant. Szymon knows all the details.

Some changes to drivers are sometimes needed, e.g.
https://android.googlesource.com/kernel/omap.git/+/96034c20069fe841f4be741755f94671a328702e
This is a change to bcmdhd in cfg80211 for our Galaxy Nexus devices, and
some other devices. Most Nexus devices use bcmdhd (but Nexus 4 is using
something else).

So the change to Android framework is as basic as:
https://android-review.googlesource.com/#/c/43070/
(I think it will be necessary to add |frequency| parameter, because some
drivers refuse to form/join IBSS without that.)

Some drivers explicitly disable IBSS, but that also can be often fixed with
a one line change in the driver module code.

Szymon has been writing some benchmarks for AdHoc, WiFi Direct, and
Bluetooth. Hoping to have some more stats on that in the not too distant
future.

I'll have a chat with the interested people and we'll try and make a plan
to leverage your ability to bring engineering muscle to the problem. :)

Thanks!
lucas


On Thu, Feb 21, 2013 at 2:59 PM, Hans-Christoph Steiner <
hans at guardianproject.info> wrote:

>
> Hey All,
>
> I guess wanted to check in on this issue, since it seems that the situation
> has gotten worse for adhoc in Android 4.x.  If dev resources are an issue,
> I'm
> sure some of us can find time to work on this.
>
> I still believe there is a ton of potential for mesh networking on
> Android, so
> I'd love to help make this happen!
>
> .hc
>
> On 08/02/2012 08:14 PM, Hans-Christoph Steiner wrote:
> >
> > Also, I just realized, it might work without a static IP if there is a
> > working DHCP server on the adhoc network.  For the work I'm doing now,
> > it requires a static IP, so I've only tested the adhoc with a static IP.
> >
> > As for how I did this, its part of the Commotion MeshTether app I'm
> > working on.  Starting at line 361 is the adhoc config stuff.  Szymon,
> > this code should look somewhat familiar to you since this app started as
> > a fork of Barnacle :)
> >
> >
> https://code.commotionwireless.net/projects/commotion-android/repository/revisions/master/entry/src/net/commotionwireless/meshtether/MeshService.java
> >
> > .hc
> >
> > On 08/02/2012 06:59 PM, Szymon Jakubczak wrote:
> >> Hi Hans-Christoph,
> >>
> >> That's some good news! Could you explain how you tested this? Does it
> >> seem to work on all phones with a particular version of Android?
> >>
> >> I've managed to find a Nexus S and build a working image. I'll try to
> >> combine the patch from havlenapetr and see if I can make it create
> >> ad-hoc networks.
> >>
> >> --Szymon
> >>
> >> On Thu, Aug 2, 2012 at 11:29 AM, Hans-Christoph Steiner
> >> <hans at guardianproject.info> wrote:
> >>>
> >>> Hey Lally,
> >>>
> >>> Glad to here of any progress! :)  Sounds good to me.  I've recently
> >>> discovered that Android already supports connecting to Adhoc networks
> >>> with certain conditions:
> >>>
> >>> 1) some other device has created the network
> >>> 2) you know the SSID and/or BSSID of the network
> >>> 3) you set a static IP
> >>>
> >>> Using WifiManager and System.Settings, I can associate to an existing
> >>> adhoc network and use it fine.  This is good to know, since it means
> >>> that we can do some mesh stuff with existing Android installs, but the
> >>> lack of ability to create the adhoc network definitely limits the
> >>> possibilities.
> >>>
> >>> .hc
> >>>
> >>> On 07/31/2012 04:29 PM, Lally Singh wrote:
> >>>> Hi everyone.
> >>>>
> >>>> Sorry for the huge delay.  So, at
> >>>> https://github.com/lally/adhoc-frameworks_base I've got a copy of
> >>>> frameworks_base, ready for us to hack on.  Additionally, I've got a
> PandaBoard
> >>>> ES <http://pandaboard.org/content/platform> to test on.  So, if it's
> >>>> acceptable for everyone, I'm happy to be a guinea pig/tester/worker
> elf for
> >>>> us to get the patches tested, running, cleaned up, and on their way to
> >>>> submission into android proper.
> >>>>
> >>>> So, while I figure out how to get the pandaboard configured over its
> serial
> >>>> link (srsly), shall we start putting the appropriate patches together?
> >>>>
> >>>> Also, if anyone objects to this way of doing things, or has a better
> idea,
> >>>> or suggestions, or comments, by all means, speak up!  I'm just trying
> to
> >>>> get the ball rolling, but I don't want to roll over anyone in the
> process.
> >>>>
> >>>> Cheers,
> >>>> $ ls
> >>>>
> >>>> Lally Singh | Software Engineer |  lally at google.com |  646-707-2716
> >>>>
>



-- 
Lucas Dixon | Google Ideas





More information about the Commotion-dev mailing list