L'original de cette page est en anglais.

Android et la liberté des utilisateurs

par Richard Stallman
Publié initialement dans The Guardian [EN]

Soutenez la campagne «  Libérez votre Android »

Dans quelle mesure Android respecte-t-il la liberté de ses utilisateurs ? Pour l'utilisateur d'un 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 portables. Il est constitué du noyau Linux (le noyau de Torvalds), 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, qui est une licence libre permissive 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, il contient des morceaux de code non libres [binary blobs]) dont quelques-uns sont effectivement utilisés dans des machines 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 telles que publiées par Google sont libres, mais ce code est insuffisant pour faire tourner l'appareil. Quelques applications qui viennent généralement avec Android sont aussi 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 l'écosystème GNU/Linux s'emmêlent les pinceaux, et font des affirmations paradoxales telles que « Android contient Linux, mais ce n'est pas Linux ». Si nous évitons cette confusion au départ, la situation est simple : Android contient Linux, mais pas GNU. Ainsi Android et GNU/Linux sont essentiellement différents.

À l'intérieur d'Android, le noyau Linux reste un programme séparé, avec le code source sous licence GNU GPL version 2. Combiner Linux avec le 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 [EN], ce code pourrait ensuite être combiné avec un 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 licence GPL (General Public License ou Licence publique générale) 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 du logiciel non libre.

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, la plus grande partie du code source de diverses versions d'Android a été publiée en tant que logiciel libre. Est-ce que ça veut dire que des machines qui utilisent ces versions d'Android respectent la liberté de l'utilisateur ? Non, et ceci pour plusieurs raisons.

Tout d'abord, la majorité des versions comprend 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 de bon produits pour autant. Il y a aussi la présence de bibliothèques non libres. Qu'elles fassent partie d'Android ou non est discutable, ce qui importe c'est que beaucoup de fonctionnalités en dépendent.

Même les exécutables qui font officiellement partie d'Android peuvent ne pas correspondre au code des versions publiées par Google. Les constructeurs peuvent changer le code, et bien souvent ils ne publient pas le code source de leurs versions. La licence GNU GPL les oblige, en théorie, à redistribuer le code de leurs versions de Linux. Pour le reste du code, qui est sous licence Apache, ils ne sont pas obligés de publier le code source des versions qu'ils utilisent réellement.

L'un des changements qu'apportent certains fabricants à Android est l'ajout d'un dispositif caché de surveillance générale [EN] comme Carrier IQ.

Replicant [EN], une version libre d'Android qui n'est compatible qu'avec quelques modèles de téléphones, a remplacé beaucoup de bibliothèques, et peut fonctionner sans les applications non libres. Mais il y a d'autres problèmes.

Certains modèles sont conçus pour empêcher leur propriétaire d'installer et de modifier le logiciel. Dans cette situation, 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, ce qui permet aux utilisateurs d'y installer d'autres logiciels.

Les micrologiciels importants et les pilotes sont généralement privateurs1 é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 pour d'autres on peut s'en passer, mais le microphone et l'accès au réseau sont plutôt indispensables.

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 tourner dans son coin, on pourrait le considérer comme un simple circuit. Quand on insiste sur le fait qu'un logiciel dans un ordinateur doit être libre, on peut 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 téléphones 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, à travers la mémoire partagée, et peut ainsi supplanter ou remplacer le logiciel libre que vous avez installé. Avec certains modèles, il est possible d'exercer un contrôle à distance sur ce micrologiciel, et ainsi sur le téléphone tout entier, à travers le logiciel permettant l'accès au réseau. Le principe du logiciel libre, c'est d'avoir le contrôle sur la machine, et cet appareil en l'occurrence ne remplit pas cette mission. Bien que n'importe quel système informatique puisse AVOIR des bogues, ces appareils peuvent ÊTRE des bogues (Craig Murray, dans Meurtre à Samarcande [EN], fait le récit de son rôle dans une opération de renseignement qui convertit le téléphone portable non Android d'une cible qui se doute de rien, en un appareil d'écoute).

En tout cas, le micrologiciel du téléphone permettant l'accès au réseau n'est pas l'équivalent d'un circuit, car le matériel permet l'installation de nouvelles versions, et c'est d'ailleurs ce qui se passe. Puisque c'est 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 quand et si 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 à construire un téléphone Android qui ait ces caractéristiques, mais nous n'en connaissons aucun.

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 avons prévenu que de telles guerres pouvaient arriver. Les brevets logiciels pourraient contraindre à la disparition de fonctions dans Android, ou même le rendre indisponible (consultez endsoftpatents.org [EN] pour plus d'informations sur les raisons nécessitant l'abolition des brevets logiciels).

Pourtant, les attaques sur les brevets, et les réponses de Google, n'ont pas de lien direct avec le sujet de cet article : comment les produits Android sont proches d'un système de distribution éthique, et comment ils échouent de peu. Ce problème mérite l'attention de la presse également.

Android représente une étape majeure vers un téléphone portable libre qui soit contrôlé par l'utilisateur, mais il y a encore beaucoup de chemin à parcourir. Les hackers travaillent sur Replicant [EN], mais c'est un gros travail de gérer techniquement un nouveau modèle de téléphone, 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 les smartphones d'Apple ou de Windows, on ne peut pas dire qu'ils respectent votre liberté.

Note de traduction
  1. Autre traduction de proprietary : propriétaire.

La Free Software Foundation est le principal sponsor institutionnel du système d'exploitation GNU. Notre mission est de préserver, protéger et promouvoir la liberté d'utiliser, d'étudier, de copier, de modifier et de redistribuer les programmes informatiques, et de défendre les droits des utilisateurs de logiciels libres. Soutenez GNU et la FSF en achetant des manuels et autres objets, en adhérant à la FSF en tant que membre associé ou en faisant un don, soit directement à la FSF, soit via Flattr.

Haut de la page