UnAngelo blog

…se io fossi un angelo
Subscribe

Archive for the ‘informatica’

Google+

June 29, 2011 By: (author unknown) Category: google

On one hand, you'll never be able to convince your parents to switch. On the other hand, you'll never be able to convince your parents to switch!
Tags:

Cómo instalar pelisalacarta en XBMC Eden

June 22, 2011 By: Jesus Category: google

Cada vez son más los usuarios que han actualizado su XBMC de la versión estable (Dharma) a las nightly-build o versiones de desarrollo (Eden). Esta actualización es especialmente obligada si usas XBMC para iOS, dado que la versión actual de XBMC tiene tantos problemas que muchas veces no queda otra opción.

El aspecto renovado de XBMC Eden

El aspecto renovado de XBMC Eden

Algunos os habéis encontrado con que después de actualizar XBMC no podéis instalar pelisalacarta, así que escribo esta entrada esperando aclarar dudas y solucionar problemas.

Síntomas

En el repositorio oficial de XBMC no aparece pelisalacarta, dado que hay repositorios separados para Dharma y Eden. El add-on de pelisalacarta sólo está en los repositorios de Dharma y por tanto no aparece si tienes una de las nuevas versiones.

Como no te queda más remedio, intentas instalar el add-on a mano y te aparece el mensaje de error “Dependencies not met” sin más aclaraciones. Ni errores en el log, ni ayuda en Google, ni nada…

El problema

Pelisalacarta tiene una dependencia con dos componentes externos, concretamente las librerías “simplejson” y “elementree” de Python. Estos dos componentes se encuentran en el repositorio oficial de XBMC Dharma, y por tanto cuando instalas pelisalacarta en realidad te instalas de forma transparente esos dos componentes ANTES de instalar el add-on.

Pero… en los repositorios de XBMC Eden esos dos componentes no están.

De ahí el error.

La solución

En realidad el problema es muy sencillo de resolver, como muchos habréis imaginado leyendo el punto anterior. Aunque confieso que al no tener información en el log y no encontrar más datos buscando en el foro de XBMC me costó algo de tiempo encontrar la forma de hacer la instalación.

Únicamente debes instalar a mano los dos add-ons que faltan, antes de instalar pelisalacarta. El proceso es sencillo:

  • Descarga los dos add-ons de la siguiente dirección.
script.module.simplejson.zip
script.module.elementtree
  • Instálalos utilizando la opción “Install from ZIP file” que puedes encontrar en “Sistema / Add-ons”. Da igual el orden.

  • Por último instala pelisalacarta mediante la opción “Install from ZIP file” como siempre.

Google Sharing : un paso hacia el anonimato

June 19, 2011 By: orion Category: 1, google

¿Qué es Google Sharing?
                                                                       

Se trata de un tipo de servidor proxy cuyo único propósito es hacer que la identidad del usuario sea anónima. Este sistema, ayudará a Google a evitar que las búsquedas, movimientos, y los sitios web que visitamos no lleguen a ser víctimas del “tracking”.

Para los que no lo tengan claro, el “tracking” (traducido del inglés como “seguimiento”), consiste en seguir la navegación de un usuario por internet. Este seguimiento se realiza a través de las cookies.

Google Sharing no se trata de un servidor proxy al 100%.

Posee determinadas funciones de los servidores proxy, pero el fin para el que se utiliza es totalmente distinto.

Se trata de un servidor proxy que va a hacer que la identidad del usuario sea anónima en la comunicación con Google.

Según asegura la propia Google, se trata de un sistema transparente para el usuario y que no supondrá ninguna repercusión en las páginas web que se visitan, por el usuario podrá navegar con total normalidad, tal y como lo ha hecho hasta ahora.

- ¿Como funciona Google Sharing?

Es un sistema que mezcla todas las peticiones de los usuarios, para que Google no sea capaz de saber cual es la petición de cada uno.

Google Sharing ayuda en tres cosas fundamentales:

- Evita que Google recopile información sobre el usuario, de servicios que no requieren loguearse.

- Hace que el sistema sea transparente es decir, no repercute a la hora de acceder a las páginas.

- Todo el tráfico que no sea de Google, permanecerá intacto, por lo que no será redireccionado ni modificado.


El sistema de Google Sharing consiste en un proxy configurado y un complemento del navegador Firefox.

- El proxy trabaja generando una ristra de indentidades de Google Sharing, que contiene un cookie emitido por Google y un usuario aleatorio. El complemento de Firefox controlará las peticiones hacia servicios de Google de nuestro navegador Firefox, y éstas serán redirigidas (excepto Gmail) hacia el proxy de Google Sharing.

- Una vez en Google Sharing, se elimina de la solicitud toda la información personal y es reemplazada por información de una identidad de Google Sharing.

- Esta nueva información obtenido es enviada desde este sistema hacia Google, cuya respuesta es enviada al usuario.

- La próxima solicitud que hagas a Google será de nuevo modificada con una nueva identidad.

- Mientras que tu anterior identidad será asignada a la petición de otro usuario.

De esta forma, compartiendo identidades, todo el tráfico del usuario esta mezclado con el de otros usuarios y es muy complicado analizarlo y realizar un seguimiento del mismo.

Como resultado, se va a poder navegar de forma transparente por Google, imágenes, mapas, noticias y productos sin que Google sea capaz de hacer un seguimiento de tu IP , de cookies o de los identificadores de cabecera HTTP.

- La privacidad de Google Sharing y el transporte de las peticiones

El resultado es que Google sabe que está siendo buscado en cada momento, pero no conocerá de donde proviene cada solicitud de búsqueda ni cual es el contenido de esta.

Todas las solicitudes al proxy de Google Sharing son enviadas via HTTPS. Eventualmente serán tratadas como HTTP desde Google Sharing hacia Google. Pero lo importante es que el tráfico del usuario en la primera parte será cifrado.

Se trata de un sistema, que si no garantiza al 100% de que no vamos a ser seguidos por la web, si que lo va a poner muy complicado seguir nuestro tráfico, sobre todo en el que se refiere a Google.

Así afectará a los blogs la Ley Mordaza que prepara Leire Pajín

June 06, 2011 By: orion Category: 1, absurdo, linux

Este viernes el gobierno aprobó el anteproyecto de la llamada “Ley de Igualdad de Trato”, que podría someter todos los ámbitos de la vida a los caprichos del gobierno. Cuando digo “todos” me refiero también a los blogs. La inclusión de las bitácoras en los ámbitos afectados por esta ley no es algo gratuito. El Art.1 de ese anteproyecto señala que dicha norma regulará los “derechos y obligaciones de las personas, físicas o jurídicas, públicas o privadas”. El Art.3 señala: “Esta Ley se aplicará en todos los ámbitos de la vida política, económica, cultural y social”. Y el Art.4, en un absurdo intento de ponerle puertas al campo, afirma que “queda prohibida toda conducta, acto, criterio o práctica” que atente contra los amplísimos e incluso contradictorios conceptos de discriminación que contempla dicha ley. Veamos algunos ejemplos:

    Moderación de comentarios: te puede caer una considerable multa si tienes un blog con los comentarios moderados y basas tu política de moderación en cualquier criterio que pueda considerarse discriminatorio por “razón de nacimiento, origen racial o étnico, sexo, religión, convicción u opinión, edad, discapacidad, orientación o identidad sexual, enfermedad, lengua o cualquier otra condición o circunstancia personal o social” (Art.2 de la ley). Por ejemplo: este blog podría ser multado porque las normas de participación indican que los idiomas del blog son el castellano y el gallego, y que cualquier comentario en otro idioma ha de ser traducido. Es un criterio de sentido común pero que incurre en la discriminación por razón de lengua según ese Art.2. Así pues, para cumplir la ley tendría que aceptar cualquier comentario en cualquier idioma, aunque no entendiese su contenido (con el consiguiente riesgo de admitir contenidos ilegales): el colmo del absurdo. Si no lo hago, según los Arts.43 y 44 de esa ley podría estar incurriendo en una infracción grave y podría caerme una multa de entre 10.001 y 60.000 euros (entre 1.644.000 y 9.983.000 pesetas, una auténtica burrada).
    Si tienes un blog dedicado a Linux y en los comentarios tienes a un troll dando la matraca cada día diciendo que quiere hablar de Windows en los comentarios, no podrías banearle pues incurrirías en una discriminación por razón de opinión, según ese Art.2. De la misma forma, si tienes un blog de izquierdas no podrás borrar un comentario por defender ideas opuestas, y viceversa. De lo contrario, podrían acusarte de una infracción grave con una sanción de entre 10.001 y 60.000 euros. Gusten más o menos esas políticas de moderación, es un derecho del propietario de un blog establecer los criterios de moderación que desee. Ese derecho desaparecerá con la Ley Pajín, al aplicarse al ámbito privado criterios de no discriminación que hasta ahora y por sentido común sólo eran aplicables al ámbito de las administraciones públicas. Esto es violar nuestras libertades en nombre de la llamada “igualdad de trato”, un concepto que nada tiene que ver con la verdadera igualdad de toda democracia, que es la igualdad ante la ley.
    Si en tu blog no discriminas a nadie por razón de lengua u opinión, también podrías vulnerar la ley, pues su Art.5 proclama un nuevo concepto: la “discriminación indirecta”, que según la ley “se produce cuando una disposición, criterio o práctica aparentemente neutros ocasiona o puede ocasionar a una o varias personas una desventaja particular con respecto a otras”. Esto entra en contradicción con el concepto de discriminación directa que establece la propia ley, revelando el enorme tamaño del disparate jurídico que está promoviendo Leire Pajín. Y es que lo que esto quiere decir es que tendrás que discriminar para no discriminar: a modo de ejemplo, como en este blog la mayoría de comentarios se publican en castellano, se me podría multar porque las normas de moderación del blog no incluyen criterios para obligar al uso de idiomas minoritarios como el gallego, el vascuence o el catalán en un determinado número de comentarios, por ejemplo. Nuevamente, estaría incurriendo en una infracción grave con una sanción de entre 10.001 y 60.000 euros
    Para colmo de esperpento, si por ejemplo impidieses comentar en tu blog a alguien que te haya denunciado al amparo de esta ley podrías estar incurriendo en lo que el Art.10 de dicha ley define como represalia: “cualquier trato adverso o consecuencia negativa que pueda sufrir una persona por intervenir, participar o colaborar en un procedimiento administrativo o proceso judicial destinado a impedir o hacer cesar una situación discriminatoria”. Nuevamente podrían acusarte de una infracción grave con otra sanción más de entre 10.001 y 60.000 euros.

Una ‘ley comodín’ para tener la llave de la libertad de cualquiera

Como podéis observar, esta ley considera discriminación casi cualquier decisión que podamos tomar en nuestros blogs, o en cualquier ámbito de nuestra vida social. No es algo hecho por capricho, de forma accidental o fruto de la casualidad. Antes bien, estamos ante una “ley comodín” con la que el poder político podrá perseguir y castigar a cualquier ciudadano cuando le dé la gana, por casi cualquier causa: una eficaz herramienta legal para reprimir al discrepante, sobre todo teniendo en cuenta lo que vamos a ver a continuación.

Aplicará la ley un ‘inquisidor’ designado por el gobierno

Hay que tener en cuenta que el Art.37 crea la llamada “Autoridad para la Igualdad de Trato y la No Discriminación”, definiéndola cínicamente como una “autoridad independiente” que se encargará de aplicar esta ley. La curiosa “independencia” de esa autoridad queda en evidencia en el punto 4 del Art.38: “El nombramiento de la persona titular de la Autoridad para la Igualdad de Trato y la No Discriminación corresponderá al Gobierno mediante Real Decreto”. Al parlamento se le reserva un papel de mero florero en este nombramiento. ¿Cómo puede considerarse independiente un cargo así?

El acusado deberá probar su inocencia, como en la Inquisición

Para colmo, como señala el Art.28 de la ley y como comenté aquí en enero, el acusado de discriminación deberá probar su inocencia, lo cual viola el derecho a la presunción de inocencia que ampara el Art.24 de la Constitución Española. Esta inversión de la carga de la prueba supone una vuelta a los métodos de la Inquisición, cuando existía la llamada “prueba diabólica”, que dejaba a acusado en una total indefensión. Si tenemos en cuenta que, además, esto será competencia de un “inquisidor” designado por el gobierno, podemos hacernos una clara idea de para qué quiere aprobar el gobierno con tanta prisa una ley tan radicalmente antidemocrática como ésta.

Podrán censurar tu blog para proteger a la víctima de “discriminación”

Pero aún hay más: la disposición adicional primera de la ley modifica la LSSI, la Ley de Servicios de la Sociedad de la Información, aprobada en 2002 durante el mandato de Aznar. En concreto se modifica el Artículo 11 de esa ley, relativo al “Deber de colaboración de los prestadores de servicios de intermediación”. La modificación consiste en añadir un segundo párrafo en el que se establece que los tribunales podrán ordenar “medidas de restricción o interrupción de la prestación de servicios o de retirada de datos de páginas de Internet que contempla la presente ley” con el fin de “proteger los derechos de la víctima”. O dicho sea de otra forma: podrán bloquear el acceso a tu web o censurar parte de sus contenidos para dar satisfacción a la víctima de una “discriminación”.

Una ley mucho peor que la Ley Sinde para la libertad de expresión

Viendo los innumerables y hasta contradictorios conceptos de discriminación que establece este anteproyecto, la ya de por sí cercenada libertad en la red va a sufrir un recorte enorme con esta nueva ley. Para seros sincero, no entiendo que toda la movilización que hubo en su momento contra la LSSI y más recientemente contra la Ley Sinde no se esté produciendo ahora contra la Ley Pajín. Estamos ante una ley mucho peor que la Ley Sinde en lo que respecta a la libertad de los internautas. Al fin y al cabo, se trata de una ley que reinstaura los delitos de opinión, y para colmo encomienda su persecución a un cargo político designado a dedo por el gobierno, violando el derecho a la presunción de inocencia de todo acusado. Ni la Ley Sinde había llegado tan lejos en la agresión a nuestras libertades

Asus preloads Eee PC models with Ubuntu | ZDNet UK

June 03, 2011 By: (author unknown) Category: 1, linux

Shared by ianus
Thanks to http://www.zdnet.co.uk/blogs/tech-tech-boom-10017860/asus-preloads-eee-pc-models-with-ubuntu-10022619/
Canonical, sponsor of the Ubuntu project, has announced that three Asus Eee PC netbooks will now come the Ubuntu 10.10 operating system pre-installed.

The company said the "sleek and lightweight" hardware combined with the Linux-based Ubuntu OS makes the devices "some of the most user-friendly PCs on the market", as well as providing cost benefits for organisations.

"Many businesses are turning to Ubuntu as they look for a cost-effective, proven, and easy to use and manage operating system that can be delivered on business-quality laptops," Chris Kenyon, vice president of OEM Services at Canonical said in a statement on Thursday.

Tiras

May 30, 2011 By: ianus Category: linux

Tiras

Tiras en castellano
  • Picapolla y Chocholoco
  • El Listo
  • alberto montt en dosis diarias
  • Blog de Recurrente - Tiras
  • La tira de Bit y Byte
  • Dilbert en espanol
  • Rubes - ArcaMax Publishing
  • Sitio de Ciencia-Ficción - La Legión del Espacio
  • Conejo Frustrado - Webcomic Semanal, Humor Gráfico Gamberro
  • ¡Eh, tío!
  • ELPAIS.com - Viñetas
  • Www.legiondelespacio.com Recent Strips
  • Tira linuxHispano
  • Nariz Puntiaguda
  • Tira Ecol-Comic
  • 404, webcomic de humor que altera la física a su antojo
Preview this bundle

Google Chrome airs first UK TV ad during Champions League Final | T3 magazine

May 30, 2011 By: (author unknown) Category: 1, google

Shared by ianus
Thanks to:
http://www.t3.com/news/google-chrome-airs-first-uk-tv-ad-during-champions-league-final?=56949
Over the pond, Google have already used Lady Gaga to advertise their Chrome browser and it has also run ads during the SuperBowl, one of the most expensive advertising slots of the year.
http://www.youtube.com/watch?v=Xfc8j7b9ARM
Google has aired its first primetime UK TV advert to promote its Chrome browser, using the prime advertising slot offered during the UEFA Champions League Final.

Surely profiting from a giant TV audience and some Lionel Messi brilliance, the ‘Dear Hollie’ ad is a reworking of the US' 'Dear Sophie’ marketing campaign. It captures real-life footage of a father tracking his daughter’s development from birth onwards, by using Gmail, You Tube and Google Maps to map milestones in her life. The American version has already pulled in nearly 1.2m views on You Tube in only three weeks.

It’s a sentimental 90-second offering, that will get even the hardest techie wiping a tear from their eye, and sees the Big G following Apple’s emotive style of advertising, most recently seen in the FaceTime ads.

KDE Moving and Resizing for Windows XP, 2K, 2003, Windows 7, and Vista. Move and resize Windows windows just like Linux Windows! ESSENTIAL!

May 27, 2011 By: (author unknown) Category: 1, linux

Shared by ianus
por fin!!!!

Move and resize Windows windows just like Linux Windows!

An essential add-on for XP, 2K, 2003, Windows Server and Windows 7. Yeah, okay, and Vista!

Here is a page about my KDE Mover-Sizer. Okay, it's not entirely mine, not even mostly, but I've added enough code to call it mine, and it's too damn essential to not have a page of its own somewhere, so here it is..

What does it do?

KDE Mover-Sizer is a background application that emulates the behaviour of KDE, which is a rather good Linux desktop environment. Actually, Gnome and other Linux window managers also do it these days, but that wouldn't make for such a funky name. Essentially, you hold down the Alt key, and Left-click to move a window, Right-click to resize it; and from anywhere inside the window. That's it. And once you use it for a few minutes, you'll wonder how you ever lived without it.

The utility itself is coded with AutoHotKey, originally a fork of AutoIt, and highly useful in its own right. The original script (which I snaffled from the AutoHotKey forum, the best of many similar scripts) did all the above, but was missing something essential, that is; window snapping. So I added that, and gave them it back.

The window snapping is important for at least two reasons; 1) it enables you to place a window, as if by magic, exactly at the edge of your desktop. If, like me, you like to keep your main document windows in the centre of your screen, and leave lots of folder windows open up and down the sides of your desktop (I have a widescreen monitor now, which makes this even more effective) then you will find it invaluable. And 2) it enables you to resize the window from the edge of your screen. This is easier to do than to explain, though I'm going to attempt that anyway, with a couple of how-to style tips..
 

Cool Tricks..

I've gotten into a couple of habits thanks to the KDE Mover-Sizer. The first is a quick one-two action where I first Alt-Left-click a window and throw it roughly into place (off the edge of the screen), and then do a single Alt-Right-click to snap it back into perfect view. I've already had a week-off with all the time this good habit has saved me.

The new version can also snap directly to the edge during regular Alt-Left-Click moving - so long as you are within the snap distance, it will lock against the edge of your desktop.

The second habit of one of resizing windows from the edge. First, I get them there, as in tip 1, then I grab a corner (anywhere in the quadrant is fine) with an Alt-Right-click, and drag-resize them while the two opposite edges (one of which is bang up against the edge of the desktop) stay put. This isn't so much a time saver, as a sanity saver. I'm very particular about the amount of white space that shows in folder windows, and it they don't look right, I couldn't leave them open. Leaving them open is what saves time.

Another thing I've started doing, is sliding windows up and down the edge of my desktop by Alt-Left-click+drag. The snap keeps them from moving left and right - it's like they are on rails! Very handy. And remember, it works on windows behind windows, too, and without bringing them to the front.

Peliculas en Android Market, ¿para todos?

May 25, 2011 By: DukeVante Category: 1, españa, google

Google no para de darnos noticias, es una fuente inagotable de información de un tiempo a esta parte y cada vez que genera una noticia suele ser para ofrecernos una nueva e increíble prestación de Android o una prestación que existe en las plataformas de la competencia y que al fin ha sido adaptado para el sistema de nuestro robotito verde.

marketmovies

Lo que hoy os traigo es una pequeña reflexión sobre una de esas novedades que recibimos hace poco y que fueron acogidas con los brazos abiertos: el alquiler y streaming de películas en el Android Market.

El servicio se encuentra disponible ya para algunos afortunados (aunque como siempre en España tendremos que esperar hasta que llegue el fin del mundo un poco más para poder disfrutarlo). Y además funciona todo lo bien que podríamos esperar con respecto a la competencia, pues presenta unas condiciones similares a las que presenta la iTunes Store para estos mismos servicios (he preferido comparar con este servicio y no otro por seleccionar uno que tenemos disponible en España con características similares).

movies ¿Dónde está el pero? Pues para empezar, la manía de las restricciones geográficas para estas cosas. ¿Por qué no podemos disfrutar todos a la vez de esto? Si vas a tener que llegar a un acuerdo con las distribuidoras de las películas, podrías intentar hacerlo en todo su mercado y listo, aunque aquí podría ocurrir como con otros distribuidores de contenido multimedia online que no han podido establecerse en España porque las cuotas que exigen algunas sociedades de gestión de derechos de autor son simplemente insostenibles. Aún así, si Apple puede es bastante probable que ellos también, por lo que quizá deberían haberlo intentado un poco mejor.

De todas formas, este primer “pero” era algo menor, algo ínfimo, si lo comparamos con el otro bombazo que ha venido adjunto a la activación del servicio: no funciona en móviles rooteados.

Es decir, siempre se aboga por la libertad de Android, por la de cosas que se pueden hacer, por nuestras infinitas posibilidades. Entonces un buen día nos encontramos con que simplemente las cosas no funcionan. Y no funcionan por el mero hecho de querer controlar nuestros dispositivos más allá. Fijaos en que no hemos dicho en ROM personalizadas, o con las Google Apps pirateadas, con un recovery alternativo instalado o algo similar. No, solamente por haber rooteado el dispositivo, Google ha decidido denegar el servicio, uno de los más esperados y atractivos en la plataforma, a miles de usuarios. Personalmente espero que se trate de un error, y que la próxima versión del Market corrija este (a mi modo de ver) tremendo fallo, pero las primeras pruebas con teléfonos y tablets han arrojado un terrible jarro de agua fría sobre toda la comunidad de usuarios de Android que participan de alguna manera en desarrollos, bien probando ROM, bien programándolas, así como para todos aquellos usuarios que simplemente quieren poder usar algunas aplicaciones de Android Market (como Titanium Backup, sin ir más lejos). Quizá piensan que con el root realizado se van a piratear más las películas (cuando puedes descargarla desde tu PC y verla en cualquier reproductor multimedia sin problema alguno), o que sin él van a estar seguros, pero tarde o temprano todas las protecciones acaban cayendo, por lo que esto como mucho supone retrasar lo inevitable.

Android_Hide No obstante, ya ha ocurrido en ocasiones que algún servicio (no necesariamente de Google, aunque también) se ha visto restringido por error en móviles con el root realizado, y ha sido eliminada esa restricción en una pronta actualización, por lo que mientras el servicio llega a España deberemos cruzar los dedos porque los chicos de Mountain View recuperen el sentido común y habiliten un servicio genial en la inmensa mayoría de los móviles de la gente que a la postre son quienes les dan de comer, recomendando Android a amigos y familiares, enseñándoles cómo funciona, y cuántas cosas se pueden hacer y de qué forma tan sencilla.

En suma, un tremendo error de cálculo por parte de Google, que esperamos sea simplemente un bug que quede solucionado en breve, pues es una broma que puede salirles muy cara si pretenden abrir un nuevo frente de negocio. Espero sinceramente que esto no acabe en un facepalm como el de Andy en la imagen que acompaña a estas líneas…

Y vosotros, ¿qué opináis?,¿es un error que Google restrinja el acceso al servicio de alquiler y streaming de películas a dispositivos rooteados? ¿es una medida necesaria contra la piratería? ¿es un bug y será solucionado en breve? Dejamos los comentarios a vuestra disposición para que nos deis vuestra opinión.

Seguramente también te interesará...

A Bright Idea: Android Open Accessories

May 19, 2011 By: Tim Bray Category: 1, google

[This post is by Justin Mattson, an Android Developer Advocate, and Erik Gilling, an engineer on the Android systems team. — Tim Bray]

Android’s USB port has in the past been curiously inaccessible to programmers. Last week at Google I/O we announced the Android Open Accessory APIs for Android. These APIs allow USB accessories to connect to Android devices running Android 3.1 or Android 2.3.4 without special licensing or fees. The new “accessory mode” does not require the Android device to support USB Host mode. This post will concentrate on accessory mode, but we also announced USB Host mode APIs for devices with hardware capable of supporting it.

To understand why having a USB port is not sufficient to support accessories let’s quickly look at how USB works. USB is an asymmetric protocol in that one participant acts as a USB Host and all other participants are USB Devices. In the PC world, a laptop or desktop acts as Host and your printer, mouse, webcam, etc., is the USB Device. The USB Host has two important tasks. The first is to be the bus master and control which device sends data at what times. The second key task is to provide power, since USB is a powered bus.

The problem with supporting accessories on Android in the traditional way is that relatively few devices support Host mode. Android’s answer is to turn the normal USB relationship on its head. In accessory mode the Android phone or tablet acts as the USB Device and the accessory acts as the USB Host. This means that the accessory is the bus master and provides power.

Establishing the Connection

Building an Open Accessory is simple as long as you include a USB host and can provide power to the Android device. The accessory needs to implement a simple handshake to establish a bi-directional connection with an app running on the Android device.

The handshake starts when the accessory detects that a device has been connected to it. The Android device will identify itself with the VID/PID that is appropriate based on the manufacturer and model of the device. The accessory then sends a control transaction to the Android device asking if it supports accessory mode.

Once the accessory confirms the Android device supports accessory mode, it sends a series of strings to the Android device using control transactions. These strings allow the Android device to identify compatible applications as well as provide a URL that Android will use if a suitable app is not found. Next the accessory sends a control transaction to the Android device telling it to enter accessory mode.

The Android device then drops off the bus and reappears with a new VID/PID combination. The new VID/PID corresponds to a device in accessory mode, which is Google’s VID 0x18D1, and PID 0x2D01 or 0x2D00. Once an appropriate application is started on the Android side, the accessory can now communicate with it using the first Bulk IN and Bulk OUT endpoints.

The protocol is easy to implement on your accessory. If you’re using the ADK or other USB Host Shield compatible Arduino you can use the AndroidAccessory library to implement the protocol. The ADK is one easy way to get started with accessory mode, but any accessory that has the required hardware and speaks the protocol described here and laid out in detail in the documentation can function as an Android Open Accessory.

Communicating with the Accessory

After the low-level USB connection is negotiated between the Android device and the accessory, control is handed over to an Android application. Any Android application can register to handle communication with any USB accessory. Here is how that would be declared in your AndroidManifest.xml:

<activity android:name=".UsbAccessoryActivity" android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
    </intent-filter>

    <meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
               android:resource="@xml/accessory_filter" />
</activity>

Here's how you define the accessories the Activity supports:

<resources>
    <usb-accessory manufacturer="Acme, Inc" model="Whiz Banger" version="7.0" />
</resources>

The Android system signals that an accessory is available by issuing an Intent and then the user is presented with a dialog asking what application should be opened. The accessory-mode protocol allows the accessory to specify a URL to present to the user if no application is found which knows how communicate with it. This URL could point to an application in Android Market designed for use with the accessory.

After the application opens it uses the Android Open Accessory APIs in the SDK to communicate with the accessory. This allows the opening of a single FileInputStream and single FileOutputStream to send and receive arbitrary data. The protocol that the application and accessory use is then up to them to define.

Here’s some basic example code you could use to open streams connected to the accessory:

public class UsbAccessoryActivity extends Activity {
    private FileInputStream mInput;
    private FileOutputStream mOutput;

    private void openAccessory() {
        UsbManager manager = UsbManager.getInstance(this);
        UsbAccessory accessory = UsbManager.getAccessory(getIntent());

        ParcelFileDescriptor fd = manager.openAccessory(accessory);

        if (fd != null) {
            mInput = new FileInputStream(fd);
            mOutput = new FileOutputStream(fd);
        } else {
            // Oh noes, the accessory didn’t open!
        }
    }
}

Future Directions

There are a few ideas we have for the future. One issue we would like to address is the “power problem”. It’s a bit odd for something like a pedometer to provide power to your Nexus S while it’s downloading today’s walking data. We’re investigating ways that we could have the USB Host provide just the bus mastering capabilities, but not power. Storing and listening to music on a phone seems like a popular thing to do so naturally we’d like to support audio over USB. Finally, figuring out a way for phones to support common input devices would allow for users to be more productive. All of these features are exciting and we hope will be supported by a future version of Android.

Accessory mode opens up Android to a world of new possibilities filled with lots of new friends to talk to. We can’t wait to see what people come up with. The docs and samples are online; have at it!

[Android/USB graphic by Roman Nurik.]