Some problem in developing Android drivers

I am very new to this area. In fact, I'm just starting to explore opportunities.

A simple version of my question: what is required to develop a driver (for example, USB ↔ Serial), deploy it on an Android phone (commercial product, not an individual one) and write applications to use it? Is it possible?

And here comes the longer version.

I already have experience developing Windows drivers and some knowledge of the Linux driver. And I also did some research. All I know is NDK. I do not know what:

  • All the links found seem to imply that driver development is done while developing the device, and not to crack an existing one. Is that the case?

  • How to deploy if possible? Should the driver integrate with the kernel in ROM and brush?

  • If the device does not support the USB host, is it because the hardware design or just something is missing in the software or both?

Sorry for the long list of questions. Any suggestions regarding this area will help, as I have other plans to build an Android device from scratch. Thank you for your time.

And by the way, ADK is too expensive (at least for now) for my application, so it's out of the equation.

+4
source share
3 answers

1., 2. You cannot enter a custom driver into an unused spare ROM. To implement the driver, your users will need to shorten the device or take a full picture of their own drive.

3.- It depends on the device. Some can make a USB host using special software, some cannot.

Check out the Android Open Accessory Development Kit . With this, you can build a board with a serial port that will talk to Android Android 2.3.4+ and Android 3.1+ through an Android accessory.

0
source

Honeycomb can provide standardized USB host support and some features that use it, and many cellular devices seem to have a port, but I don’t know if there is a standard in the cells that says it should come with a USB driver sequence available in the linux kernel above.

For all earlier versions, any feature will be device specific and requires root access.

ADK is available for the latest versions of Android, but, as you noted, this is a very suboptimal solution, because it puts all the complexity into an accessory, and also requires to provide bus power, both of which are "backward" from the usual case.

0
source

All Articles