Pour l'instant, j'ai configuré/tweaké deux trucs : connexion aux AP WiFi "FreeWifi_secure" et amélioration du GPS (réduire la durée d'obtention du fix).
Commençons par FreeWiFi.
Bon à savoir : si votre opérateur est Free Mobile, alors vous pouvez vous authentifier sur les points d'accès WiFi nommés "FreeWifi_secure". L'authentification EAP permet de s'authentifier avec votre carte SIM. Oui, c'est aussi disponible dans le forfait à 2€. Très pratique en mobilité si vous avez un tel point d'accès à proximité ! Merci à johndescs (
http://jonathan.michalon.eu/shaarli/) pour le tuyau. :)
Pour faire la config, nul besoin d'installer un logiciel supplémentaire même pas libre comme FreeWifiConfig. Tout est là :
http://www.freenews.fr/spip.php?article12150. Sur mon Moto G 4G LTE avec la ROM Motorola et sur le Galaxy Note 1 GT-N7000 sous Cyanogenmod 10.1 de Johndescs, le fichier de config' wpa_supplicant.conf se trouve dans /data/misc/wifi/. J'ai utilisé Ghost Commander pour remonter la partition en rw et pour ajouter le bloc du tuto à la fin du fichier avec vi. Reboot et hop, mon ordinateur de poche se connecte automatiquement à un hotspot FreeWiFi dès qu'il y en a un à porté et que j'ai activé le WiFi.
L'optimisation du GPS à présent. Cette optimisation est globale, tous les logiciels utilisant le GPS (osmand~ (cartographie, itinéraire, navigation libre), par exemple) en profitent sans manip' supplémentaire.
Un peu de documentation pour comprendre l'intérêt des manipulations :
*
http://lemanchet.fr/post/2014/Ameliorer-fix-GPS-smatphones-Android-Wiko
*
http://sebsauvage.net/links/?FGI5lQ
* Pour obtenir les données AGPS (la position des satellites environnants, des éphémérides des positions des satellites, ...) sans se prendre la tête, il y a le logiciel libre SatStat (disponible sur f-droid). Il suffit de cliquer sur l'icône la plus à droite en haut puis « Recharger les données AGPS ». Évidemment, il faut être connecté à Internet soit via WiFi, soit via le réseau mobile. Sur mon Motorola Moto G 4G LTE, il faut aussi autoriser l'application Qualcomm atfwd à se connecter à des serveurs Internet si vous utilisez le pare-feu Netfilter (configurable avec le logiciel libre Afwall+ par exemple). Dans « Configuration », on peut indiquer les types de réseaux à utiliser (WiFi, data, ...) et la fréquence de mise à jour ainsi qu'obtenir la date/heure de dernière mise à jour.
Le reste de la configuration se fait dans le fichier /system/etc/gps.conf. Pour modifier ce fichier, soit on utilise le logiciel libre FasterGPS (disponible sur f-droid), soit on modifie ce fichier depuis l'ordinateur de poche avec Ghost Commander (pour remonter la partition en rw, accéder au fichier) + vi, soit on modifie ce fichier sur un ordinateur de bureau et on le transfert sur la SD puis on écrase l'original avec la modification avec Ghost Commander. Dans tous les cas, je conseille de faire une sauvegarde du fichier original toussa.
FasterGPS est beaucoup buguée. L'application des modifications se fait paramètre par paramètre, le logiciel crashe pour presque tous les paramètres, il faut recommencer deux ou trois fois (par paramètre donc :P ) ... De plus, il ne retire pas les paramètres qu'on ne veut plus utiliser. Bref, pas top. Le fichier /system/etc/gps.conf est long. Le modifier depuis l'ordinateur de poche lui-même, c'est fastidieux. Je conseille donc la dernière méthode.
* Changer de serveur NTP pour un serveur local et performant : c'est le contenu de la directive de configuration « NTP_SERVER » qu'il faut changer. ntp-p1.obspm.fr ou canon.inria.fr ou fr.pool.ntp.org sont, tous les 3, d'excellents choix. Pour ma part, par habitude sur mes serveurs NTP dans mes réseaux locaux, j'ai configuré comme suit : « NTP_SERVER=ntp-p1.obspm.fr ». Évidemment, il faudra autoriser NTP en sortie si vous utilisez le pare-feu.
* Changer les autres paramètres. Pour ce faire, je me suis documenté, aussi bien sur le mécanisme AGPS (
https://en.wikipedia.org/wiki/Assisted_GPS), qu'en lisant des forums d'utilisateurs francophones, qu'en faisant des Google battle sur chaque paramètre pour voir la valeur que l'on retrouve le plus souvent dans des configs sérieuses.
Le contenu de mon fichier gps.conf est donc le suivant (je ne garantis pas son sérieux à 100 %, juste il donne de bons résultats sur mon ordinateur de poche) :
« # On n'est pas là pour debug donc aucune verbosité
DEBUG_LEVEL=0
# Pas de position intermédiaire
INTERMEDIATE_POS=0
# Suite logique : on ne fixe aucun seuil de fiabilité pour
# les positions intermédiaires
ACCURACY_THRES=0
# Utiliser les positions supplémentaires comme références
REPORT_POSITION_USE_SUPL_REFLOC=1
# On n'utilise pas les Hotspot WiFi pour se localiser
ENABLE_WIPER=0
# Serveur NTP utilisé
NTP_SERVER=ntp-p1.obspm.fr
# On utilise AGPS
DEFAULT_AGPS_ENABLE=TRUE
# URI pour récupérer les données AGPS
XTRA_SERVER_1=
http://xtra1.gpsonextra.net/xtra2.bin
XTRA_SERVER_2=
http://xtra2.gpsonextra.net/xtra2.bin
XTRA_SERVER_3=
http://xtra3.gpsonextra.net/xtra2.bin
# On n'utilise pas le mode SUPL (User PLane) d'AGPS
# d'où l'absence de directives de configuration SUPL_*
# et donc on ne se connecte pas aux serveurs SUPL de Google
DEFAULT_USER_PLANE=FALSE
# On n'utilise pas non plus le mode C2K d'AGPS
# d'où l'absence de directives de configuration C2K_*
# Autres paramètres
LPP_PROFILE=0
A_GLONASS_POS_PROTOCOL_SELECT=0
CAPABILITIES=0x37
ERR_ESTIMATE=0
NMEA_PROVIDER=0 »
Il ne reste plus qu'à rebooter pour prendre en compte les changements (je ne sais pas si c'est réellement utile mais je l'ai fait quand même).
Dans Paramètres -> Localisation, vous pouvez activer/désactiver la localisation (ce qu'il faut toujours faire : ne jamais laisser votre position en libre accès, seulement quand vous avez besoin de la fonction GPS ! Ça évite les fuites vers des serveurs Internet en cas de mauvaise configuration ou d'ignore de la configuration par le logiciel. Il y a déjà assez du réseau GSM pour vous pister) et utiliser le mode « haute précision » (mais bien sûr, vu le fichier gps.conf ci-dessus, l'AGPS n'utilisera ni les hotspot WiFi, ni le serveur SUPL de Google pour vous localiser). En conséquence, je réponds « Accepter » à la question « Autoriser le service de localisation de Google à recueillir des données de localisation anonymes. [blablabla] » (sinon pas d'AGPS :( ) et « Pas maintenant » à la question « Dans une précédente version d'Android, vous avez désactivé la fonctionnalité permettant aux applications Google d'accéder à votre position. Voulez-vous la réactiver pour toutes les applications Google ? »
Comment j'ai testé l'amélioration du fix GPS ?
* Lors du premier test de fix, sans tweak, en testant avec Osmand~ et SatStat, le premier fix a eu lieu plus de 15 minutes après l'activation de la localisation.
* Les 2-3 fois suivantes, je ne suis pas tombé en dessous de 5 minutes.
* Après les bidouilles décrites ci-dessus, je fixe en moins de 30 secondes, moins d'une minute dans le pire des cas et ce à chaque fois.
Évidemment, j'ai testé à chaque fois en étant à l'extérieur, en activant le service de localisation uniquement pour ça, et en étant dans un lieu éloigné d'une dizaine de kilomètres du lieu où j'ai désactivé la localisation après le dernier usage.