iOS private API zum Verfolgen des Standorts im Hintergrund, nachdem die App beendet wurde (z. B. Meine Freunde finden)

8

Ich versuche das Ortsupdate in Find My Friends mit Theos zu spoofen.

Was ich bisher habe:

Wenn die App im Vordergrund ist, konnte ich die Update-Nachricht fälschen (mit Theos/Logos an hook FMFLocation class).

Was fehlt:

Wenn sich die App im Hintergrund oder getötet befindet, sendet sie meinen Standort immer noch an den Server, wenn mein Freund meinen Standort anfordert. Dieses Hintergrundupdate ruft die reguläre Update-Methode NICHT auf, daher funktioniert mein Hook nicht. Außerdem kann es auf eine Standortanfrage vom Netzwerk antworten, selbst wenn die App beendet wird. Ich denke nicht, dass Apple dieses Verhalten in normalen Apps erlaubt.

Ich denke, das kann nur mit einer privaten API gemacht werden. Könnte mir jemand in die richtige Richtung zeigen, um herauszufinden, welche API / Methode es im Hintergrund verwendet?

    
Wei Shi 26.06.2013, 14:59
quelle

2 Antworten

1

Ich habe es herausgefunden! Es ist die aosnotifyd , die den Standort im Hintergrund sendet.

Ich habe das getan:

%Vor%     
Wei Shi 27.06.2013, 05:13
quelle
1

Sie können die Methode -startMonitoringSignificantLocationChanges in CLLocationMananger überprüfen ( Dokumente ).

Wie die Dokumentation sagt:

  

Diese Methode initiiert die asynchrone Zustellung von Standortereignissen.   kurz nachdem du es angerufen hast. Veranstaltungsorte werden an geliefert   Der locationManager Ihres Delegierten: didUpdateLocations: method. Der Erste   Das zu übergebende Ereignis ist normalerweise der zuletzt zwischengespeicherte Speicherort   Ereignis (falls vorhanden), kann jedoch unter Umständen ein neueres Ereignis sein.   Das Erhalten eines aktuellen Standortfixes kann einige zusätzliche Sekunden dauern.   Achten Sie also darauf, die Zeitstempel der Standortereignisse in Ihrem Browser zu überprüfen   Delegate-Methode.

     

Nach der Rückgabe eines aktuellen Standortfixes generiert der Empfänger ein Update   Ereignisse nur, wenn sich der Standort des Benutzers erheblich ändert   erkannt. Zum Beispiel könnte es ein neues Ereignis beim Gerät generieren   wird mit einem anderen Zellenturm assoziiert. Es verlässt sich nicht auf   der Wert in der Eigenschaft distanceFilter, um Ereignisse zu generieren. Berufung   Diese Methode ergibt sich mehrmals hintereinander nicht automatisch   in neuen Ereignissen erzeugt werden. Berufung   stopMonitoringSignificantLocationChanges dazwischen tut jedoch   Wenn beim nächsten Aufruf ein neues initiales Ereignis gesendet wird   Methode.

     

Wenn Sie diesen Service starten und Ihre Anwendung anschließend ist   beendet, startet das System die Anwendung automatisch neu   der Hintergrund, wenn ein neues Ereignis eintrifft. In einem solchen Fall die Optionen   Wörterbuch an den locationManager übergeben: didUpdateLocations: Methode von   Ihr Anwendungsdelegat enthält den Schlüssel   UIApplicationLaunchOptionsLocationKey um anzuzeigen, dass Ihre   Anwendung wurde aufgrund eines Location-Ereignisses gestartet. Nach dem Relaunch   Sie müssen weiterhin ein Standortmanagerobjekt konfigurieren und dieses aufrufen   Methode, um weiterhin Standortereignisse zu empfangen. Wenn Sie neu starten   Ortungsdienste wird das aktuelle Ereignis an Ihren Delegierten übermittelt   sofort. Außerdem die Standorteigenschaft Ihres Standorts   Das Manager-Objekt wird sogar mit dem neuesten Standortobjekt gefüllt   bevor Sie Standortdienste starten.

     

Zusätzlich zu Ihrem delegierten Objekt, das den   locationManager: didUpdateLocations: Methode sollte es auch implementieren   Der locationManager: didFailWithError: Methode, um auf das Potenzial zu reagieren   Fehler.

Also im Grunde müssen Sie:

  • Legen Sie die location -Schlüssel als Hintergrundmodus in Ihrer Info.plist -Datei
  • fest
  • Start einer CLLocationMananger
  • Aufruf startMonitoringSignificantLocationChanges
  • Auf Ihrem AppDelegate erhalten Sie einen Ort im Info-Wörterbuch, der mit UIApplicationLaunchOptionsLocationKey versehen ist, wenn sich die Benutzer etwa 500 Meter bewegen.
  • Bei dieser Methode können Sie den Speicherort auf dem Server aktualisieren.
pgb 26.06.2013 17:37
quelle

Tags und Links