0

デバイスの場所を偽造するアプリがいくつかあることは知っていますが、特にやりたいことは、URL から取得した場所を使用することです。

デバイスの場所を設定するには、どの方向を探す必要がありますか。

私が持っているシナリオは、脱獄された Wi-Fi iPad がネクサスのものにつながれていることです。nexus one はバックグラウンド サービスをホストし、リクエストを受信すると現在地の GPS データで応答します。ジェイルブレイクされたiPadには、テザリングされたネクサスワンサービスにリクエストを送信することにより、時間間隔で、またはリクエストごとに(実装方法に応じて)場所を更新するバックグラウンドサービスがあります。次に、そのデータが iPad に設定され、位置情報を要求するアプリケーションがサービス データを取得します。

目標は、なりすましの場所を除いて、場所偽装アプリの機能を再作成することです。ただし、サービスを介して nexus one gps から取得されますが、デバイスの場所データを設定する方法はまだわかりません。もちろん、これをアプリごとに実装することもできますが、どのアプリでも使用できるようになれば素晴らしいと思います。

4

3 に答える 3

2

Core Location には、プライバシーと個人のセキュリティに関する重大な懸念があります。そのため、ジェイルブレイクされたデバイスであってもクラックやなりすましは非常に困難です。私の知る限り、位置情報のリクエストが行われるたびに位置情報が計算されます (そのため、バッテリーが消耗します)。簡単に設定できるファイルや設定はありません。

すべてのアプリの場所を偽装するには、Core Location が呼び出すシステム コードにパッチを適用する必要があります。そのシステム コードはすべて Apple 独自のものであるため、ドキュメントはありません。何らかの理由で Apple コードをリバース エンジニアリングした人を見つけなければなりません。

最善の方法は、場所を管理するカスタム プロセスが実行されているかどうかを確認し、そのプロセス全体を、なりすましの場所だけを返す独自のプロセスに置き換えることです。

いずれにせよ、基本的には、すべてのアプリですべての Core Location 呼び出しが機能するように、Core Location が呼び出すインターフェイス全体を再作成する必要があります。ドキュメントのないAPIで低レベルのCコーディングを大量に見ています。正解する確率はかなり低いです。

于 2010-07-01T19:22:36.777 に答える
1

さて、iPhone で場所を取得する方法は、CLLocationManager. カスタムの場所を取得したい場合は、それをサブクラス化し、スーパーを呼び出さないstartUpdatingLocationようにメソッドをオーバーライドしてから、デリゲート メソッドを自分で呼び出します。何かのようなもの:

@interface CustomLocationManager : CLLocationManager {

}
@end

@implementation CustomLocationManager

- (void) startUpdatingLocation {
  [[self delegate] locationManager:self didUpdateToLocation:customLocation fromLocation:nil];
}

@end

次に、次のことができます。

CLLocationManager * manager = [[CustomLocationManager alloc] init];
[manager setDelegate:self];
[manager startUpdatingToLocation];
于 2010-05-21T21:10:57.007 に答える
0

コアの場所にフックするか、場所にあるキャッシュを使用することが、これを行うための最良の方法のようです。私はまだ何も実装していませんが。それが進むべき道です。

于 2011-07-15T20:44:26.473 に答える