Comment certaines applications()) ignorer les faux emplacement puis de détecter le vrai?
J'ai installé un faux emplacement de l'application et définir ma position différente. Alors ouvre Google Maps et Google app),
- Google Maps montre ma position que ce que j'ai mis(faux)
- ) App ignore faux emplacement et détecte emplacement réel (comment?)
Alors que je voulais éviter) analyser ma déjà reçu des lieux réels et des nouvelles fausses emplacement.
- Désinstallé)
- Redémarré mon appareil
- Définir ma position en tant que faux
- Installé) nouveau
Mais même résultat, il détecte mon emplacement réel.
J'ai vraiment envie de comprendre comment ils le font. Des idées?
Ce que j'ai essayé
- Gps fournisseur d'usurpation
- Fournisseur de réseau d'usurpation
- Fusionné fournisseur d'emplacement d'usurpation
- De géolocalisation IP usurper
- Gps fournisseur d'usurpation de + de géolocalisation IP usurper
Mise à JOUR
Utilise le GPS, même lorsqu'il est désactivé.
07-02 11:46:15.504 2346-2356/? D/LocationManagerService: demande 434a7e28 gps Demande[ACCURACY_FINE gps=+1s0ms plus rapide=+1s0ms] de com.tencent.mm(10173)
CONCLUSION
- Vous pouvez faux emplacement sur les anciennes versions de) (inférieur à 6.0)
- Utilise quelque chose comme BaiduLocationSDK. Il n'est pas affecté dans les mock tenter par LocationManager et Fondue fournisseur.
- Je ne suis pas sûr, mais, semble BaiduLocationSDK utilise le GPS par le biais de matériel.
Je me demande si elle dépend de l'api de l'application utilise pour obtenir la localisation. Sans doute les cartes google maps sera à l'aide de l'api google play, comme la plupart des applications de localisation. Il est possible de l') est l'aide de l'android emplacement gestionnaire natif sdk en place et peut-être que ce n'est pas affectée par le faux de l'emplacement de l'app. Lui donner un essai.
On peut comprendre la réception d'un emplacement est faux ou vrai, il n'y a pas de problème. La question est de savoir comment) détecte l'emplacement réel tout en LocationManager et FusedLocationProvider donnant la épinglé faux emplacement.
Downvoter, quoi de mal avec cette question ?
êtes-vous d'essais sur l'API 23 périphérique où la suppression de test fournisseur ne fonctionne pas? N') toujours détecter votre emplacement lorsque vous essayez de faux et vraiment en mouvement (c'est-à votre faux emplacement ne change pas, mais réel n') et peut détecter cette)?
j'ai posté une deuxième répondre. Les réponses indirectement à votre question.
On peut comprendre la réception d'un emplacement est faux ou vrai, il n'y a pas de problème. La question est de savoir comment) détecte l'emplacement réel tout en LocationManager et FusedLocationProvider donnant la épinglé faux emplacement.
Downvoter, quoi de mal avec cette question ?
êtes-vous d'essais sur l'API 23 périphérique où la suppression de test fournisseur ne fonctionne pas? N') toujours détecter votre emplacement lorsque vous essayez de faux et vraiment en mouvement (c'est-à votre faux emplacement ne change pas, mais réel n') et peut détecter cette)?
j'ai posté une deuxième répondre. Les réponses indirectement à votre question.
OriginalL'auteur blackkara | 2016-05-11
Vous devez vous connecter pour publier un commentaire.
Certaines 3ème partie de l'emplacement du sdk comme BaiduLocationSDK ne reflète pas le faux de l'emplacement d'installation par le système.
Il est pour fins de sécurité.
Ce n'est pas la réponse à la façon dont ils le font. Ce Android Api ce BaiduLocationSDK?
Il n'y a pas d'anglais de la documentation sur BaiduLocationSDK, mais j'ai vu quelques blogs Chinois nous explique comment elle emplacements de réception. Il n'utilise pas LocationManager(ou fusionnés fournisseur) pour recevoir des lieux. Il utilise H. A. L(couche d'abstraction du Matériel), communique directement du matériel GPS à la place de l'API android. C'est pourquoi) pas affecté de toute usurpation d'identité par le biais de LocationManager.
Alors, si c'est possible d'usurper l'identité du GPS sur le niveau matériel, alors, nous sommes en mesure d'usurper BaiduLocationSDK et) trop.
Ma conjecture est que NMEA est HAL (il ressemble assez bas niveau). Je ne pouvais pas trouver toutes les autres API dans les docs.
OriginalL'auteur duanbo1983
@Bona Fide
Même) serait d'utiliser cette approche avant de demander de l'emplacement des mises à jour, pour éviter les fournisseurs d'usurpation d'identité par d'autres applications, comme quelque chose en dessous de
Donc cette approche provoque lancer une IllegalArgumentException sur l'emplacement faker app. Même dans ce cas, je peux facilement gérer ce problème et de continuer l'usurpation GPS et les fournisseurs de RÉSEAU à nouveau,
Tout fonctionne parfaitement, mais hors de)
OriginalL'auteur blackkara
La raison pour laquelle je posais la questions dans les commentaires, c'est que j'espérais que tu testé l') répond à des conditions différentes.
Il ya un couple d'autres façons de détecter l'emplacement de l'appareil qui
TestProvider
ne devrait pas affecter autant que je sache. Cette besoins des tests mais voici quelques idées:Edit: ajouté le responsable de la Téléphonie option.
GPS NMEA port d'écoute : je n'ai pas tester cette. Mais il est source de est GPS, et j'ai déjà l'usurpation d'identité l'Prestataire GPS. Donc rien ne change. Nmea chaîne inclure les valeurs de mon emplacement maquette.
avez-vous essayé en fait physiquement en mouvement avec l'appareil tandis que l'usurpation de l'emplacement? N') identifier correctement pendant que vous êtes en déplacement? Le degré de précision est) est l'endroit? Si c'est au niveau des pays, vous pouvez utiliser le Téléphone Manager (voir mon édité réponse). Je pense que NMEA auditeur mérite un test, il peut être à un niveau différent peuvent pas être falsifiés.
Comment est précis) emplacement? : Il localise mon vrai emplacement parfaitement alors que google carte montrant mon lieu de railler, de sorte TelephonyManager option ne sera pas un remède. Timur, lorsque vous usurper GPS fournisseur (ou autre), il les effets de l'ensemble du système android. non seulement spécifique à l'application autant que je sache. Je ne pense pas, mais je vais utiliser NMEA option.
OriginalL'auteur Timur_C
Pour vérifier les faux de l'emplacement, la plupart des applications pour
GGA
etGSV
phrases dans leNMEA (National Marine Electronics Association)
de données reçu par eux. Le faux les fournisseurs d'emplacement de ne pas envoyer les phrases NMEA avec l'emplacement, de sorte que ce paramètre peut être utilisé pourSi ils ne l'ont pas reçu et
GGA
etGSV
phrases dans une certaine limite de temps, disons de 100 secondes, ils drapeau rouge à l'emplacement actuel du fournisseur.Ce processus est répété jusqu'à ce qu'un ensemble valide de phrases NMEA a été reçu et ensuite l'emplacement correspondant est sélectionné.
De récupérer les données NMEA
LocationManager#addNmeaListener(GpsStatus.NmeaListener listener)
est appelé, puis dans l'écouteurpour plus d'info voir l'ajout d'un NmeaListener
les phrases NMEA,
GGA
etGSV
regarder comme suitGGA essentiels corriger les données qui fournissent 3D de la position et de la précision des données.
Exemple :
"$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47"
GSV - Satellites en Vue montre les données sur les satellites que l'unité peut être en mesure de trouver basé sur son affichage masque et les données de l'almanach. Il montre également la capacité de suivi de ces données. Notez que l'une des GSV phrase ne peuvent fournir de données pour jusqu'à 4 satellites et donc il faudra peut-être 3 phrases pour l'information complète. Il est raisonnable pour le chef de groupe peine à contenir de plus en plus de satellites que GGA pourrait indiquer depuis le chef de groupe peut inclure des satellites qui ne sont pas utilisés en tant que partie de la solution. Il n'est pas exigé que le chef de groupe des phrases apparaissent dans la séquence. Pour éviter de surcharger la bande passante de données certains récepteurs peuvent placer les différentes phrases totalement différents échantillons puisque chaque phrase qui identifie un il est.
Exemple:
"$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75"
Source : NMEAData
Le faux les fournisseurs d'emplacement de ne pas envoyer les phrases NMEA avec emplacement : C'est bon, quand vous usurpation de gps, alors pas la peine sera reçu.
Ce processus est répété jusqu'à ce qu'un ensemble valide de phrases NMEA a été reçu et ensuite l'emplacement correspondant est sélectionné. : Même drapeau du fournisseur actuel comme falsifiés(GPS), il n'existe aucun moyen de recevoir de la phrase nmea après l'usurpation d'identité. Enfin, pas de façon à obtenir la localisation.
OriginalL'auteur Sakchham
Faux emplacements sont possibles si
ALLOW_MOCK_LOCATION
est définie et qu'unTestProvider
est ajouté à laLocationManager
. Pour obtenir l'emplacement réel que vous devez faire ces deux étapes:TestProvider
de laLocationManager
et d'obtenir la position réelle.Caisse Jambaaz répondre pour obtenir un exemple de comment cela fonctionne dans le code.
Remarque: Pour supprimer un
TestProvider
vous besoin de l'Autorisationandroid.permission.ACCESS_MOCK_LOCATION
etALLOW_MOCK_LOCATION
est maintenant obsolète depuis API 23. Vous pouvez maintenant vérifier si l'Emplacement est à partir d'un TestProvider directement à partir deEmplacement.isFromMockProvider()
Oui, malheureusement, il a besoin de cette autorisation. Je ne l'ai pas essayé moi-même, mais il devrait fonctionner techniquement et il l'a fait pour Jambaaz.
J'ai fait tester tous les moyens raisonnables à propos de l'usurpation de l'emplacement, mais je suis hors de la chance sur). Dans mon second post, j'ai réussit a expliqué comment surmonter jambaaz réponse.
OriginalL'auteur Bona Fide
J'ai réussi à usurper emplacement) et zalo, les deux semblent tout aussi difficile.
Je voudrais charger une maquette de l'emplacement et de la fausse application gps. définir ma position. vérifier les cartes et voir que c'est correct, peut même se déplacer à travers le monde, et ça fonctionne.
Mais) et zalo ne sont pas d'accord, ils disent que je suis dans mon sous-sol lol.
PUIS-je désinstaller fausse application gps (peut-être en mesure de forcer l'arrêt et désactiver) et aller à l') et effacer l'emplacement etc et essayer de nouveau et il va me déplacer à faux de localisation gps. Il ne sera pas le rester après la fermeture de l'app). il est temporaire.
Il pourrait ne pas être facile à faire, mais pouvait donner à quelqu'un indice ou d'un chemin à regarder.
OriginalL'auteur user10373225