Nicolas Le Manchet

{Si c'est gratuit c'est que vous êtes le produit}

recherche

Aller au contenu | Aller au menu | Aller à la recherche

Améliorer le fix GPS des smatphones Android Wiko

Les smartphones Wiko connaissent un succès de plus en plus grand en France. Ils sont fonctionnels, bon marché mais relativement cheap. Ce qui conduit à quelques imperfections. Le problème de l'accroche du GPS en est une qui est la principale source de critiques. Cependant il existe des solutions pour améliorer cette accroche. Cet article fait le point sur les techniques qui existent pour cela.

Rappels sur le fonctionnement du GPS

Le fonctionnement de la géolocalisation par GPS n'est pas difficile à comprendre. Une constellation de satellites (une trentaine) envoie périodiquement des données sur terre sur une fréquence porteuse de 1,5 GHz. Ces données contiennent, entre autre, la date d’émission de la trame. Cette date est générée de manière très précise par une horloge atomique intégrée au satellite. Évidement le récepteur, un smartphone ou un système de navigation, ne possède pas la même précision d'horloge : l'heure entre l’émetteur et le récepteur n'est pas synchronisée (Problème n°1).

Pour trouver sa position sur terre, le récepteur interprète la différence de temps entre l’émission de la trame et sa réception. Avec cette information et la vitesse de transmission des ondes il peut calculer simplement la distance qui le sépare du satellite. Cependant pour que cette information lui soit utile il faut qu'il connaisse auparavant la position du satellite, alors que celle-ci évolue sans cesse (Problème n°2).

Lorsque quatre satellites sont en vue (Problème n°3). et que le récepteur connait la position des satellites il peut calculer un système d'équation à quatre inconnues : latitude, longitude, altitude et heure précise. Cela lui donne sa position précise sur terre.

Application de la théorie sur les téléphones Android Wiko

Synchronisation de l'heure

Android FasterGPS Le premier problème évoqué concerne la synchronisation des horloges du satellite et du téléphone. Obtenir une synchronisation parfaite n'est pas possible, mais s'en rapprocher simplifierait le calcul du temps de parcours de la trame dans l'air.

Pour obtenir une horloge relativement précise sur un système informatique relié au réseau on utilise courrament le protocole NTP. La précision est meilleure lorsque le serveur de temps est situé près du client. Par défaut les smartphones Wiko utilisent un serveur de temps chinois, le fait d'en utiliser un européen améliore l'horloge.

Seulement pour pouvoir modifier le serveur de temps il faut un téléphone rooté. Le principe du root sort du contexte de cet article mais est très facile sur un Wiko. Une fois rooté l'application FasterGPS permet de modifier le serveur NTP utilisé. Plus d'information sur la marche à suivre ici.

Une liste de serveurs NTP classée géographiquement est disponible sur www.pool.ntp.org/fr.

Trouver la position des satellites

Le second problème consiste à connaitre avec précision la position de tous les satellites à un instant donné. Sans cela l'information du temps de trajet du signal serait inutile.

Pour cela différentes solutions existent. Le système GPS lui-même transmet les éphémérides mais à une vitesse très lente.

C'est pour cela qu'on a vu se développer les A-GPS (Assisted GPS) qui permettent de télécharger à la volée sur le réseau data la position des satellites environnants. Cette solution nécessite donc d'avoir un accès réseau. La validité dans le temps des données téléchargées est faible, quelques heures au maximum.

La majorité des smartphones Wiko intègrent des composants de la marque taïwanaise MediaTek, dont le processeur et la puce GPS. La puce embarque la technologie EPO qui permet de télécharger les éphémérides au préalable car les données sont valables un mois. Ces données EPO font 250 Ko et se téléchargent "automatiquement" (notez la présence de guillemets) depuis un serveur FTP. Seulement voilà, le serveur FTP est ultra lent et vraiment peu fiable. Déjà que depuis un PC et une bonne connexion le téléchargement échoue sans raison alors depuis un téléphone avec une connexion 3G c'est juste impossible.

Deux fichiers sont à télécharger : EPO.DAT et EPO.MD5. Le premier contient les données EPO et le second le hash de ces données pour vérifier leur intégrité. Ils sont mis à jour par MediaTek quotidiennement. Or d'après certains il arrive que le fichier contenant le hash ne soit pas mis à jour, rendant la validation des données impossible.

Il existe deux solutions à ce problème de téléchargement de données EPO. La première consiste à utiliser cette technique pour forcer la mise à jour depuis le téléphone. La seconde consiste à télécharger les fichiers sur un PC depuis le serveur FTP de MediaTek puis à les transférer sur la mémoire du téléphone dans le répertoire /data/misc. Cette tâche peut être automatisée facilement en shell. Les identifiants pour le FTP sont :

Serveur : epo.mediatek.com
Port : 21
Identifiant : epo_alps
Mot de passe : epo_alps

Sur certains téléphones le mode ingénieur EPO permet de modifier les coordonnées sur serveur FTP, apparemment ce n'est pas possible sur les Wiko.

GPS Wiko Cink Peax 2

Améliorer la réception du signal

Maintenant que l'heure est correcte et que les données de localisation des satellites sont disponibles le dernier point sur lequel on peut influer est la visibilité des satellites.

L'antenne GPS intégrée au Wiko Cink Peax 2, et globalement aux autres smartphones Wiko, est faiblarde. De plus il s'agit d'une antenne plate autocollante recouverte d'une couche de peinture. Cette couche semble atténuer fortement les signaux. En grattant délicatement l'antenne pour faire apparaitre le cuivre comme sur la photo on peut gagner quelques dB qui aideront à fixer le GPS plus rapidement. Certains prolongent carrément l'antenne avec de l'aluminium.

Tests et résultats

Pour tester les modifications effectuées il faut bien garder en tête que c'est le premier fix qui est long. Les deux premiers paramètres peuvent être testés après un reboot en mode avion pour désactiver l'A-GPS. Les différences de performance liées à la modifications de l'antenne peuvent se constater avec l'application GPS Test.

Après ces modifications, un test à froid sans A-GPS et avec les données EPO à jour me donne une accroche en 15 secondes.

Raspberry Pi, un linux sur mesure

Raspberry Pi

Même si le Raspberry Pi est un petit ordinateur fabuleux avec de grandes capacités hardware il n'en reste pas moins un ordinateur embarqué. Or en voyant la page de téléchargements officielle de systèmes d'exploitation force est de constater que ce qui est proposé n'est pas très "embarqué". L'image préconisée, celle de Debian Wheezy, pèse 2 Go et intègre des centaines de paquets inutiles parmi lesquels un serveur X et un environnement de bureau. Plutôt que de désinstaller ce dont on a pas besoin, pourquoi ne pas compiler soi-même un linux à son goût ?

Un système minimaliste avec Busybox

Il ne va pas s'agir de construire une distribution généraliste comme Ubuntu mais plutôt un système n'intégrant que les applications dont on a besoin. En trois mots : le strict minimum. On peut imaginer un Raspberry Pi qui autohéberge un serveur de mail ou un client torrent et qui ne fait que ça, mais qui le fait bien.

On va réduire au maximum le nombre de programmes présents en utilisant un utilitaire bien connu du monde de l'embarqué : busybox. Busybox est un programme qui suivant la manière dont il est exécuté va prendre la tâche d'autres programmes, souvent des utilitaires GNU. Ainsi busybox peut être compilé pour intégrer les programmes ls, mkdir et même vi. Des liens symboliques pour tous ces programmes seront créés dans le répertoires /bin et pointeront vers le binaire de busybox. Ainsi chaque appel à un utilitaire courant exécutera en réalité busybox. Le gain d'espace disque est d'autant plus important que les versions des utilitaires sont épurées et n'intègrent que les options de base.

Une compilation facilitée par Buildroot

Ceux d'entre vous qui compilent eux-mêmes des programmes de temps en temps savent à quel point cette tâche peut être délicate, ne parlons même pas du kernel dans lequel l'oubli d'un simple module peut empêcher l'ordinateur de démarrer. Alors comment faire pour compiler un kernel, busybox, des applications et un système de fichiers sans y passer des jours ? La réponse tient dans autre utilitaire phare de l'embarqué : buildroot.

Buildroot est un programme qui se charge de la création du système de A à Z. Il suffit de lui indiquer ce que l'on veut obtenir et il va se charger lui-même de télécharger la version du kernel linux demandée, de télécharger les sources des programmes à installer, de compiler tout ça et d'en faire un filesystem.

Compilation Raspberry Pi

Utiliser ces outils avec le Raspberry Pi

Si buildroot s'occupe de tout, du kernel jusqu'au filesystem, vous vous imaginez bien que sa configuration doit être très complète. En effet il y a plusieurs dizaines de milliers de paramètres qui ont chacun une influence importante sur le résultat final. Cela en fait un outil très versatile, mais aussi compliqué à maitriser. Rassurez-vous, un certain Guillermo Amaral propose sur Github un fork de buildroot adapté au Rasperry Pi. Le projet est en constante évolution et est mergé régulièrement avec les évolutions de buildroot. Pour vous donner une idée, à l'heure actuelle vous pouvez compiler le kernel 3.8.8.

Les explications données sur la page du projet sont suffisantes pour comprendre le fonctionnement des utilitaires et fabriquer entièrement son système basé sur Linux et busybox. Un conseil cependant, ne négligez pas la machine qui va effectuer la compilation, vous aurez besoin d'1 Go de RAM minimum et sur un i5 la compilation prend une heure environ.

Si vous ne souhaitez pas vous lancer dans la compilation tout de suite l'auteur de dépôt Git propose une image prête à installer sur votre carte SD pour tester le système.

Personnalisation de votre système

Pour adapter votre système à vos besoin vous pouvez ajouter des programmes depuis l'interface de buildroot, via l'utilitaire bien connu : make menuconfig.

Menuconfig de buildroot

En entrant cette commande vous avez accès à l'interface de configuration de buildroot qui permet de modifier le système. Si le programme que vous souhaitez installer est disponible dans cette liste, c'est aussi simple que l'installation via un gestionnaire de paquet. L'image ci-dessus montre à quel point c'est facile de créer son petit serveur web sur un Rapberry Pi. Avec une telle simplicité, pourquoi donc s'évertuer à utiliser Apache ? D'autant plus que votre système sera beaucoup plus réactif que la version Debian Wheezy avec ses milliers de paquets inutiles et plus facile à maintenir. C'est une solution idéale pour l'autohébergement.

Utilisation minimale du système

La configuration peut même aller beaucoup plus loin. Via la commande make linux-menuconfig vous avez accès à l'interface standard de configuration du kernel linux.

De la dictature d'Apache

Derrière ce titre volontairement provocateur se cache un fait qui a le don de m'énerver au plus au point : le quasi monopole d'Apache dans le milieu de l'hébergement web, qu'il soit professionnel ou non, dans les datacenters comme dans les serveurs embarqués. Ne vous méprenez pas, Apache est un très bon logiciel, c'est même un de ceux qui a permis à Linux de décoller rapidement dans le domaine des serveurs. Seulement ce n'est pas la réponse universelle en matière d'hébergement, loin de là.

Quand on voit le nombre de gens qui s'évertuent à essayer de le faire tourner avec des performances décevantes sur des systèmes comme le Raspberry Pi je me dis que certains tutoriaux grands publics devraient mettre un peu d'eau dans leur vin à propos de ce logiciel. D'autres serveurs web existent et offrent des performances incomparables et une configuration facile et sécurisée. Dans le domaine de l'embarqué par exemple un serveur comme Boa écrase bon nombre de ses concurrents pour ce qui est de servir des fichiers (le job principal d'un serveur web) pour une emprunte mémoire moindre.

L'autre fait qui m'incite à parler de ce problème est le fait que beaucoup d'applications web proposent un fonctionnement basé sur les fichiers htaccess, ces fichiers de configuration propres à Apache. Cela rend l'installation de ces applications difficiles sur d'autres logiciels. La personne voulant installer l'application devra d'abord comprendre la configuration d'Apache avant de la transposer dans la configuration de son serveur web. C'est totalement contre productif et cela instaure un fossé entre les utilisateurs d'Apache et les autres.

Le web se base sur des protocoles, pas sur des logiciels. Quelques années auparavant on avait un problème similaire avec Internet Explorer qui avait un monopole dans le web et tout le monde s'accorde pour dire que ça n'apporte rien de bon. Mon conseil ? Essayez un des serveurs alternatif comme Lighttpd, Nginx ou Cherokee, juste pour tester. Je suis certains que beaucoup oublieront bien vite leur vieux et lourd Apache.

Revolution OS, du propriétaire vers le libre

Avoir un système d'exploitation libre du noyau jusqu'aux applications c'est quelque chose dont on a pris l'habitude et plus personne ne s'en étonne. Cependant il y a quelques années ce n'était pas la même histoire. Avant que des gens inspirés aient l'idée de mettre leurs connaissances, leurs efforts et leur travail au service de la communauté il n'y avait aucun moyen de faire tourner un ordinateur avec autre chose que du code propriétaire opaque. Ainsi si vous aviez un bug, seule la société qui vous avait vendu le logiciel était à même de vous dépanner. C'est ici le point de départ du film documentaire Revolution OS.

Ce film sorti en 2001 n'a pas pris une ride. Il explique très clairement le contexte qui a amené le projet GNU, le logiciel libre et Linux sur le devant de la scène. Il pose aussi des questions qui sont toujours d'actualité, par exemple sur le modèle économique des entreprises qui font du logiciel libre. Ce film est à l'opposé de celui sur The Pirate Bay (Away from keybord). Si dans ce dernier on y voyait trois jeunes gens qui donnaient l'impression de ne pas trop savoir ce qu'ils font là, dans Revolution OS les interlocuteurs expliquent leur argumentaire de manière précise.

Je recommande vivement le visionnage de ce film à toutes les personnes qui touchent de près ou de loin au logiciel libre.

Logiciels à sources ouvertes et binaires

En réaction à un article sur le problème de version de Skype modifiée en fonction du pays de téléchargement je me permet d'apporter une précision au commentaire de Sebastien Sauvage sur son site :

JAMAIS, plus jamais ces logiciels à sources fermés. N'utilisez aucun logiciel à sources fermés pour communiquer, que ce soit navigateur, VOIP, mail ou chat.

Il est certain qu'avec un logiciel à sources fermées il est difficile de savoir réellement ce qu'il se passe au cœur de l'application. Le logiciel open source quant à lui permet d'aller voir précisément ce que l'application fera une fois compilée, encore faut-il la compiler soi-même.

Qu'un utilisateur télécharge le binaire fermé de Skype ou le binaire d'Ekiga dans les dépôts d'Ubuntu revient au final au même, il accorde une confiance aveugle à la société qui a compilé les binaires. Alors certes on va me rétorquer qu'il est fort peu probable que les mainteneurs du dépôt aient changé le code avant la compilation, c'est vrai mais comment en être certain ? Et même sans remettre en cause la bonne foi des fournisseurs de paquets, ce ne serait pas la première fois qu'un serveur est compromis, pouvant potentiellement mettre à disposition du public des binaires vérolés.

Si vous voulez être certains des programmes que vous utilisez il faut télécharger les sources et les compiler vous-mêmes. Ce n'est généralement pas plus difficile qu'un :

./configure
make
sudo make install

Avoir son serveur de mail personnel c'est possible

Si une recherche avec les termes "serveur mail debian" revoie des centaines de tutoriels expliquant comment installer un serveur de mail en trois commandes apt-get, ils font tous l'impasse sur un problème fondamental : comment faire pour que les mails envoyés soient bien distribués.

Quand un courrier envoyé par la poste a plus de chance d'arriver qu'un mail, il y a un problème Je n'ai pas la prétention de répondre à cette question car c'est tout simplement impossible. Impossible pourquoi ? Car il n'existe aucun standard, chaque administrateur de serveur mail a le droit d'accepter ou de refuser un mail d'après les critères de son choix. Force est de constater que la plupart des administrateurs fixent ces critères totalement à l'aveugle. Combien utilisent encore une version de spamassassin mettant un malus de 3.3 aux mails envoyés depuis une IP en 5/8 ? Pour la petite histoire pour atténuer la pénurie d'adresse IPv4 des rangs d'adresses autrefois réservés ont été attribués et certains filtres anti-spam considèrent toujours ces IP comme illégales.

S'il n'existe aucun standard il existe cependant des recommandations. Ces recommandations vont de la forme du dialogue SMTP au contenu des mails en passant par le choix du jeu de caractères à utiliser pour écrire le sujet du mail. Au final ce sont des milliers de règles qui rendent l'envoi de mail une affaire compliquée qui ne peut se régler en trois commandes dans un shell.

Si je vous dis ça ce n'est pas pour décourager ceux qui voudraient profiter de la liberté d'être propriétaires de leurs conversations et de leurs données, bien au contraire, c'est pour vous dire qu'avoir son propre serveur de mail c'est possible. Possible à condition d'y passer du temps, d'analyser régulièrement les logs et de faire attention aux détails. Depuis quelques mois je n'utilise plus que mon adresse personnelle pour envoyer mes mails et je n'ai pas eu de problème particulier, même pour envoyer des CV dans le but de trouver un stage.

Les annotations sur mon installation de serveur de mails sont disponibles sur le wiki de Martin qui utilise lui aussi cette configuration pour ses mails avec succès. Vous pouvez me contacter si vous avez une question particulière liée aux faux positifs, je tâcherai d'y répondre du mieux possible.

Illustration par Joan Campderrós publié sous licence Creative Common BY 2.0.

- page 1 de 3