One of the new toggles you'll see in Android 8.1's developer preview is hidden in Developer options, under the Networking category and is called: Tethering hardware acceleration. The description, "Use tethering hardware acceleration if available," doesn't do a lot to clarify the ambiguity of the new option, and the speculation from AP alumni Ron Amadeo and a few users has been that it would use a more efficient method for tethering that relies on hardware. We've been looking into it to try to understand what it does and there are hints here and there that favor that explanation.

First, there's new code in Android that's related to this new "tetheroffload.control" and I also found a few APIs in the Android HIDL related to it with explanations of the different control types. Based on some of the wording there (I'm no developer but I can decipher the general idea of code), and the location of the Android toggle in the Networking section after the mobile data options, it looks like the obvious explanation is the correct one. On supported devices and supported connections, Android will use hardware (instead of software) for tethering your data connection to other devices, and will ask the hardware to manage it.

I'm not sure if it's directly related, but there's a patent by an Intel employee about hardware-offloaded tethering to a communication processor (think of it as the radio part of your SoC), which frees the other resources that would have normally been responsible of tethering such as the application processor (this is the part of the SoC that handles the operating system). That could serve to "conserve power/processing resources, maintain better security."

If the same idea (and same patent?) is applied here, it could mean that when you turn on tethering on your Android 8.1 device, you won't burn through the battery like wildfire and your processor will have all its resources left to manage the activities you ask of it.

However, it's not clear which requirements are needed for this to happen. The toggle is on by default, so even if you don't trigger Developer options on your phone, tethering hardware acceleration should be enabled. Technically, you'll probably need an SoC that supports this (I've looked but can't find whether Qualcomm's latest do). You may also need a data connection that supports it as well; I say this because there's mention of the "device [moving] to a RAT on which hardware acceleration is not supported" in the HIDL. Maybe that means the phone is now on WiFi and thus tethering is off, which means that hardware-offloaded tethering is also off, but maybe it also means that the phone is now on a different data connection (say it moved from 3G to LTE or to Edge for example) that doesn't support hardware-accelerated tethering.

We've reached out to Google to get an explanation and hopefully some clarification on what this toggle does, how it works, and what its benefits are, but in the meantime I wouldn't worry too much about it. If it's what we think it is, then it's a nice improvement, and if not, then there's no apparent harm in it being on. Offloading anything to the hardware instead of requiring some CPU-intensive software processes to handle it always seems like a good idea.

Thanks: +Paul Werner