This is a pressing issue and there are various arguments for and against this concept. In my opinion the kind of progress MPTCP is making and the fact that their effort is backed by biggies like Intel, Google and Nokia, the day when MP will be officially supported is not far.
Currently Android supports only usage of one default interface at a time. It has a defined priority list based on which it turns OFF interfaces with lesser priorities. One general solution to this issue is to locate where in Android's source code is the logic to ensure single interface is turned ON. This approach was provided by Mobisocial Research group. After reading response from the people who tried this approach, I concluded that it is confusing to start with and may not always work. Also such a solution will affect data packets of all applications, which is not always desired.
Another alternate is to use an approach similar to Android WiFi Tether , in which tethered phone uses its internet connection through 3G/4G interface and serves as AP to associated client (infrastructure mode). I designed a solution which simplifies the methodology used for WiFi Tether to enable concurrent usage of both 3G/4G and wifi interface. Such a solution will enable usage of multiple interfaces for specific applications. This gives us better control of things, which is usually desired. Also approach is simple to follow (I think so).
Tested on HTC Evo3D (rooted) and Ubuntu (10.04 & 11.04).
WLAN interface for this device was eth0
AP to connect had essid='TEST_AG'
login to the shell of ur phone:
request root access:
Make sure your 3G/4G interface are turned on before you carry out these steps.
If WiFi is turned ON:
184.108.40.206 dev rmnet0 scope link
220.127.116.11/30 dev rmnet0 proto kernel scope link src 18.104.22.168
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.108
default via 22.214.171.124 dev rmnet0
default via 192.168.1.1 dev eth0
Most of the time this routing table update will be automatically done. In case it does not looks familiar or u are not able to ping desired network gateway, follow this link.
Test your connection:
Above Routing table uses source routing which ensures that packets from different sources are routed on different interfaces. To check if your connection are working as desired use "ping -I eth0/rmnet0 www.google.com"
-I (capital i) option for ping ensures the source interface/IP for ping request. If you observe disparate RTTs for the two ping requests, this means everything has worked perfectly.
I searched for guidance from various forums and wanted to give back by sharing my progress. This makeshift approach can be used until official support from Google is floated. Hope it helps and will be glad to answer questions.