[Replicant] RepWifi: low-level, long-lived solution, Was: [PATCH v2] Fix "RepWifi connection not correctly reported to userspace apps" Issue #1792.
Denis 'GNUtoo' Carikli
GNUtoo at no-log.org
Mon Sep 4 19:57:40 UTC 2017
On Sat, 05 Aug 2017 01:17:57 +0200
Fil <fil.bergamo at riseup.net> wrote:
> + // TODO RepWifi extension. Remove when a low-level,
> long-lived solution is found.
Hi,
Background information:
-----------------------
As I understand about RepWifi:
- RepWifi is an Android application that, probably as root, connects to
the WiFi network
- The patch "Fix "RepWifi connection not correctly reported to
userspace apps" Issue #1792." makes the framework handle the
connection reporting to applications interacting with it.
As I understand about Android architecture:
- Most/all Devices supported by Replicant 6.0 do use Linux kenrels with
very heavy modifications inherited from the device or chips vendors
(SOCs, WiFi chips, and so on).
Such kernels often contains a corresponding WiFi driver that is
written with portability and time to market in mind, allowing the
WiFi chip vendor to respectively have a driver that can work across
different operating system, and to be able to sell the respective
chip soon enough.
The downside of such approach, beside code quality, is that such
drivers often do not only implement the standard userspace<->kernel
API/ABI, and because of that they also need some code that is outside
of such standard.
This is where the Android framework comes into the picture: it
abstract that to the system and indirectly the applications.
Thoughts and questions:
-----------------------
I guess it shouldn't be too hard to have the standard WiFi drivers
supported somehow either by writing a framework library for standard
WiFi driver or by using one that already exist and enabling it.
This leaves us with the question on how to handle multiple WiFi
interfaces.
I didn't look into the details on how the framework handles it. Does
someone knows its limitation in this area?
If the Android framework or default graphical user interface doesn't
support nor expect to have several WiFi interfaces at the same time, a
solution would be to have only one at the same time.
This would require:
- To be able to switch between several interfaces. Again here I don't
know the limitations of the framework, I hope it can be done without
having to restart the whole phone. I also wonder if it can deal with
no WiFi interface and then an interface that appears.
- To be able to automatically trigger such switch.
Several of the schemes below or any combination of them could be used
to do that:
- By using busybox's mdev[1] and some mdev scripts, to react to the
insertion of an USB WiFi dongle.
- By detecting the absence of non-free firmware (their patch are
probably hardcoded in the WiFi drivers) and switching to the
generic WiFi framework library.
References:
-----------
[1]Busybox udev's replacement. The idea of using busybox mdev is that
it's self contained, and busybox is widely used on Android, even if
it isn't shipped by default on all Android distributions.
Denis.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://lists.osuosl.org/pipermail/replicant/attachments/20170904/79941056/attachment.asc>
More information about the Replicant
mailing list