J'étais jusqu'à présent très critique envers les soit-disants “smartphones”, à juste titre je pense si on les considère du point de vue du logiciel libre, et réticent à en acquérir un. Mon vieux petit Wiko Lubi 2, un téléphone barre à l'ancienne, me suffisait amplement.
Mais ces derniers temps, il était clairement sur le déclin et commençait à avoir des comportements étranges (l'alarme qui se déclenche après l'avoir réglée, pas de tonalités en mode “discret” et autres bizarreries). Je me suis donc reposé à nouveau la question d'acquérir un smartphone ou pas.

Après 2 semaines d'hésitation et de recherches sur les alternatives pouvant me convenir, j'ai décidé de franchir le pas et d'upgrader mon forfait chez Free qui propose dans sa boutique le Wileyfox Spark + installé avec Cyanogen OS.
Si ce n'est pas totalement libre, c'est déjà un mieux vis-à-vis des Android “classiques” : plus de libertés et de possibilités de contrôle de ce qui se passe sur la machine, moins d'applications bidons préinstallées (facebook et autres saloperies du genre).
Mais, et c'est un gros mais ! il existe une différence majeure entre Cyanogen OS et Cyanogen Mod :
Cyanogen OS est la version vendue aux fabriquants de téléphones. Elle inclus quelques applications google (qu'il est possible de désactiver sans toutefois pouvoir les désinstaller) mais surtout, il n'est pas possible d'activer l'accès root sur la machine !

Be root or be dead ! (Iron Maiden Inside)

Je ne commenterai pas l'importance d'être root sur sa machine, c'est fondamental ! Si vous n'êtes pas root, quelqu'un ou quelque chose d'autre l'est, à vos dépends généralement.
Être root sans savoir ce qu'on fait est une faille de sécurité. Ne pas pouvoir être root du tout en est une aussi, bien pire à mon sens. Vous ne contrôlez pas ce que fait la machine.
Android avec ou sans Cyanogen (OS ou Mod) n'est ni plus ni moins qu'une distribution GNU/Linux et il est strictement hors de question que je ne sois pas root sur une de mes machines GNU/Linux.

Happy hacking ! !

J'ai donc décidé d'installer Cyanogen Mod par dessus Cyanogen OS de manière à reprendre le contrôle de la machine.
Voici sommairement les étapes que j'ai suivies :

Je précise que je n'ai que peu de connaissances en matière de téléphonie mobile, que c'est la 1ère fois que je fais ça, que cette procédure est sûrement propre à mon téléphone. Ne suivez pas ça aveuglément, renseignez vous abondamment avant de faire quoi que ce soit !


Sur mon ordinateur, j'ai installé adb et fastboot :

apt install adb fastboot

Sur le téléphone, j'ai activé le mode développeur en tapant 7 fois sur l'UUID (dans Paramètres => À propos du téléphone) puis le redémarrage avancé et le déverrouillage OEM du bootloader dans les Options développeurs (attention le déverrouillage du bootloader a eu pour effet de me réinitialiser complétement la machine).
J'ai connecté le téléphone à l'ordi en USB puis l'ai redémarré sur le bootloader.

Sur l'ordinateur, j'ai téléchargé ici la ROM recovery (colonne de droite) de la version de Cyanogen Mod correspondante (porridge). Puis j'ai flashé la partition /recovery avec :

fastboot flash recovery /home/moi/chemin/vers/porridge_recovery.img

Ça prend quelques secondes, une fois fait, j'ai rebooté :

fastboot reboot

Quand le téléphone a redémarré, j'ai activé l'Adb (Android Debug Bridge) en mode réseau dans les Options développeurs ainsi que le wifi.
J'ai connecté mon ordinateur au tél via adb :

adb connect 192.168.X.X:5555

(Mettre l'IP du téléphone évidemment).

J'ai téléchargé le build de Cyanogen Mod correspondant à mon matériel ici puis l'ai “poussé” sur le téléphone a un emplacement visible par le recovery :

adb push /home/moi/chemin/vers/cm-13.0-20161030-NIGHTLY-porridge.zip /storage/86D5-1DF3/Android/data/

(Le chemin du “storage” correspond à MON tél (ma carte mirco-SD en l'occurence), il est à adapter à votre matériel !)

Ça prend longtemps. Une fois fin (récupération du prompt dans le terminal de l'ordinateur), j'ai redémarré sur le recovery.
Dans le menu recovery, j'ai sélectionné “Apply update” puis j'ai navigué jusqu'au Zip précédemment déposé et l'ai sélectionné.

Le téléphone fait son travail et au reboot vous devriez voir la bouille bleue de la mascotte de Cyanogen Mod apparaître puis le téléphone va poursuivre son initialisation.
Si vous aviez des applications installés, il est très probable qu'elles crashent, il faudra les réinstaller.
Bonne surprise : la mise à jour vers Cyanogen Mod m'a viré toutes les applis google !

Note : vous pouvez retrouver ces étapes ici (en anglais) : https://wiki.cyanogenmod.org/w/Install_CM_for_porridge

Et pour finir, une pincée de logiciel libre !

Pour finir ma configuration, j'ai bien entendu activé l'accès root puis j'ai ajouté quelques applications nécessaires ou utiles :

  • F-droid, l'app store libre : https://f-droid.org ;
  • Firefox : mon navigateur favori malgré tout ;
  • Orbot et Orfox : l'équivalent du TorBrowser ;
  • AFwall+ : un pare-feu bien fait qui me permet de contrôler quelle appli peut accéder à quel interface réseau ;
  • Nextcloud : le client pour mon cloud auto-hébergé ;
  • Owncloud News : Un lecteur de news pour Owncloud/Nextcloud ;
  • Davdroid : pour synchroniser mes agendas et contacts depuis mon serveur Nextcloud sur mon téléphone ;
  • Termux : un émulateur de terminal bien foutu, fonctionnant en chroot et permettant d'installer des paquets (htop, vim) via un apt install ;
  • ConnectBot : un client SSH ;
  • OpenVPN : un client OpenVPN, toujours utile pour monitorer ou se connecter à distance à d'autres machines ;
  • VLC : pour les quelques vidéos que je serais amené à regarder, très anecdotique ;
  • MuPDF : le célèbre lecteur pdf très léger ;
  • Conversation : un client XMPP multi-compte ;
  • #AiCiA : un client IRC ;
  • Amaze : un gestionnaire de fichiers agréable à utiliser ;
  • EDIT (Merci à Yann) : OsmAnd : GPS et cartes avec OpenStreetMap.

Le reste de ma configuration est à l'avenant avec des règles de confidentialité assez drastiques et évidemment, la géolocalisation désactivée.

Je ne prétendrais pas qu'avec cela j'ai un téléphone portable 100% libre mais je pense en être aussi prêt que possible à l'heure actuelle.