Suite à la parution d’un article très populaire sur le site Ars Technica, intitulé Google’s iron grip on Android: Controlling open source by any means necessary, j’ai souhaité réagir pour apporter une version un peu plus nuancée du bilan qui y est fait. Si les éléments détaillés dans l’article sont globalement exacts, j’ai trouvé qu’il tirait des conclusions un peu hâtives et souvent trop pessimistes sur les intentions de Google ou qu’il manquait d’informations sur certains points.
L’article conclut dans les grandes lignes que Google tue à petit feu le projet AOSP (le code source public d’Android) et reprend le contrôle de sa plate-forme en la rendant partiellement propriétaire, faisant au passage un pied-de-nez aux constructeurs. Certains ont même osé commenter sur Twitter: “Ne soyez pas naïfs, Android ne restera pas ouvert” !
Pour nuancer ces propos il est nécessaire d’expliquer comment les différents composants d’Android interagissent entre eux et de faire un petit bilan de la plate-forme à l’heure actuelle.
Une formule gagnante depuis le début
Android est un système qui possède une double nature depuis la première version publique parue en 2008, et les choses n’ont quasiment pas changé depuis.
Il convient en effet de distinguer le système Android de base et les services de Google. La base du système est intégralement “open source” (et fait partie d’AOSP) tandis que les services de Google ne le sont pas. Le système est également conçu depuis le départ pour être très modulaire et les services de Google sont des “modules” de plus haut niveau qui viennent compléter le reste mais ne sont pas indispensables au fonctionnement du système, même s’ils sont souvent d’une grande utilité et ont contribué au succès de la plate-forme.
L’article tend à mettre en opposition AOSP et Android avec les services Google comme s’il s’agissait de deux variantes incompatibles d’Android alors que tous les appareils Android ont la même base open source (AOSP), la différence étant que certains disposent des services de Google et d’autres pas (comme le Kindle d’Amazon ou BlackBerry 10).
Les modules propriétaires de Google pour Android correspondent quasiment toujours à des services fournis par leurs infrastructures. À l’exception de PhotoSphere et de la fonction “swype” du clavier Google qui utilisent des technologies propriétaires brevetées, les fonctionnalités qui ne sont pas liées directement aux serveurs de Google sont toujours open source.
Les services Google propriétaires
Les principaux services et applications fournis par Google pour Android sont les suivants:
- Google Play (apps, musique et livres)
- Maps
- GMail
- Synchronisation du calendrier et des contacts (les apps sont open source, la synchro Google est propriétaire)
- YouTube
- Hangouts (Talk)
- Google Now (widget de recherche contextuelle avec reconnaissance vocale)
- Google+ et Picasa (stockage en ligne des photos)
- Reconnaissance vocale
- Géolocalisation via antennes GSM et WiFi (utilise la base de données d’antennes de Google)
- Google Cloud Messaging (notifications push)
- PhotoSphere (capture de photos à 360° de type Street View)
- Fonction “swype” du clavier (entrer des mots au moyen de gestes connectant les lettres)
Il existe bien entendu d’autres applications Google qui contribuent au succès d’Android telles que Google Traduction, Goggles ou leur jeu de réalité augmentée Ingress.
Tous les services cités ci-dessus peuvent ne pas être installés ou être remplacés par des alternatives. Il existe des marchés d’applications alternatifs, des services de cartographie alternatifs, des sites de vidéo alternatifs, des services de synchronisation de contacts alternatifs, etc. Ceux de Google sont évidemment de très bonne qualité et gratuits, raison pour laquelle tout le monde les utilise, mais s’il fallait un jour s’en passer complètement pour une raison ou une autre, l’architecture du système Android s’y prêterait parfaitement: on ne peut donc pas déclarer que le système a été verrouillé par Google pour ne fonctionner qu’avec ses services.
Un bon exemple d’une plate-forme Android complète et fonctionnelle n’utilisant pas les services Google sont les ROMs Cyanogenmod disponibles “prêtes à l’emploi” pour de nombreux téléphones Android et construites entièrement à partir de code source non propriétaire (à l’exception des pilotes matériels). Les logiciels propriétaires Google sont ensuite installables séparément via une simple opération, mais ce n’est pas obligatoire.
Des logiciels AOSP abandonnés
L’article explique également de façon un peu alarmiste que dès qu’un logiciel dans AOSP fait double emploi avec un nouveau logiciel propriétaire de Google, le développement du logiciel AOSP est abandonné. Les composants en question sont les suivants:
- Lecteur de musique (remplacé par Google Play Musique)
- Widget de Recherche (remplacé par Google Now)
- Calendrier (remplacé par Google Calendrier, qui est pour l’instant très proche de la version AOSP)
- Application SMS (remplacée par Hangouts)
- Lanceur (“Launcher”) (le widget de recherche a fusionné avec le lanceur sur les appareils Nexus sous Android 4.4).
L’article sous-entend que si la version AOSP de ces logiciels est abandonnée, les logiciels propriétaires de Google deviendront la référence et donc Google aura un contrôle accru sur la plate-forme. Ceci est faux pour deux raisons:
1) Depuis tout temps, ces logiciels ont déjà été remplacés par les constructeurs sur leurs téléphones: Samsung, Sony ou HTC fournissent déjà leur propre lecteur audio, leur propre calendrier, leur propre lanceur ou leur propre application SMS, qui sont souvent fort différents de la version AOSP. La plupart des utilisateurs continuent à utiliser ces logiciels de base du constructeur et le fait que Google fournisse de nouvelles alternatives ne changera rien ni pour eux ni pour les constructeurs qui ont quand même déjà développé leurs propres solutions pour tenter de se distinguer.
2) Il existe un nombre incalculable d’applications alternatives gratuites de qualité à tous ces composants, parmi lesquelles certaines sont open source. Toutes ou presque sont plus évoluées que les applications AOSP qu’elles remplacent. Voici quelques exemples marquants:
- Le très actif projet open source Cyanogenmod (dérivé d’AOSP) fournit une version améliorée de l’application SMS, un lanceur amélioré nommé Trebuchet ou encore un lecteur de musique alternatif nommé Apollo. Récemment, le projet a lancé sa propre application d’appareil photo nommée Focal dont le code source est publié ici. Focal propose entre autres une alternative libre à PhotoSphere nommée PicSphere.
- Il existe une longue liste de lanceurs alternatifs.
- Idem pour les lecteurs audio tels que Winamp ou encore des services de musique illimitée concurrents à Google Play Musique disposant d’excellentes applications Android tels que Spotify ou Rdio.
En plus de cela, Google continue à faire évoluer certaines applications AOSP parallèlement aux siennes, donc on ne peut pas dire que toutes les applications de cette liste aient été réellement abandonnées.
Services Google Play
Les services Google Play sont apparus en mai 2013 en tant qu’extension Google qui s’installe et se met à jour automatiquement sur tous les appareils disposant du Play Store à partir d’Android 2.2. Ils permettent aux développeurs d’utiliser la dernière version des services Google dans leurs applications, à savoir principalement les cartes Google Maps. Jusqu’ici rien d’anormal: si les développeurs souhaitent utiliser un autre fournisseur de cartes, rien ne les empêche d’utiliser un SDK concurrent aux services Google Play.
Mais Google est allé encore plus loin en intégrant une nouvelle couche de géolocalisation et geofencing dans les services Google Play. En réalité, il s’agit d’une surcouche sur les APIs de géolocalisation de base d’Android, qui permet d’optimiser l’usage de la batterie et augmenter la rapidité de la géolocalisation ainsi que fournir un meilleur service de geofencing, à condition que les applications tierces passent par ce service propriétaire.
Il faut reconnaître que sur ce point le choix des développeurs est cornélien: s’ils veulent offrir la meilleure expérience de géolocalisation à leurs utilisateurs, ils n’ont pas vraiment d’autre alternative que d’utiliser les services Google Play, qui en plus sont gracieusement auto-installés sur les téléphones même les plus anciens grâce au système de déploiement de Google. Google pourrait mettre à disposition le code source de cette nouvelle couche de géolocalisation, mais elle ne pourrait pas être auto installée et mise à jour via le Play Store, ce qui reste son atout principal.
Même sans les services Google Play, une application ne pourrait pas faire grand chose sans les services de base de géolocalisation via antennes WiFi et GSM, services qui ne sont pas non plus open source car ils utilisent les bases de données de Google. Sur ce point, la fondation Mozilla a annoncé récemment qu’elle travaillait sur un système de géolocalisation similaire, basé sur des données publiques. On peut imaginer la sortie d’un SDK pour Android à l’avenir permettant d’exploiter ce nouveau service.
Les services Google Play offrent également la possibilité aux développeurs de jeux de sauvegarder la progression des joueurs afin de la synchroniser entre leurs différents appareils, en utilisant gratuitement les infrastructures de Google. Cette fonction ne pourrait évidemment pas non plus être open source, mais rien n’empêche les développeurs d’utiliser leur propre solution de synchronisation à la place.
Toujours plus d’open source
Google pousse sa plate-forme et ses services au maximum sur Android, c’est certain. Cela signifie-t-il pour autant qu’Android se ferme? Je ne pense pas. Parallèlement à ses solutions propriétaires, Google a également publié cette année une grande quantité de code open source. En voici quelques exemples:
- Le code source de la nouvelle version d’Android, 4.4, a été publié le jour même de l’annonce de sa sortie. Les nombreuses nouveautés et optimisations du système annoncées sont immédiatement utilisables par tous par le biais de ce code source.
- Google continue de mettre à disposition des développeurs de plus en plus d’outils open source permettant de développer des applications de qualité compatibles avec toutes les versions d’Android. Citons la très complète Android Support Library, la couche réseau Volley ou encore le parseur JSON Gson. En fait, ces bibliothèques open source sont utilisées dans les applications propriétaires de Google, ce qui veut dire que techniquement elles ne sont pas totalement propriétaires et que tout développeur peut également utiliser de nombreux composants développés par Google pour ses propres applications.
- Enfin, toutes les applications développées par Google ne sont pas propriétaires. Le code source des applications Google I/O ou MyTracks peut être consulté ou réutilisé à loisir.
Dans l’ensemble, la communauté Open Source autour d’Android se porte plutôt bien, c’est même l’une des communautés de développeurs les plus actives que je connaisse. Rappelons qu’aujourd’hui, grâce à ce projet et à sa nature ouverte, il est possible de faire fonctionner des applications sur une énorme quantité d’appareils de types, tailles et marques variées ou encore d’installer la dernière version d’un système d’exploitation sur des appareils abandonnés par leurs constructeurs, des choses qu’on n’aurait pas pu imaginer il y a à peine 6 ans. Et visiblement ce n’est pas prêt de changer!