Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which android devices support the ADK / open accessory

Tags:

android

adk

Is there a list anywhere of which Android devices (phones, tablets) support the ADK / accessory mode? From what I have read, I known that the Nexus One, Nexus S and Xoom do support it. Are there any other devices (custom ROMs included) that also support it? I have an ADK and can't get it working with my phone, I am basically looking for the cheapest phone that I can use with ADK.

** UPDATE ** I found this list of tablets that work with the ADK

like image 863
Jason Avatar asked Aug 31 '11 11:08

Jason


People also ask

What is Android open accessory?

Android Open Accessory (AOA) support allows external USB hardware (Android USB accessories) to interact with Android-powered devices in accessory mode.

What is AOAP protocol?

Android USB accessories must adhere to the Android Open Accessory (AOA) protocol, which defines how an accessory detects and sets up communication with an Android-powered device. Accessories should carry out the following steps: Wait for and detect a connected device.


2 Answers

The offical Android 2.3.4 is based on the kernel 2.6.35, ADK need kernel 2.6.35. Some Android 2.3.4+ do not support adk because the kernel is not 2.6.35+. I used to copy the adk need jar into my milestone (Android 2.3.5, kernel 2.6.32, cm7), and install the DemoKit.apk but it doesn't work. The phone I know ADK works: Nexus One, Nexus S, HTC Desire(need to do something to make it work) I think if the phone have kernel 2.6.35+ and android 2.3.4+ it will support ADK too, but I can't find a 2.6.35+ kernel for my Milestone.

like image 145
Don Avatar answered Sep 28 '22 06:09

Don


When I was digging around in the CyanogenMod 7.1 kernel sources for my Galaxy S2 I found that the USB accessory driver missing from kernel 2.6.35.7 (I think the kernel .config flag is CONFIG_USB_ANDROID_ACCESSORY).

From what I've found by a lot of searching and forum digging was that the accessory driver was implemented in Honeycomb (3.x) but backported to Gingerbread (2.3), and should be available from kernel 2.6.35.15. I made a few unsuccessful attempts to compile my own kernel, with the plan to cherry pick the driver but for some reason I was not able to make the phone boot with my custom kernel.

I am now running an early experimental CyanogenMod 9 ICS (4.0.3) build on my SGS2 and it is possible to have the phone talk with my Arduino board. I made the phone able to toggle an LED on the board so I guess it is time to start working on my plans for world domination.

like image 33
Mathias Avatar answered Sep 28 '22 05:09

Mathias