Tutoriel [TUTO] Comment résoudre les problèmes GPS sous Lollipop, Marshmallow ou Nougat

  • Auteur de la discussion jeremie57
  • Date de début
jeremie57

jeremie57

Membre
Inscrit
17 Juillet 2012
Messages
243
Points
16
  • #1
Depuis que Lollipop est arrivé, je suis confronté à un problème de GPS que ce soit sous ROM stock, CM12, CM12.1, CM13 ou LOS14.1...
Si je désactive les données et que j'utilise le GPS, je rencontre beaucoup de pertes de fix GPS.
Ces pertes n'existent pas si:

- Je reste en mode avion (super pour un smartphone... :roll: )
- J'active les données (super quand on est à l'étranger en roaming : j'y suis tous les jours...)
- Je commence la navigation avec les données activées et que je les désactive plus tard (ne fonctionne pas à tous les coups...)

Certains sont confrontés à d'autres problèmes que j'ai énumérés à la fin du tuto dans la partie "Information"



Nous pouvons voir qu'il s'agit d'un problème logiciel seulement en lisant ces 2 suivis de bugs de Google:

S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Je vous invite à y exprimer votre mécontentement.... Google a l'air très passif sur ce coup là ! :?



J'ai installé l'application RunGPS Pro Trial pour pouvoir extraire les données GPS lors d'un parcours.
Cette application permet de suivre la DOP (dilution de précision).
Pour chaque parcours que je fais, je peux voir que je perds le fix GPS exactement à 5 minutes d'intervalle (voir le graphique "DOP")

DOP5d2.JPG


J'ai enregistré à chaque fois un rapport de bug et, chaque fois que RunGPS me montre que j'ai perdu le fix GPS, exactement à la même seconde, j'ai une requête réseau :

DUMP OF SERVICE connectivity:
mNetworkRequestInfoLogs (most recent first):

02-17 17:32:04.007 - REGISTER Request from uid/pid:1000/951 for NetworkRequest [ id=49, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
02-17 17:27:03.506 - REGISTER Request from uid/pid:1000/951 for NetworkRequest [ id=48, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
02-17 17:22:03.666 - REGISTER Request from uid/pid:1000/951 for NetworkRequest [ id=47, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
02-17 17:17:03.518 - REGISTER Request from uid/pid:1000/951 for NetworkRequest [ id=46, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
02-17 17:12:03.226 - REGISTER Request from uid/pid:1000/951 for NetworkRequest [ id=45, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
02-17 17:07:02.312 - REGISTER Request from uid/pid:1000/951 for NetworkRequest [ id=44, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
  
Plus de détails sont renseignés dans la section "SERVICE com.android.phone / .TelephonyDebugService":

02-17 17:27:03.509 - clearing log with size=1
NetworkRequest [ id=48, legacyType=3, [ Transports: CELLULAR Capabilities: SUPL&NOT_RESTRICTED&TRUSTED&NOT_VPN] ]
02-17 17:27:03.508 - Dctc.requestNetwork, priority=2
02-17 17:27:03.509 - DcSwitchStateMachine.AttachedState: REQ_CONNECT
02-17 17:27:03.509 - DctController.onExecuteRequest
02-17 17:27:03.509 - DcTracker.incApnRefCount on supl found {mApnType=supl mState=IDLE mWaitingApns={null} mWaitingApnsPermanentFailureCountDown=0 mApnSetting={null} mReason=dataDisabled mDataEnabled=false mDependencyMet=true}
02-17 17:27:03.510 - ApnContext.incRefCount - 0
02-17 17:27:03.510 - applyNewState(supl, true(false), true(true))
02-17 17:27:03.510 - ApnContext.resetErrorCodeRetries
02-17 17:27:03.510 - trySetupData due to dataEnabled
02-17 17:27:03.543 - trySetupData: X apnContext not 'ready' retValue=false
02-17 17:27:33.507 - Cellular releasing Network for
02-17 17:27:33.507 - DctController.releaseNetwork
02-17 17:27:33.507 - DctController.onReleaseRequest
02-17 17:27:33.507 - DcTracker.decApnRefCount on supl found {mApnType=supl mState=IDLE mWaitingApns={null} mWaitingApnsPermanentFailureCountDown=0 mApnSetting={null} mReason=dataEnabled mDataEnabled=true mDependencyMet=true}
02-17 17:27:33.507 - ApnContext.decRefCount - 1
02-17 17:27:33.509 - applyNewState(supl, false(true), true(true))
02-17 17:27:33.509 - cleanUpConnection: tearDown=true reason=dataDisabled
02-17 17:27:33.509 - cleanUpConnection: X tearDown=true reason=dataDisabled

Je peux voir que le type d'APN qui est demandé est "supl". Cela signifie que les données A-GPS sont demandées ! Mais pourquoi ? J'ai déjà un fix !
Le fait de passer la localisation en mode "Appareil uniquement" ne change rien.

Pour éviter de telles demandes, j'ai changé les paramètres du GPS dans le fichier gps.conf.
J'ai désactivé MSA et MSB dans la section "capabilities".
Cela signifie que j'évite les 2 modes de fonctionnement: Mobile station assisted (MSA) et Mobile station based (MSB).
Comme ça, j'évite toute demande de A-GPS ...

Je n'ai plus de perte de fix avec ou sans les données activées.
Cela signifie que lorsque le dispositif envoie une demande de données A-GPS, quel que soit le résultat, le fix est perdu!

Maintenant, pourquoi 5 minutes?
Dans GpsLocationProvider.java, j'ai trouvé ces lignes:

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Je n'ai pas connaissances en java, je ne peux donc pas essayer de comprendre ce qui ce passe avec cette variable...
Je pense qu'il y a une erreur dans la programmation et que cette variable n'est pas conditionnée par le fait que le fix du GPS est fait.


Si comme moi, vous voulez changer la valeur de "capabilities" du GPS pour éviter ces problèmes, voici la marche à suivre :



- Avoir un appareil rooté !
- Avoir une application type ES Explorer



- Allez dans "/system/etc" après avoir accordé les droits root à ES Explorer
- Ouvrir le fichier nommé "gps.conf"
- Vous devriez trouver une variable appelée «CAPABILITIES»
- Editez le fichier

Si cette variable est fixée à 0x37 ou 0x35 ou 0x33, modifiez la valeur à 0x31
Si cette variable est fixée à 0x36, modifiez la valeur à 0x30
Si cette variable est fixée à 0x27 ou 0x25 ou 0x23, modifiez la valeur à 0x21
Si cette variable est fixée à 0x26, modifiez la valeur à 0x20
Si cette variable est fixée à 0x17 ou 0x15 ou 0x13, modifiez la valeur à 0x11
Si cette variable est fixée à 0x16, modifiez la valeur à 0x10

Attention, il n'y a pas d'espace entre les chiffres et les lettres !

- Enregistrez le fichier et assurez-vous que les autorisations du fichier sont rw- r-- r-- (propriétés du fichier)
- Redémarrez l'appareil pour réinitialiser cette valeur.



Le premier fix peut prendre entre 30 s et 2 min, mais après cela, il devrait être plus rapide et vous ne devriez pas avoir de pertes.

Ce n'est pas une solution mais un contournement du problème lié à Android !

J'espère que ça va permettre à certains de retrouver les joies du GPS qu'on avait jusqu'à Android Kitkat...








Pour compléter ce Tuto, j'ajoute d'autres pistes:

1 - Certains utilisateurs se plaignent d'un dysfonctionnement du GPS lors de l'utilisation d'applications comme Maps depuis la mise à jour Marshmallow. Ils ne parviennent pas à obtenir un fix.
Visiblement, certaines applications ne parviennent pas à maintenir l'activation du GPS.

On retrouve majoritairement ces témoignages auprès des utilisateurs de produits Motorola.

Dans ce cas, il est possible d'utiliser l'application "GPS Locker" qui permet de forcer l'utilisation du GPS :
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Si ce n'est pas efficace, une autre solution consiste à utiliser le widget "GPS Widget" de pixelclash :
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

Il parvient à maintenir le GPS activé. Il suffit donc d'activer le widget au démarrage d'une sessions GPS.




2 - D'autres utilisateurs de produits HTC ont pu constater qu'il leur fallait désactiver le mode d'économie d'énergie (saver mode) pour que le GPS soit fonctionnel et qu'il ne perde plus constamment le fix...




3 - Marshmallow a permis à Google d'introduire la fonction "Doze" qui permet au système de gérer au mieux la consommation énergétique de chaque application lorsqu'elle n'est pas utilisée.
Certains utilisateurs ont constaté qu'en désactivant cette fonction pour les applications posant un soucis d'utilisation du GPS, leurs problèmes disparaissaient.

Pour y parvenir, il suffit de :

- Aller dans : Paramètres / Batterie
- Appuyer sur les 3 points verticaux en haut à droite
- Choisir "Optimisation de la batterie". Vous aurez un aperçu des applications qui ne sont pas optimisées
- Appuyer sur "Non optimisées" et choisir "Toutes les applications"

Il ne vous reste plus qu'à faire défiler la liste des applications pour choisir celles qui vous posent problème.
 
Tipiak

Tipiak

Pirate !
Moderateur Global
Inscrit
2 Juillet 2012
Messages
21 275
Points
63
  • #2
Salut, merci pour le tuto. Tu peux utiliser nos bannières maison si tu le souhaites pour les prochains et celui-ci. ;)
 
jeremie57

jeremie57

Membre
Inscrit
17 Juillet 2012
Messages
243
Points
16
  • #3
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marschmallow

Salut,

Merci pour l'info...
C'est fait... :super:
 
Z

zztop80

Membre
Inscrit
13 Janvier 2011
Messages
16
Points
1
  • #4
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marschmallow

Salut la communauté, bon après 9 mois de galères avec ce LG G3 ( juste du point de vue GPS ) avec android 4 ou 5 j ai justement attendu lollipop pour voir si cela s arranger mais non je me decide donc a l envoyer en garantie car encore couvert par la garantie MAIS PSM mobile ose me réclamer 189 € pour l échange de la carte mère sur un telephone qui fonctionne parfaitement hormis le gps qui n aura jamais fonctionner ( juste des accroche reseau de 5 minutes puis coupe reprend ect... ) le telephone a 9 mois j ai contacter LG pour comprendre le refus qui me retourne sur psm bref je ne suis pas sur de reprendre du LG aprés j aurai peut etre du rester chez SONY J attend le verdict dans 24H
 
jeremie57

jeremie57

Membre
Inscrit
17 Juillet 2012
Messages
243
Points
16
  • #5
Re: Re : [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marschmallow

zztop80 a dit:
Salut la communauté, bon après 9 mois de galères avec ce LG G3 ( juste du point de vue GPS ) avec android 4 ou 5 j ai justement attendu lollipop pour voir si cela s arranger mais non je me decide donc a l envoyer en garantie car encore couvert par la garantie MAIS PSM mobile ose me réclamer 189 € pour l échange de la carte mère sur un telephone qui fonctionne parfaitement hormis le gps qui n aura jamais fonctionner ( juste des accroche reseau de 5 minutes puis coupe reprend ect... ) le telephone a 9 mois j ai contacter LG pour comprendre le refus qui me retourne sur psm bref je ne suis pas sur de reprendre du LG aprés j aurai peut etre du rester chez SONY J attend le verdict dans 24H

Salut,

Es tu sûr que le GPS de ton G3 sous kitkat n'était pas opérationnel ?
Si c'est le cas, peut-être que ton soucis n'est pas uniquement software !
C'est la version Lollipop qui a amené une mauvaise gestion du fix GPS.

Tiens nous au courant au sujet de tes aventures avec la garantie et si ton tel est rooté, n'hésite pas à essayer ce tuto...
 
Z

zztop80

Membre
Inscrit
13 Janvier 2011
Messages
16
Points
1
  • #6
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marschmallow

Bon le retour fut rapide ( de ce coté LG assure ) mais pour le reste mon telephone acheter chez Cdiscount expedier par un revendeur du portugal qui lui avait acheter le téléphone en UK resultat le SAV LG europe refuse la garantie me demande de me retourner sur le vendeur

Bref un sac de noeud qui de plus Point Service Mobile me demande 20€ pour le devis du fait de la non prise en charge en garantie COOL LG

Pour info Jeremie57 un téléphone root perd toute garanties

J adore ce telephone mais maintenant LG peut sortir le plus beau puissant ect... aucun produit LG ne franchira la porte de chez moi ! Ce n est pas au client d etre pris en otage sur les SAV europe ect... qu il garde leurs produits pour la corée il y aura pas de probleme pour la garantie une honte .
 
A

aglagla55

Membre
Inscrit
31 Janvier 2013
Messages
27
Points
6
  • #7
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marshmallow

Bonjour, même probleme de desynchro, impossible d'utiliser le gps correctement.
J'ai essayé l'astuce de Jeremie57 mais helas ca ne fonctionne pas :-|
Je suis en android 6.0.1 CM13, si quelqu'un a une solution je suis preneur
merci
 
jeremie57

jeremie57

Membre
Inscrit
17 Juillet 2012
Messages
243
Points
16
  • #8
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marshmallow

aglagla55 a dit:
Bonjour, même probleme de desynchro, impossible d'utiliser le gps correctement.
J'ai essayé l'astuce de Jeremie57 mais helas ca ne fonctionne pas :-|
Je suis en android 6.0.1 CM13, si quelqu'un a une solution je suis preneur
merci

Bonjour aglagla55,

Pas trop froid ? :mrgreen:

Peux-tu donner un peu plus de renseignements ?
Quel est ton modèle de smartphone ? As-tu la ROM à jour ?
Qu'appelles tu problèmes de desynchro ? Est-ce qu'il s'agit de pertes régulières de fix du GPS ?

En ayant un smartphone sous CM13, je suis convaincu qu'on ne peut que résoudre ton problème ! :super:
 
A

aglagla55

Membre
Inscrit
31 Janvier 2013
Messages
27
Points
6
  • #9
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marshmallow

Bonjour, si si il caille pas mal j'suis dans le nord ^^

Mon telephone est un LG G3 D855
Android 6.0.1 sous CM13
En fait le GPS ne cesse de perdre le signal. Exemple sur autoroute, toutes les 5 minutes, "signal GPS perdu" et le point sur la map n'ai plus du tout precis.
Ou alors, se fige et a une grosse latence donc itineraire impossible a suivre
Je ne peux plus utiliser mon GPS a cause de ca, sinon il faut s'arrêter toutes les 5 minutes :-|
A ce jour, je suis sous la derniere build CM, 20160428 je n'ai pas encore testé a nouveau si le problème persiste.
Je n'avais pas ce probleme avec les autres versions android, donc je ne pense pas que cela viens du hardware.

Merci de ton aide
 
jeremie57

jeremie57

Membre
Inscrit
17 Juillet 2012
Messages
243
Points
16
  • #10
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marshmallow

aglagla55 a dit:
Bonjour, si si il caille pas mal j'suis dans le nord ^^

Mon telephone est un LG G3 D855
Android 6.0.1 sous CM13
En fait le GPS ne cesse de perdre le signal. Exemple sur autoroute, toutes les 5 minutes, "signal GPS perdu" et le point sur la map n'ai plus du tout precis.
Ou alors, se fige et a une grosse latence donc itineraire impossible a suivre
Je ne peux plus utiliser mon GPS a cause de ca, sinon il faut s'arrêter toutes les 5 minutes :-|
A ce jour, je suis sous la derniere build CM, 20160428 je n'ai pas encore testé a nouveau si le problème persiste.
Je n'avais pas ce probleme avec les autres versions android, donc je ne pense pas que cela viens du hardware.

Merci de ton aide

Alors, ne t'inquiète pas, tout va bien ! :D
Tu as le même téléphone que moi et c'est avec ce téléphone que j'ai créé ce Tuto...

La solution qui te concerne est donc le fait d'ajuster la valeur "capabilities" du fichier "gps.conf" à 0x31.
Par contre, il faut savoir que l'installation d'une mise à jour CM écrase ce fichier et donc, cette valeur repasse à 0x33...

Donc, 2 solutions s'offrent à toi :

1. Après chaque mise à jour CM, tu vas changer la valeur de "capabilities" dans le fichier "gps.conf", tu t'assures que les permissions sont bien "rw- r-- r--" et tu redémarres le téléphone.
C'est simple mais fastidieux....

2. tu crées un patch flashable via le recovery que tu flashes après chaque mise à jour avant de redémarrer le téléphone.
Pour créer un patch, tu peux suivre l'excellent Tuto d'Edzamber ici :

Pour te simplifier la chose, je t'ai mis le patch que je me suis créé vu qu'on a le même téléphone sous la même ROM... :wink:
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


C'est aussi assez fastidieux alors je te donne une astuce :

Utilise l'application "CM Downloader" ici (l'application Cyandelta lui en est équivalente...):
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Cette application est indispensable pour les utilisateurs de ROM CM. Elle permet d'avoir un aperçu des changelogs des nightlys, elle permet de complètement gérer les mises à jour et surtout, elle permet d'ajouter des fichiers zip additionels qui seront flashés automatiquement après chaque mise à jour CM.
De ce fait, tu n'as qu'à y ajouter le patch précédement créé dans les paramètres de l'application.

Utilise cette application pour mettre à jour ton téléphone chaque fois que tu le désires, tout se fera automatiquement ! :super:
 
A

aglagla55

Membre
Inscrit
31 Janvier 2013
Messages
27
Points
6
  • #11
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marshmallow

Salut, vraiment super boulot je vois que tu t'es penché sur la question merci a toi !! :smile:

Je ne savais pas qu'il y avait un gestionnaire de maj CM je vais tester ca, effectivement avec un patch automatique c'est beaucoup plus simple !
Je viens de flasher je test ça et je fais un retour dans les prochains jours
 
jeremie57

jeremie57

Membre
Inscrit
17 Juillet 2012
Messages
243
Points
16
  • #12
Re: [TUTO] Comment résoudre les problèmes GPS sous Lollipop et Marshmallow

Salut Aglagla,

Merci ! :D
J'ai passé pas mal de temps à essayer de comprendre ce problème. Je ne suis pas expert et il m'a fallu comprendre comment tout cela fonctionne....
Et puis, je suis confronté au problème depuis le passage à Lollipop. Beaucoup de personnes ne se rendent pas compte de ce problème car elles laissent les datas activées lors de l'usage du GPS mais, étant frontalier et travaillant à l'étranger, je suis vite découragé par les coûts du roaming...

Tu verras, une fois que tu auras gouté à "CM Downloader", tu ne feras plus jamais tes mises à jour autrement... :wink:
Le super avantage, c'est la possibilité d'ajouter des patchs à flasher. Tu peux en ajouter autant que tu le souhaites. J'en ai un pour les émoticones, un pour les sonneries, un pour le fichier GPS.conf

Tiens moi au courant :super:
 
Haut Bas