En un peu plus de 10 ans, Android est devenu le leader incontesté du marché des systèmes d'exploitation mobiles avec plus de 75 % de parts de marché.
Bien qu'Android ait un noyau basé sur des logiciels Open Source, la version conventionnelle d'Android que l'on trouve sur la plupart des smartphones comprend également un ensemble de bibliothèques et d'API propriétaires qui sont utilisées par de nombreuses applications mobiles. Cela permet également de verrouiller les utilisateurs dans l'écosystème Google.
Même si vous n'utilisez pas ces applications sur votre téléphone Android ou si vous renoncez à ajouter un compte Google, votre appareil utilise à votre insu un grand nombre de services Google et de fonctionnalités Google afin de fonctionner correctement.
La plupart de ces services sont intégrés dans les applications que vous utilisez quotidiennement dès la phase de développement. Qu'il s'agisse de recevoir une notification de votre application bancaire ou d'essayer de localiser votre chauffeur de taxi en demandant un trajet, la dépendance à l'égard de Google domine l'expérience de l'utilisateur.
La suppression du Play Store de Google peut entraîner un dysfonctionnement des principales fonctionnalités du téléphone. Cela empêcherait les applications populaires de fonctionner et fausserait l'expérience de l'utilisateur. On pourrait légitimement se passer des services de Google, par exemple avec un téléphone Linux. L'inconvénient est de se retrouver sans aucune application. Une autre option consiste à utiliser une ROM personnalisée avec un autre magasin d'applications comme Fdroid qui ne distribue que des applications gratuites et open source, mais vous seriez limité en termes de choix d'applications.
microG est une réimplémentation en logiciel libre et open source des bibliothèques propriétaires de Google.
Nous avons invité son créateur et développeur, Marvin Wißfeld, à nous en dire plus sur les principaux concepts de mise en œuvre de microG.
Question : Pouvez-vous nous en dire un peu plus sur vous et votre parcours ?
Réponse : oui : J'ai commencé à programmer à l'âge de 12 ans. Je contribue à des projets open-source depuis 2010. J'ai terminé ma maîtrise en informatique il y a tout juste deux ans. J'aime beaucoup bricoler avec le système d'exploitation Android, mais je participe également aux développements autour du standard ouvert IETF pour la messagerie instantanée XMPP.
Q : Comment le projet microG a-t-il débuté ?
J'ai retiré les applications et services Google de mon premier smartphone en 2012. Mon principal problème avec CyanogenMod sans les services Google était que le GPS était extrêmement lent, consommant facilement 2 à 3 % de l'autonomie de la batterie avant de pouvoir déterminer une position. Pour résoudre ce problème, j'ai développé une alternative au composant de localisation en réseau de Google. Quelques mois plus tard, je voulais désespérément jouer à un jeu qui nécessitait une connexion avec un compte Google - ce qui m'a obligé à développer un composant alternatif de gestion de compte Google. Ces travaux ont jeté les bases de ce qu'est aujourd'hui microG, bien qu'il soit devenu un projet beaucoup plus vaste lorsque Google a commencé à fournir les services Play, une collection de services propriétaires en constante augmentation.
Q : Travaillez-vous seul ou avez-vous d'autres développeurs sur le projet ?
J'ai fondé microG en tant que projet open-source, en acceptant les contributions de tous les développeurs intéressés. Plus de 50 personnes ont contribué au code ou aux traductions. Cependant, plus de 90% du code actuel est écrit par moi-même.
Q : Pouvez-vous expliquer en termes simples comment MicroG est capable de simuler les services de Google et de faire fonctionner des applications sur les smartphones Android ?
Le système d'exploitation Android permet aux développeurs de créer des applications qui ne sont pas visibles par les utilisateurs finaux, mais qui agissent uniquement comme un service accessible par d'autres applications. Les différents services Google sont fournis par le biais de ces applications de services. Lorsqu'elles accèdent à ces services, les applications des utilisateurs finaux le font via un langage spécial qui a été prédéfini pour cette communication. microG ressemble et se comporte exactement comme les services Google originaux et comprend le langage qui est parlé dans cette communication. De cette façon, il est impossible pour les applications de savoir si elles fonctionnent dans une infrastructure Google ou sur un système utilisant microG.
L'un des éléments clés de la "ressemblance avec Google" est l'usurpation de signature. Toutes les applications Android sont signées de manière cryptographique en utilisant la clé privée de leur développeur. Comme la signature de la clé privée des services Google est uniquement entre leurs mains, microG ne peut pas créer une signature qui ressemble à celle de Google. Heureusement, les applications ne sont pas censées vérifier elles-mêmes la signature cryptographique, mais seulement demander au système d'exploitation de le faire. Ainsi, les systèmes d'exploitation qui supportent ce type d'usurpation de signature, comme /e/OS, peuvent dire aux applications qu'elles ont vérifié que microG est correctement signée avec une clé privée de Google, même si ce n'est pas le cas.
Q : Récemment, microG a ajouté un support optionnel pour le cadre de recherche des contacts COVID-19. Pouvez-vous nous donner des détails sur le fonctionnement de ce cadre de recherche des contacts ?
L'API des notifications d'exposition utilisée par les applications de recherche des contacts COVID-19 offre quatre fonctionnalités à ces applications :
- Publicité Bluetooth : Votre téléphone diffuse en permanence un identificateur de proximité mobile (RPI) via Bluetooth. Toutes les 10 minutes, votre appareil génère un nouvel RPI à publier, pour qu'il soit impossible de vous suivre. Les RPI sont dérivés d'une clé privée qui est générée aléatoirement une fois par jour par votre appareil. Cette dérivation garantit cryptographiquement que les RPI ne peuvent pas être liés entre eux, sauf si vous avez partagé la clé privée.
- Balayage Bluetooth : Toutes les 5 minutes environ, votre téléphone recherche les appareils Bluetooth proches qui diffusent des RPI et stocke ces RPI avec un horodatage dans une base de données locale.
- Partage de clé : Lorsque vous avez été testé positif pour COVID-19, vous pouvez demander à votre téléphone de partager vos clés privées des 14 derniers jours avec l'application de recherche de contacts COVID-19. Ce n'est qu'avec cette clé privée qu'il est possible pour d'autres personnes de voir si elles ont été en contact avec vous pendant plus de 10 minutes. La mise en œuvre de microG garantira que ce partage de clé ne se fera pas sans le consentement explicite de l'utilisateur.
- Calcul des risques : Sur la base de la liste des clés privées partagées par l'application compagnon et de la liste des RPI collectées au cours des 14 derniers jours, votre téléphone vérifie si vous avez été en contact étroit avec une personne qui aurait été testée positive. Votre téléphone calcule un score de risque total et fournit des informations sur la date et l'heure, la durée du contact et la force du signal de l'exposition à l'application compagnon. L'application d'accompagnement n'apprend pas quelles clés ou quelles personnes ont été en contact étroit, et n'obtient pas non plus d'informations sur le lieu où le contact a eu lieu.
Avant d'activer ces fonctionnalités, microG demande à l'utilisateur un consentement explicite. Tout cela se passe localement sur l'appareil et aucune interaction avec les serveurs de Google ou d'Apple n'est nécessaire. En outre, la plupart des gouvernements ont accepté de rendre leur application complémentaire open-source afin que le public puisse vérifier qu'elle ne comporte aucune transmission de données non désirée en dehors du partage de clés décrit ci-dessus.
Note de l'équipe de développement /e/ concernant le cadre de suivi des contacts COVID-19 :
La mise en œuvre par /e/OS microG du cadre de suivi des contacts COVID-19 sera bientôt publiée. Les utilisateurs devront le télécharger explicitement à partir de l'installateur d'applications /e/ ou également connu sous le nom d'Apps. Après l'avoir installé sur l'appareil, les utilisateurs devront l'activer. En outre, des applications de suivi des contacts spécifiques à chaque pays devront être installées pour que le cadre de suivi des contacts COVID-19 fonctionne. Veuillez noter que le système n'envoie pas de données et qu'il dépend de ces applications supplémentaires installées par les utilisateurs pour fonctionner.
Q : Un certain nombre d'utilisateurs du forum /e/ vérifient régulièrement la sécurité de microG, car ils voient des références à Google dans le code ou les noms de fichiers. Comment répondriez-vous à cette interrogation ?
Il y a principalement deux raisons pour lesquelles Google apparaît dans le code source de microG :
- Comme je l'ai décrit ci-dessus, microG doit parler un langage spécial avec les applications qui utilisent les services qu'il fournit. Ce langage contient souvent le mot Google. Si microG n'incluait pas les mêmes mots dans la langue, la communication ne serait pas possible.
- Certains services de microG exigent que votre appareil se connecte à un serveur de Google. Le plus important de ces services est le service de notification push. Ce service serait entièrement impossible sans que votre appareil reçoive la notification "push" de Google, et donc votre appareil doit parler avec les serveurs de Google. Cependant, tous les services de microG qui nécessitent une connexion aux services Google sont optionnels et peuvent être désactivés sans problème pour les services qui n'ont pas besoin de se connecter à Google. Il est important de noter que tant que vous n'êtes pas connecté à un compte Google avec microG, ces connexions aux serveurs restent anonymes.
Q : Prévoyez-vous des modifications et des améliorations futures pour microG ?
La microG peut encore être améliorée grâce à l'ajout de nouvelles fonctionnalités et à l'amélioration des fonctionnalités existantes. Actuellement, je me concentre sur l'ajout d'un support complet pour un service appelé "Firebase Authentication" qui est utilisé dans de nombreuses applications lors du processus de connexion ou d'enregistrement - et donc, s'il est manquant, ces applications échouent lorsque vous essayez de vous connecter. Le travail sur microG n'est jamais terminé de toute façon : Google ajoute de nouveaux services propriétaires à Android régulièrement.
source :
https://medium.com/@edevelopers.blog/microg-what-you-need-to-know-b213bf03565e