Sommaire
- Contexte
- Trous de lapins et galères (croyais-je ?)
- Retournement de situation (« plot twist », si vous préférez)
- Conclusion
J'ai un téléphone sous LineageOS et la version 17.1 (Android 10) est maintenant disponible pour mon téléphone. J'utilise F-Droid et microG.
Contexte
F-Droid est un magasin d'applications libres. J'utilise ça et pas autre chose. De plus, n'installant pas les fameuses GApps (services Google), je n'ai pas le Play Store, le service de communication utilisé par plein d'applications qui utilise le cloud Google (GCM - Google Cloud Messaging / Firebase), et le service de géolocalisation Google utilisant les antennes Wifi et téléphoniques aux alentours.
Pour les gens qui, comme moi, on besoin de certaines de ces fonctionnalités, il y a microG: un ensemble d'applications libres réimplémentant ces services Google, notamment :
- un Play Store fake (ne me demandez pas, je ne sais pas vraiment ce que ça fait)
- une bibliothèque qui permet aux applications compilés avec les blobs propriétaires de Google de continuer à communiquer en utilisant le cloud Google, alors que les GApps ne sont pas installés sur le téléphone
- un système de géolocalisation Wifi / GSM s'appuyant sur divers fournisseurs qu'on peut choisir / cumuler parmi :
- des données locales, récupérées avec le téléphone lui-même ou téléchargés en avance pour utilisation hors ligne
- celui d'Apple (probablement utilisé dans les iPhones / iPad)
- le service de localisation Mozilla (qui peut être complété à l'aide de l'application Mozilla Stumbler ou de Firefox Mobile sur Android. Ça fait ce que font les appareils Android ou Apple à l'insu des utilisateurs, mais en toute connaissance de cause : de temps en temps, le GPS est utilisé, les réseaux aux alentours sont scannés et la combinaison est envoyée à Mozilla (la base de donnée n'est pas libre)
- celui de Nominatim
- celui de MapQuest
Ces trois derniers nécessitent une connexion mobile, mais globalement ça ne consomme vraiment pas beaucoup de données. Avec mon forfait 50 M / mois, ça passe large.
- un truc qui fait l'inverse : il prend une position GPS et renvoie des adresse. On peut utiliser Nominatim pour ça. Je ne sais pas très bien ça s'utilise mais c'est possible apparemment.
Ce qui m'intéresse, ce sont les deux derniers points, et en tout cas le point 3. J'ai un GPS un peu faiblard, et puis ça ne marche pas toujours bien dans les transports ou dans un bâtiment / une maison. Les deux premiers points, je m'en fiche, je n'utilise pas d'application qui a besoin d'un Play Store fake ou du cloud Google. Ce sont des applications qui sont compilées avec le blob proprio Google et qui ne trouvent donc pas leur chemin jusqu'à mon téléphone. Jusqu'à maintenant, j'utilisais le système LineageOS for microG, une recompilation de LineageOS avec :
- les applications microG, qui peuvent être installées avec F-Droid
- un mécanisme qui permet aux services microG de se faire passer pour les services Google. Ceux-ci sont signés avec une clé privée de Google, et les applications utilisant ces services à travers le blob propriétaire Google vérifient que la signature du service qui leur répond correspond bien à cette signature. Bien sûr, microG ne peut pas utiliser cette signature, donc ça rate, donc il faut la coopération du système d'exploitation pour que ça marche quand même. LineageOS refuse d'implémenter le patch qui introduit cette "fonctionnalité" (signature spoofing).
Avant LineageOS 17.1
Au lieu d'installer LineageOS, je pouvais installer LineageOS for microG. Cette distribution intègre le fameux patch nécessaire (tout comme de nombreuses autres distributions alternatives (AICP, AOSPExtended, etc), et aussi l'extension F-Droid il me semble (mais qu'on peut de toute façon la flasher sur n'importe quelle distribution Android).
Avec LineageOS 17.1
- pas de version microG de lineage 17.1 (pour le moment)
- la version actuelle de l'extension F-Droid qui permet à F-Droid d'installer et mettre à jour des applications sans afficher 30000 boites de dialogues ne fonctionne pas sur Android 10, des chemins systèmes ont changé.
Je pourrais rester sur Android 9, ça marche très bien, mais tant qu'à faire j'ai migré avant de connaître ces problèmes et de toute façon, cette version ne reçoit plus de mise à jour sur mon modèle. Pas de support officiel d'AICP et d'AOSPExtended pour mon modèle non plus. Donc, installation de la dernière version officielle de LineageOS, et pas de microG.
Trous de lapins et galères (croyais-je ?)
Il fallait donc installer microG un peu manuellement, puis appliquer ce fameux patch manuellement (pensais-je). Pour ça deux familles de solution :
- une recompilation de LineageOS avec un patch : bye bye les mises à jour automatiques, c'est un peu lourd en gestion même si j'ai le coup de main pour compiler Android maintenant.
- des scripts qui viennent décompiler et patcher un fichier JAR dans le système. C'est un peu bricolage, ce qui existe n'a pas l'air d'être très adapté pour Android 10 pour le moment, ça saute lors de la prochaine mise à jour si toutefois celle-ci veut bien s'appliquer après la modif, et je soupçonne la solution de causer potentiellement des problèmes de stabilités.
Pas ouf, donc. Sauf qu'en fait,
Retournement de situation (« plot twist », si vous préférez)
Pas besoin du patch pour juste la géolocalisation. Après vérification désespérée. En fait, Android fournit de base un mécanisme pour enregistrer des fournisseurs de géolocalisation proprement sans devoir usurper des signatures ou quoi que ce soit (je me disais aussi… pourquoi tant de haine ?).
Bon du coup problème réglé, je n'ai pas besoin d'une distribution spéciale de LineageOS. Parfait. Reste l'installation de microG. (Oui, les lecteurs et lectrices les plus aguerries auront remarqué que j'ai eu besoin d'installer microG avant de m'apercevoir que ça marchait sans le patch, mais bon, je raconte dans l'ordre que je veux !)
C'est Magisk
Il se trouve que j'utilise Magisk pour rooter mon téléphone (plus de support officiel pour rooter LineageOS depuis la version 17.1 apparemment pour je ne sais quelle raison. On ne peut plus télécharger les addonsu, et puis de toute façon Magisk fournit un contrôle plus grand - on peut savoir quelles applications essayent d'être root, autoriser / bloquer par application, etc) et que Magisk permet d'installer des modules sympa qui modifient le système de manière à ce que les mises à jours soient toujours possibles, et les modules restent installés après grâce à l'utilisation du mécanisme de survie des modules (addon.d
) présent dans la plupart des systèmes alternatifs Android.
Or, il y a deux modules Magisk très intéressants :
- F-Droid Privileged Extension
- microG Installer Revived
En résumé
- installation de LineageOS 17.1
- on flashe Magisk : c'est un peu intrusif, ça touche la partition de démarrage du téléphone, pensez de toute façon à tout sauvegarder avant de faire quoi que ce soit, mais je n'ai jamais eu de problème et ça marche plutôt bien
- une fois démarré, on peut installer deux modules Magisk
- c'était pénible, ils ont tout cassé avec Android 10, mais finalement c'est plus simple comme ça maintenant
On configure microG, et pif, c'est plié, c'est propre, ça marche et ça survit les mises à jour.
Bonus
Tout n'est pas bon à prendre dans les modules Magisk. Magisk lui-même est complètement libre, et les auteurs font bien attention à ne pas embarquer de code propriétaire. Par exemple, certaines applications (des applications bancaires, des trucs utilisant les DRM (Netflix, autres j'imagine)) vérifient qu'elles sont bien lancées sur un téléphone et un système vérifiés par Google, et la vérification ne passe pas sur un système bidouillé. Magisk embarque un mécanisme pour tester l'état de Safety Net et pour ce faire, il s'appuie sur le blob propriétaire Google bien sûr. Le mécanisme n'est pas là de base et Magisk demande bien l'autorisation à l'utilisateur pour télécharger ce module en l'avertissant que du code propriétaire est nécessaire.
Cette attention n'est pas garantie dans les modules qu'on peut installer via Magisk, et on trouve vraiment de tout : des trucs libres, des trucs proprios, des machins pas à jour, etc. À charge de l'utilisateur de faire ses recherches.
Il y en a quand même des sympas, et notamment :
- Fullscreen Gestures : ça permet, quand on utilise le nouveau mode "gestes" d'Android 10 pour naviguer (changer d'application, revenir en arrière, etc), de cacher complètement la barre de navigation devenue inutile. Pour une raison qui m'échappe, la possibilité de masquer la barre de navigation n'est pas dans Android 10 de base. Les gestes eux-même m'intéressent passablement, mais je navigue en utilisant le lecteur d'empruntes: un "touch" court pour faire précédent et touch long pour avoir la liste des applications ouvertes. La barre de navigation ne me sert pas, prend de la place pour rien, et ne peut pas être recouverte par les filtres d'écran tels que Red Moon. Avant, j'utilisais un petit script pour ajouter une propriété au fichier
/system/build.prop
(qemu.hw.mainkeys=1
) pour faire ça, et il fallait que je le fasse après chaque mise à jour. Maintenant ça se fera tout seul, c'est bien. Par contre les gestes ont l'air de se mettre un peu en travers de mon utilisation du téléphone, j'ai réduit la sensibilité et la zone active au maximum, et si ça ne va pas je reviendrai à la solution précédente. - Cross compiled Binaries : quelques binaires venus du monde de GNU/Linux
- SSH for Magisk : ssh et rsync sur Android, pour les transferts, c'est plutôt pratique
Et quelques un que je n'ai pas encore eu l'occasion de tester :
- ZSH for Arm : j'utilise Zsh sur mon ordi classique, l'avoir quand on est en root sur Android sera peut-être pratique un jour, mais bon je ne vis pas dans le shell root d'Android non plus et le système est par défaut lancé en lecture seul donc pas d'historique. Donc l'intérêt n'est pas encore très clair. J'utilise plus les outils de Termux quand je dois utiliser la ligne de commande sur Android.
- rclone-mount : ça permet de monter des systèmes de fichiers distant (différents clouds, sftp, http, webdav) en utilisant FUSE. Je ne savais pas que c'était possible sur Android, j'avais essayé d'utiliser sshfs sur Termux, sans succès.
Conclusion
C'était un journal plus long que prévu. Mais j'espère que ça vous aura diverti, ou, encore mieux, vous aura été utile ! :-)
Bon weekend
# Petit problème de formatage
Posté par raphj . Évalué à 1.
Le paragraphe
S'applique à la sous liste du point 3. J'ai merdouillé le formatage. Est-ce que ça serait possible de corriger ça s'il vous plait ?
[^] # Re: Petit problème de formatage
Posté par gUI (Mastodon) . Évalué à 2. Dernière modification le 20 juin 2020 à 18:45.
J'ai pas pu conserver la numérotation, en rajoutant ce paragraphe ça repartait à 1, j'ai donc mis des listes à puce au premier niveau.
Dis-moi si ça te va.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Petit problème de formatage
Posté par raphj . Évalué à 2.
Top, merci !
# Sans Lineage
Posté par AlexTérieur . Évalué à 1.
Journal intéressant.
J'ai un smartphone de grande marque auquel j'ai essayé de supprimer un max d'applis. Je dois hélas en garder quelques unes du constructeur, notamment parce que j'ai une montre connectée de la même marque. J'ai tout désinstallé de Google sauf l'appli nommée "Service Google Play" (j'utilise aussi Aurora Store). A quoi cela correspond-il ?
Je précise que je ne souhaite pas changer de rom dessus. Est-il possible de faire ce qui est dit ici sans changer de rom ?
[^] # Re: Sans Lineage
Posté par bubar🦥 (Mastodon) . Évalué à 2. Dernière modification le 21 juin 2020 à 20:52.
Bonjour,
Une partie (incomplète) de réponse :
j'utilise le mode "profil professionnel" d'Android afin d'isoler les applications tierces et pas libres (ainsi mes apps bancaires et assurances sont isolées dans le système et n'ont pas accès à mes datas) Pas complètement hors sujet car le "profil professionnel" d'Android est également dispo sur de nombreux téléphones par défaut et peut être utilisé à ce type de fin
Réponse à compléter !
[^] # Re: Sans Lineage
Posté par raphj . Évalué à 4.
Petite précision :
Si téléphone déverrouillé (Magisk permettant de rooter le téléphone).
Sais-tu comment le profil professionnel isole les applications ? (plus que le modèle d'exécution sur Android, avec un utilisateur UNIX par application, etc).
[^] # Re: Sans Lineage
Posté par bubar🦥 (Mastodon) . Évalué à 3.
Merci pour la correction !
Pour le fonctionnement exact : non je ne sais pas comment il fonctionne exactement, ne m'étant jamais penché dessus, pour l'utilisateur que je suis les apps isolées dans le "profil pro" voit une racine de data différente, et ne voit pas tes dossiers. Elles n'ont pas non plus un accès aux historiques téléphones, sms, contacts, ..
Plus d'infos : https://support.google.com/work/android/answer/6191949?hl=fr
[^] # Re: Sans Lineage
Posté par Maclag . Évalué à 4.
Oui mais les applis du profil "pro" se voient les-unes les-autres, et à force, ça fait déjà peaucoup de données qui peuvent être inférées.
À quand de vrai silos?
[^] # Re: Sans Lineage
Posté par raphj . Évalué à 6. Dernière modification le 21 juin 2020 à 20:57.
L'appli nommée Service Google Play, je pense que c'est justement le composant qui gère les services Google tels que GCM / Firebase et certainement pas mal d'autre choses. Ce n'est pas le Play Store lui-même en tout cas. Tu ne pourras probablement pas la désactiver, et le faire pourrait entraîner des instabilités si c'était possible.
Sur une ROM d'origine, tu peux normalement installer Magisk pour la rooter, et l'extension privilégiée F-Droid pour avoir une intégration d'F-Droid aux petits ognons (je l'ai déjà fait), à condition de déverrouiller le démarrage de ton téléphone (bootloader), ce qui n'est pas toujours possible ou facile. Déverrouiller le téléphone entraîne la remise en sortie d'usine du téléphone (suppression de toutes les données), c'est une mesure de sécurité en cas de vol du téléphone (pour rendre impossible la récupération des données d'un téléphone protégé par mot de passe).
Magisk et l'extension F-Droid peuvent être installés à l'aide d'un « recovery » tel que TWRP, qui peut être flashé sur la partition recovery du téléphone, ou démarré directement depuis l'ordinateur, à l'aide de « fastboot ». On peut installer l'extension F-Droid sans rooter le téléphone (avec Magisk ou autre), mais le déverrouillage reste nécessaire.
Concernant microG :
Tout ce bazar me donne quand même de plus en plus envie de me débarrasser complètement d'Android. J'en ai marre de tous ces bidouillages pour ne même pas obtenir un contrôle complètement satisfaisant sur son matériel. Je suis avec intérêt l'évolution du Pinephone et des systèmes tels que postmarket, UBPorts, Plasma Mobile et consors…
# A quand les install party lineage OS ?
Posté par Nodeus . Évalué à 3.
Lineage OS semble très intéressant mais pas forcément facile d'accès pour tous.
A quand les install party ?
Le flashage d'un téléphone étant parfois technique ça refroidit beaucoup d'utilisateur hélas.
Moi le premier :D
[^] # Re: A quand les install party lineage OS ?
Posté par anubis . Évalué à 1.
Si l'installation LineageOS te fait peur, installe /e/, ça marche sans prise de tête : https://e.foundation/ :D
aussi sur le salon xmpp:linuxfr@chat.jabberfr.org?join
[^] # Re: A quand les install party lineage OS ?
Posté par Nodeus . Évalué à 1.
Pourvu que tu est un téléphone commun.
[^] # Re: A quand les install party lineage OS ?
Posté par Stinouff . Évalué à 1.
J'ai essayé /e/, mais la méthode d'installation est identique à LineageOS. J'ai d'ailleurs été bloqué par un bug avec TWRP (et qui aurait aussi buggé avec LineageOS).
[^] # Re: A quand les install party lineage OS ?
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 4.
Il me semble que des install-parties LineageOS était quelque chose que l'association parisienne Parinux voulait développer cette année.
Il faudra voir en septembre ce qu'il en est.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: A quand les install party lineage OS ?
Posté par Nodeus . Évalué à 1. Dernière modification le 24 juin 2020 à 18:17.
Hélas je ne suis pas parisien , quel dommage :D
[^] # Re: A quand les install party lineage OS ?
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 2.
C'est peut-être quelque chose à voir avec un Groupe d'Utilisateurs de Linux du coin.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: A quand les install party lineage OS ?
Posté par Nodeus . Évalué à 1.
je penssais plus à des documentations ? ça existe ?
[^] # Re: A quand les install party lineage OS ?
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 3.
Il y a un excellent tutoriel ici même et donc en français.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: A quand les install party lineage OS ?
Posté par Nodeus . Évalué à 1.
Merci cette article n'avais pas retenu mon attention lors de sa publication.
# Merci
Posté par Eric . Évalué à 1.
Cela fait quelques jours que j'essaye de dégoogleliser mon smartphone.
J'ai commencé par y mettre lineageOS 17.1, avec NanoDroid, mais impossible de faire marcher microG.
Comme je pensais que le problème venait de l'absence de "signature spoofing", je suis passé à crDroid, toujours avec NanoDroid, mais rien à faire microG ne marchait pas non plus.
Et là je tombe sur ton post, qui dit que lineageOS marche sans "signature spoofing".
J'essaye (sans nanoDroid cette fois) et la c'est le miracle : microG marche (même si il dit que non).
Un grand merci !
[^] # Re: Merci
Posté par Nodeus . Évalué à 1.
J'ai rien compris
[^] # Re: Merci
Posté par Eric . Évalué à 3.
En résumé, grâce à ce journal de raphj, j'ai réussi à faire marcher microG sur mon téléphone (sur lequel j'avais flashé lineageOS 17.1).
# Comment ajouter un fournisseur de géolocalisation ?
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 3.
Hello,
Ce passage est une très bonne nouvelle pour moi, je ne le savais pas non plus :)
Tu aurais une doc / un lien qui explique cette fonctionnalité ?
C'est nouveau à Android 10 ? Comment on fait pour ajouter un nouveau service ? Il suffit d'installer par exemple MozillaNlpBackend ? Est-ce qu'il y a un moyen de vérifier quels fournisseurs sont disponibles ou actifs ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.