Android et la liberté des utilisateurs
par Richard StallmanDans quelle mesure Android respecte-t-il la liberté de ses utilisateurs ? Pour l'utilisateur d'ordinateur qui chérit la liberté, c'est la question la plus importante à se poser pour tout logiciel.
Dans le mouvement du logiciel libre, nous concevons des logiciels qui respectent la liberté des utilisateurs de sorte que vous comme moi puissiez échapper à l'emprise de ceux qui vous la refusent. Cela contraste avec l'idée de l'open source qui se concentre sur la façon de concevoir le code ; c'est une réflexion différente qui s'intéresse principalement à la qualité du code plutôt qu'à la liberté. Ainsi, le souci principal n'est pas de savoir si Android est « ouvert », mais s'il permet à celui qui l'utilise d'être libre.
Android est un système d'exploitation orienté principalement vers les téléphones mobiles et autres appareils. Il est constitué du noyau Linux (le noyau de Torvalds), plus quelques bibliothèques, une plateforme Java et quelques applications. À part Linux, le logiciel des versions 1 et 2 d'Android a été conçu essentiellement par Google. Google l'a sorti sous la licence Apache 2.0, une licence libre laxiste, sans copyleft.
La version de Linux incluse dans Android n'est pas un logiciel entièrement libre puisque, tout comme la version de Torvalds de Linux, elle contient des morceaux de code binaire [binary blobs] non libres dont quelques-uns sont effectivement utilisés dans des appareils tournant sous Android. Les plateformes Android utilisent aussi des micrologiciels [firmware] non libres, ainsi que des bibliothèques non libres. À part cela, le code source des versions 1 et 2 d'Android tel que publié par Google est libre, mais ce code est insuffisant pour faire tourner l'appareil. Quelques applications qui viennent généralement avec Android sont également non libres.
Android est très différent du système d'exploitation GNU/Linux, car il contient très peu de GNU. En effet, le seul élément commun entre Android et GNU/Linux se résume à peu près à Linux, le noyau. Les gens qui font l'erreur de croire que « Linux » fait référence à la totalité de la combinaison GNU/Linux s'emmêlent les pinceaux et font des affirmations paradoxales telles que « Android contient Linux, mais ce n'est pas Linux » [1]. En l'absence de cette confusion, la situation est simple : Android contient Linux, mais pas GNU. Ainsi, Android et GNU/Linux sont essentiellement différents, parce que Linux est la seule chose qu'ils ont en commun.
À l'intérieur d'Android, le noyau Linux reste un programme séparé dont le code source est sous licence GNU GPL version 2. Combiner Linux avec du code sous licence Apache 2.0 représenterait une violation du copyright, puisque les licences GPL version 2.0 et Apache 2.0 sont incompatibles. Les rumeurs que Google a d'une manière ou d'une autre fait passer Linux sous licence Apache sont fausses. Google n'a aucun pouvoir pour changer la licence du code de Linux et n'a pas essayé de le faire. Si les auteurs de Linux autorisaient son usage sous la version 3 de la licence GPL, ce code pourrait ensuite être combiné avec du code sous licence Apache, et la combinaison pourrait être publiée sous licence GPL version 3. Mais Linux n'a pas été publié ainsi.
Google a respecté les règles de la GNU GPL pour Linux, mais la licence Apache sur le reste d'Android n'oblige pas à montrer le code. Google a dit qu'ils n'allaient jamais publier le code d'Android 3.0 (à part Linux). Le code source d'Android 3.1 est caché également. Ainsi, Android 3, en dehors de Linux, est purement et simplement constitué de logiciel privateur.
Google a dit qu'ils ne publiaient pas le code source de la version 3.0 parce qu'il était bogué, et que les gens devraient attendre la version d'après. Il pourrait s'agir d'un bon conseil pour ceux qui veulent juste faire tourner le système Android, mais ce devrait être aux utilisateurs de prendre cette décision. Et de toute façon les développeurs et les bidouilleurs qui voudraient inclure des changements dans leurs propres versions pourraient très bien utiliser ce code.
Heureusement, Google a ultérieurement publié le code source d'Android 3.*, en même temps qu'ils ont publié la version 4 (également avec le code source). Le problème décrit plus haut se révéla comme une aberration temporaire plutôt que comme un changement de politique. Toutefois, ce qui arrive une fois peut arriver à nouveau.
En tout cas, le code source de diverses versions d'Android a été publié pour l'essentiel en tant que logiciel libre. Est-ce à dire que les appareils utilisant ces versions d'Android respectent la liberté de l'utilisateur ? Non, et ceci pour plusieurs raisons.
Tout d'abord, la plupart comprennent des applications non libres de Google pour communiquer avec des services tels que YouTube et Google Maps. Celles-ci ne font pas officiellement partie d'Android, mais cela n'en fait pas un bon produit pour autant. Beaucoup des applications disponibles pour les premières versions d'Android ont été remplacées par des applications non libres ; en 2013 sont apparus des appareils sous Android qui ne proposent aucun moyen d'afficher des photos, à part une application Google+ non libre. En 2014, Google a annoncé que les versions d'Android destinées aux télévisions, aux montres et aux voitures seraient en grande partie non libres.
La plupart des appareils Android comportent le logiciel non libre Google Play (ex-Android Market). Ce programme invite les utilisateurs qui ont un compte chez Google à installer des applications non libres. De plus, il a une porte dérobée [backdoor] par laquelle Google peut, d'autorité, installer ou désinstaller des applications (cela en fait probablement une porte dérobée universelle, bien que ce ne soit pas prouvé). Google Play ne fait pas officiellement partie d'Android, mais il n'en est pas moins mauvais pour autant.
Google a transféré de nombreuses fonctionnalités de base dans la bibliothèque non libre Google Play Services. Si le code d'une appli est libre mais dépend de Google Play Services, l'ensemble de cette appli est en fait non libre ; elle ne peut pas fonctionner sur une version libre d'Android comme Replicant.
Si vous donnez du prix à votre liberté, vous ne voudrez pas des applications non libres proposées par Google Play. Pour installer les applications Android libres, vous n'avez pas besoin de Google Play car vous pouvez aller les chercher sur f-droid.org.
En outre, les produits Android viennent avec des bibliothèques non libres. Elles ne font pas officiellement partie d'Android, mais puisque diverses fonctionnalités en dépendent, on les trouve dans toute véritable installation d'Android.
Même les programmes qui font officiellement partie d'Android peuvent ne pas correspondre au code source publié par Google. Les constructeurs peuvent changer ce code, et bien souvent ils ne publient pas le code source de leurs versions. La GNU GPL les oblige – à supposer qu'ils s'y conforment – à redistribuer le code de leurs versions de Linux. Pour le reste du code qui est sous licence Apache, laxiste, ils ne sont pas obligés de publier le code source des versions qu'ils utilisent réellement.
L'un des utilisateurs a découvert que de nombreux programmes du système Android équipant son téléphone avaient été modifiés pour envoyer des données personnelles à Motorola. Certains fabricants ajoutent à Android un dispositif caché de surveillance générale comme Carrier IQ.
Replicant est une version libre d'Android. Pour certains modèles d'appareils, les développeurs de Replicant ont remplacé beaucoup de bibliothèques non libres. Les applications non libres sont exclues, mais de toute façon vous ne voulez sûrement pas les utiliser. Par contre, CyanogenMod (une autre version modifiée d'Android) n'est pas libre.
De nombreux appareils sous Android sont des « tyrans » conçus pour que leur propriétaire ne puisse pas installer et utiliser ses propres logiciels modifiés, mais seulement les versions approuvées par une société particulière. Dans ces conditions les exécutables ne sont pas libres, même s'ils sont faits à partir d'une source libre dont chacun peut disposer. Cependant, certains appareils Android peuvent être « rootés » (débridés), ce qui permet aux utilisateurs d'y installer des logiciels différents.
Les micrologiciels ou les pilotes importants sont en général privateurs a également. Ils gèrent l'accès au réseau téléphonique hertzien, le wifi, le bluetooth, le GPS, l'accélération 3D, l'appareil photo, les hauts-parleurs, et dans certains cas aussi le microphone. Sur certains modèles, quelques-uns de ces pilotes sont libres et d'autres ne sont pas indispensables, mais on ne peut pas se passer du microphone ni de l'accès au réseau.
Le micrologiciel qui gère l'accès au réseau est préinstallé. Si tout ce que le programme se contentait de faire était de communiquer avec le réseau quand vous le souhaitez, on pourrait le considérer comme un simple circuit. Quand nous insistons sur le fait que les logiciels de tout système informatique doivent être libres, nous pouvons passer sur un micrologiciel préinstallé qui ne sera jamais mis à jour, car cela ne fait pas de différence pour l'utilisateur que ce soit un programme plutôt qu'un circuit.
Malheureusement, dans ce cas ce serait un circuit malveillant. Les fonctions malveillantes sont inacceptables, quelle que soit la manière dont elles sont implémentées.
Sur la plupart des appareils Android, ce micrologiciel a tellement de contrôle qu'il pourrait transformer le produit en un appareil d'écoute. Sur certains, il peut prendre le contrôle total de l'ordinateur principal par l'intermédiaire de la mémoire partagée, et peut ainsi supplanter ou remplacer les programmes libres que vous avez installés. Avec certains modèles, peut-être avec tous, il est possible d'exercer un contrôle à distance sur ce micrologiciel pour écraser les autres programmes de l'appareil. Le but du logiciel libre étant d'avoir le contrôle de nos logiciels et de notre informatique, les systèmes comportant des portes dérobées sont disqualifiés. Bien que tout système informatique puisse avoir des bogues permettant de le moucharder, ces appareils peuvent être des mouchards (Craig Murray, dans Meurtre à Samarcande, fait le récit de son rôle dans une opération de renseignement qui convertit en appareil d'écoute le téléphone portable non Android d'une cible qui ne se doute de rien).
En tout cas, le micrologiciel gérant l'accès au réseau dans un téléphone Android n'est pas l'équivalent d'un circuit, parce que le matériel permet l'installation de nouvelles versions et que cela arrive effectivement. Comme il s'agit d'un micrologiciel privateur, en pratique seul le fabricant peut faire de nouvelles versions ; les utilisateurs ne le peuvent pas.
Pour résumer, on peut tolérer des versions non libres d'un micrologiciel gérant l'accès au réseau à la condition qu'il ne soit pas mis à jour, qu'il ne puisse pas prendre le contrôle de l'ordinateur principal, et qu'il puisse seulement communiquer si et quand le système d'exploitation libre le permet. En d'autres termes, il doit être l'équivalent d'un circuit, et ce circuit ne doit pas être malveillant. Il n'y a pas d'obstacle technique à construire un téléphone Android qui ait ces caractéristiques, mais nous n'en connaissons aucun.
Android n'est pas un système autonome ; il a besoin d'un autre système pour son développement. Les outils du « kit de développement » de Google (SDK) semblent être libres, mais c'est difficile à vérifier. Les fichiers de définition de certaines API de Google ne le sont pas. Installer le SDK exige de signer un contrat de licence privatrice, ce qu'on doit refuser par principe. Le SDK de Replicant est un remplaçant libre.
De récentes couvertures médiatiques se sont intéressées aux guerres de brevets. Pendant les 20 ans de campagne qui ont été consacrés à l'abolition des brevets logiciels, nous n'avons cessé de mettre en garde contre de telles guerres. Les brevets logiciels pourraient contraindre certaines fonctions d'Android à disparaître, ou même rendre le système indisponible (consultez endsoftpatents.org, pour en savoir plus sur les raisons qui rendent l'abolition des brevets logiciels nécessaire).
Pourtant, les attaques sur les brevets et les réponses de Google n'ont pas de lien direct avec le sujet de cet article, qui analyse en quoi la distribution des produits Android se rapproche un peu d'un système éthique, et en quoi elle reste en deçà. Ce problème mérite l'attention de la presse également.
Android représente une étape majeure vers un téléphone portable éthique, fonctionnant avec du logiciel libre et contrôlé par l'utilisateur, mais il y a encore beaucoup de chemin à parcourir et Google est en train de prendre la mauvaise direction. Les hackers travaillent sur Replicant, mais c'est une tâche considérable que de gérer techniquement un nouveau modèle d'appareil, et il reste encore le problème du micrologiciel. Même si les téléphones Android d'aujourd'hui sont considérablement moins mauvais que ceux d'Apple ou de Windows, on ne peut pas dire qu'ils respectent votre liberté.
Note
- ↑ L'exemple ultime de cette confusion se trouve sur le site linuxonandroid.com, qui propose de l'aide pour « installer Linux [sic] sur vos appareils Android ». C'est entièrement faux : ce qu'ils installent est une version du système GNU, à l'exclusion de Linux qui fait partie d'Android. Puisque ce site ne s'occupe que de distributions GNU/Linux non libres, nous ne le recommandons pas.
Publié initialement dans The Guardian.
Soutenez la campagne « Libérez votre Android ».