Travaillant directement sur le sujet, je vais préciser quelques points sur Android:

C'est un OS ouvert dans le sens où l'on peut télécharger tout le code nécessaire pour builder le firmware d'un development phone (HTC Dream) sous Android, et de faire tourner toutes les applications Android compilées avec le SDK. Google a également mit en place un système pour que la communauté puisse contribuer en fournissant des patchs, mais Google reste maître de ce qui va être embarqué ou non.

Cependant:
- les fabricants de téléphones qui embarquent Android ne sont pas tenus de publier les modifications qu'ils y apportent, car Android utilise une licence Apache, à l'exception du noyau Linux qui est sous licence GPL.
- les fabricants ne sont pas tenus d'offrir la possibilité de changer le firmware de leur téléphone Android. (seule solution: "rooter", ou "jailbreaker" son téléphone).
- quelques applications Google ne sont pas libres, pour que Google puisse se faire un peu d'argent (Google Market, Google Maps).

Android reste malgré tout une aubaine pour les bidouilleurs, car il est compilable à la fois pour x86 et ARM, fonctionne au dessus d'un noyau Linux, et peut donc être adapté à une large variété d'hardware très rapidement (téléphones, tablettes, baladeurs (cf Archos), set top box, etc). Pour l'anecdote, un projet consiste à recompiler Android pour le faire tourner sur un iPhone, vous pourrez trouver des vidéos sur le net.

Tout ça pour dire que le libre gagne du terrain tout en gagnant en simplicité, et que d'ici peu l'iPad verra de nombreux concurrents Android. (recherchez "tablettes Android" sur le net pour vous faire une idée).