Android et la liberté des utilisateurs par Richard Stallman

Temps de lecture 10 min

image_pdfimage_print

Laihiuyeung Ryanne - CC byAndroid, le système d’exploitation de Google pour la téléphonie mobile, est-il véritablement un logiciel libre  ?

C’est la question que s’est posée récemment Richard Stallman dans le colonne du Guardian.

«  Presque  » pourrait être une réponse optimiste. Mais c’est un presque subtil et complexe qui demande quelques explications et éclaircissements[1].

Parce qu’ici comme ailleurs, le diable se cache souvent dans les détails…

Android et la liberté des utilisateurs

Android and Users’ Freedom

Richard Stallman – 19 septembre 2011 – GNU.org
Traduction  : Sylvain Le Menn – Creative Commons BY-ND

Dans quelle mesure est-ce qu’Android respecte les libertés 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 les libertés des utilisateurs de sorte que vous comme moi puissiez échapper à l’emprise de ceux qui les dénient. 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. Sans parler de Linux, le logiciel d’Android versions 1 et 2 a été concu 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 qu’il contient des morceaux de code non libres (des «  binary blobs  »), tout comme la version de Torvalds de Linux, dont quelques-uns sont réellement utilisés dans des machines tournant sous Android. Les plateformes Android utilisent des microprogrammes non libres aussi, ainsi que des bibliothèques non libres. À part cela, le code source des versions 1 et 2 d’Android telles que faites 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 majoritairement 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, ensuite ce code pourrait être combiné avec un code sous licence Apache, et la combinaison pourrait être rendue publique 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), même si les exécutables ont été rendus disponibles pour le public. Le code source d’Android 3.1 est aussi retenu. Ainsi, Android 3, en dehors de Linux, est purement et simplement du logiciel non libre.

Google a dit qu’ils gardaient le code source de la version 3.0 parce qu’il était bogué, et que les gens devraient attendre la version d’après. Cela pourrait être un bon conseil pour ceux qui veulent juste faire tourner le système Android, mais les utilisateurs devraient être ceux qui prennent ces décisions. Et de toutes façons les développeurs et les bidouilleurs qui voudraient inclure des changements dans leurs propres versions pourraient très bien utiliser ce code.

Le fait de ne pas rendre publique deux versions du code source est source d’inquiétudes dans le sens que Google pourrait vouloir rendre Android propriétaire de manière permanente, que la publication de quelques versions d’Android ait été une stratégie temporaire afin d’obtenir l’aide de la communauté pour améliorer un logiciel propriétaire. Espérons que ce n’est pas le cas.

Dans tous les cas, la plupart du code source de plusieurs versions d’Android ont été publiées en tant que logiciel libre. Est-ce que ça veut dire que des machines qui utilisent ces versions d’Android respectent les libertés de l’utilisateur  ? Non, ce n’est pas le cas 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 un bon produit pour autant. Il y a aussi la présence de bibliothèques non libres. Qu’elles fassent partie d’Android ou pas 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 de 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. Le reste du code sous licence Apache ne les oblige pas à publier le code source des versions qu’ils utilisent réellement.

Replicant, 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 qui est disponible pour vous. 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 propriétaires aussi. Ceux-ci gèrent le matériel pour le réseau, la radio, le wifi, le bluetooth, le GPS, l’accélération 3D, l’appareil photo, les hauts-parleurs, et dans certains cas le microphone aussi. Sur certains modèles, quelques-uns de ces pilotes sont libres, et pour certains 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 c’est un programme plutôt qu’un circuit.

Malheureusement, dans ce cas ce serait un circuit malveillant. Des 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 entier 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’occurence 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 à Samarkand, fait le récit de son rôle dans une opération de renseignement qui convertit un téléphone portable sans Android d’une cible peu suspicieuse 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 il fonctionne dans ce but d’ailleurs. Puisque c’est un micrologiciel propriétaire, 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 des micrologiciels gérant l’accès au réseau à la condition que des mises à jour ne seront pas téléchargées, elles ne prendront ainsi pas contrôle de l’ordinateur principal, et il peut seulement communiquer quand et si le système d’exploitation libre le permet. En d’autres termes, il doit avoir un fonctionnement équivalent à un circuit, et ce circuit ne doit pas être malveillant. Il n’y a pas d’obstacles à construire un téléphone Android qui a 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 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 aussi.

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, mais c’est un gros travail de rendre un nouveau modèle compatible, 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 vos libertés.

Notes

[1] Crédit photo  : Laihiuyeung Ryanne (Creative Commons By)

6 Responses

  1. bouts

    Merci pour l’article matinal 🙂
    Mais, il n y a pas une coquille là : »la totalité de l’écosystème GNU/Linux  » ? (combination = écosystème ?).

  2. untel

    … d’autant plus, que si je ne m’abuse, RMS conspue le terme « ecosystème » lorsqu’on parle d’informatique…

  3. Taneleo

    Pour mon usage, je vois 2 problèmes à Android :

    – trop dépendant de Google. Dans le cas d’un téléphone, des fonctionnalités sont volontairement bridées (cf. la fonction Agenda qui ne permet de rajouter des agendas que via un compte Google Calendar). On me dit toujours, « si tu n’aimes pas Google, libre à toi de ne pas l’utiliser ». Je passe sur le fait que cette recommandation émane de personnes qui ne savent pas de quoi elles parlent, l’important ici étant qu’un téléphone Android sans compte Google ne sert à rien, dans la mesure où vous ne pourrez pas installer des applications puisque pour utiliser le Market il faut un compte Google (et qu’en créant un compte, ça vous crée un compte Gmail et Google Calendar) [oui je sais, on peut installer des applications en dehors du Market, mais la plupart n’y sont pas, à commencer par Firefox].

    Alors, Google conçoit-t-il un software pour téléphone ou un spyware ?

    Réponse : un spyware.

    – deuxième point : l’impossibilité de supprimer des applications. Seules les applications que nous installons peuvent être supprimées. Comme je ne suis pas un décérébré, ce qui veut dire que je ne suis pas fan d’Apple, je n’ai pas envie d’acheter une «expérience utilisateur» avec mon smartphone. Je veux un smartphone, le reste je m’en débrouillerai. Ce qui veut dire que je veux pouvoir supprimer les applications Google si je ne souhaite pas utiliser Google.

    Résultat : je n’utilise pas mon smartphone Android (pas confiance et je ne peux pas en faire ce que je veux), mais aussi je n’ai plus du tout envie d’acheter un produit Android (et encore moins Apple) – j’en ai marre de me faire baiser la gueule, ni tous ces «gadgets» dont ces connards de marketeux font la promotion en diffusant massivement l’idée que si vous ne les aimez pas, vous n’êtes pas normal.

    Les films de science-fiction se sont trompés, ce ne sont pas les télé-écrans qui dirigent le plus les gens, mais les marketeux (ah ! science sans conscience…). Mais aujourd’hui nous en sommes bien là.

    En fait, ces entreprises veulent 100 balles et un Mars. Et de nombreux crétins disent amen.

    D’autant plus une chose primordiale : on vit beaucoup mieux sans toutes ces sources de distractions et de diversions.

    Note : concernant les ROM alternatives, les plus «sérieuses» n’ont pas coupé le cordon avec Google, donc idem pour moi, elles sont inutilisables (la palme revenant quand même à Cyanogenmod dont on ne peut purement et simplement pas utiliser l’Agenda du téléphone sans compte Google).

    Note 2 : autant dire que si c’est cela l’avenir de l’informatique, j’en serai alors un opposant.

  4. PaulK

    @Taneleo :

    Sur la dépendance d’Android envers Google : c’est vrai, les versions « officielles » d’Android, celles diffusées dans les téléphones mobiles, dépendent fortement de Google, normal, c’est « l’expérience Google »… Quand on prend des dérivés du code libre d’Android (genre CyanogenMod sans les Google apps) c’est moins vrai : le seul vrai exemple est celui que tu cite : l’application Agenda. J’ai déjà passé plusieurs heures à me demander comment on pouvait résoudre ce problème, à priori, il faudrait ajouter un type de compte à stockage local (genre dans un BDD sqlite).

    Pour le reste, c’est très dépendant du fait d’utiliser le système Android « officiel » avec les bouts pas libres dedans.

    « on vit beaucoup mieux sans toutes ces sources de distractions et de diversions. » : c’est un autre débat. Dire « que l’on vit beaucoup mieux sans » reste quand-même une conception très personnelle et qui ne s’applique peut-être qu’à toi. Je pense qu’il faudrait se demander quelles sont effectivement les services rendus par ces trucs-là, dans quels cas on en a besoin, etc. Par exemple, je suis assez heureux de pouvoir synchroniser mes mails le matin chez moi avant de partir, de les lire dans le bus le matin, de réfléchir à des réponses la journée pour écrire une réponse le soir dans le bus, avec mon « smartphone ». Je peux en même temps écouter de la Musique avec, tout en pouvant téléphoner, etc. Bref sans faire de pub, j’y trouve personnellement un intérêt. Ce n’est peut-être pas ton cas, et je respecte ça. Je trouve aussi que les tendances, induites par la pub et maintenues/ou par l’inertie sociale, tendant à marginaliser les individus refusant ce genre d’appareils est franchement détestable. Un autre exemple est naturellement l’utilisation de Facebook (c’est particulièrement la cas pour moi dans un environnement de lycéen) que certains, (dont je fais naturellement partie) refusent.

    Et le problème de l’Agenda, CyanogenMod l’hérite directement des sources libres d’Android (de l’Android Open Source Project), is n’y apportent simplement pas de solution (et d’ailleurs, Replicant non-plus, puisque je n’ai pas réussi à aboutir à quelque chose, alors que j’en aurais, personnellement, vraiment besoin).

  5. eagleofdeath13

    @ les 2 autres au dessus

    Pour l’agenda, de mémoire un compte exchange fonctionne aussi (j’ai l’agenda de google d’activé, mais il me propose aussi celui du compte hotmail)

  6. joseph-tux

    Article très intéressant !

    Et en 2013, avec Androïd4.0 IceCreamSandwich, la situation a-t-elle évoluée ? si oui dans quel sens ?

    En effet je découvre cet article car j’envisage l’achat d’une tablette comme prolongement de mon PC de bureau, sous GNU/Linux ( Debian )

    On vient de me mettre l’eau à la bouche en m’offrant un iPAD dernière génération tout clinquant et bien peu communicant avec les étrangers.. tout comme mon « vieux  » Palm TX et mon pas-si-libre que je croyais téléphone NOKIA N97.