There is another option that I believe works on all Android platforms.
At least the drivers exist. Unfortunately I have not found a standard
mechanism to enable it operation.
All Android platforms that I have encountered include g_ether.ko. This
is a gadget ethernet kernel module which may be used for network
communications over USB. The problem is that this conflicts with
g_android.ko, since they both want to own the USB interface.
If you have the ability to modify init.rc then you can:
1. Start adb to listen to a TCP port. This attaches adb to the wifi
interface, freeing up USB
2. Then you can load g_ether.ko and use standard Java networking
methods
If anyone knows how to do this without modifying the Android platform,
please let share....