I think I know the status of USB on Android :)
As for "what's so special" about this, this is a hardware protocol that prior to this implementation, was static, point to point, and not changeable. Unipro has been around for about a decade in systems like phones, for the camera and displays and other things. This phone turns Unipro into a routable and hotplugable system, fully dynamic. It's way faster than USB and can be peer-to-peer if wanted (the main CPU doesn't get involved after the routes are set up), which is impossible on USB, and a major pain on PCI to get right (not to mention the security issues of PCI, which this system solves completely). It also allows you to tunnel a bunch of "legacy" hardware protocols across it like USB, serial, GPIO, I2C, I2S, SPI, and others, in ways that is almost transparent to the kernel drivers (totally transparent to USB and serial, 20-30 lines needed for other drivers), or export those protocols out to userspace applications so you can control your spi-based sensor module directly from an Android application, no special kernel support needed.
I can go on, and actually will in a few days at LinuxCon Japan with a talk all about this at that conference, so see the video of it if you are curious.
Oh, and all of the hardware, firmware, mechanical, and of course kernel code, is all open source, as well as the protocol specification, and you can look at it today and watch it evolve in our github repos. No other project has ever done that before that I know of.+Thomas Petazzoni
yes, the work here is taking all of the things we did 10 years ago to make Linux the kernel dynamic, and make Android dynamic. As you know, right now Android is very static, almost the whole system definition is determined at build time, and a few things at boot time, and almost nothing at run-time. I don't think there's ever been a demo of Android adding a CSI camera to the system after
it had booted.
The work here will eventually make Android fully dynamic, with devices being able to be added or removed on the fly. You want 6 batteries, and then later remove 3 of them? You want 2 wifi devices? Handle different cameras with different resolutions? All will eventually not be an issue at all. That will make it even easier to get an Android system up and running for the "old static" type machines as well, just like the work we did in Linux to make everything dynamic made all of the "static" laptops and servers trivial to setup properly.
In short, this is good shit.