My knowledge of programming for Android is fairly limited and this is something I've wondered for a while but never seen really explained anywhere.
My wondering about this is mainly academic right now, though the reason is, I have a 4G phone with a paid tethering plan. I share this internet with my housemates, they pay part of my tethering fee, everyone's happy. One of the guys barely uses the net at all, so we'd been talking about how he should pay less, and I started thinking about if I could make an app that kept track of how much data each person used. I thought about it for a few days, and I've realized there's so much about tethering I have no idea about, thus the questions. Now I'm really curious how this is done.
First, how do apps like EasyTether and PDAnet allow for tethering without any root access? Are they actually implementing their own network stack in software, or is there some other trick to it? I really have no idea and could only guess.
Second, how then do some apps create an ad Hoc wifi network, still without access to root?
Anyone have any thoughts?