
dumper della cache del servizio di localizzazione Android
Dopo l'indignazione/reazione eccessiva su Internet degli ultimi giorni per la rivelazione che iPhone ha una cache per il suo servizio di localizzazione, ho deciso di dare un'occhiata a cosa mettono in cache i miei dispositivi Android per la stessa funzione.
Questo è un piccolo dumper che ho messo insieme per analizzare i file del provider di localizzazione di Android.
I file si chiamano cache.cell e cache.wifi e si trovano in /data/data/com.google.android.location/files sul dispositivo Android.
Avrai bisogno dell'accesso root al dispositivo per leggere questa directory.
Come disabilitare:
Individua Settings -> Location & Security -> Use wireless networks e deselezionalo.
Questo rimuove i file sui dispositivi 2.3, il mio dispositivo 2.2 conserva i file ma smette di aggiornarli. Le altre versioni sono sconosciute al momento.
Utilizzo:
$ parse.py <cache file>
Puoi anche passare l'opzione --gpx per ottenere l'output in formato GPX, e poi usare gpsbabel o qualcos'altro per convertire i dati nel formato che preferisci:
$ parse.py --gpx cache.wifi > wifi.gpx
Nota importante: guardando il vecchio codice sorgente di Android (questo codice non è più aperto da Google, a quanto pare) sembra essere fortemente limitato.
Tuttavia, i dati vengono eliminati solo quando vengono aggiunte nuove informazioni. Non c'è una pulizia basata sul tempo a meno che non vengano aggiunti nuovi dati alla cache. Questo potrebbe portare a conservare dati vecchi se il movimento del dispositivo è limitato.
// Maximum time (in millis) that a record is valid for, before it needs
// to be refreshed from the server.
private static final long MAX_CELL_REFRESH_RECORD_AGE = 12 * 60 * 60 * 1000; // 12 hours
private static final long MAX_WIFI_REFRESH_RECORD_AGE = 48 * 60 * 60 * 1000; // 48 hours
// Cache sizes
private static final int MAX_CELL_RECORDS = 50;
private static final int MAX_WIFI_RECORDS = 200;
Esempio di output:
$ ./parse.py cache.wifi
db version: 1
total: 47
key accuracy conf. latitude longitude time
50:63:13:57:42:7e 80 92 57.689354 11.994763 04/11/11 10:03:51 +0200
e0:cb:4e:7e:cc:53 75 92 57.689340 11.994495 04/11/11 10:03:51 +0200
4c:54:99:14:47:68 57 92 57.708979 11.916581 04/11/11 01:14:53 +0200
00:26:18:0a:ad:cb 60 92 57.709699 11.917637 04/13/11 08:40:36 +0200
00:22:15:28:3f:7a 60 92 57.699467 11.979340 04/13/11 11:52:16 +0200
00:22:3f:a7:d9:fd 65 92 57.699442 11.979343 04/13/11 11:52:16 +0200
$ ./parse.py cache.cell
db version: 1
total: 41
key accuracy conf. latitude longitude time
240:5:15:983885 1186 75 57.704031 11.910801 04/11/11 20:03:14 +0200
240:5:15:983882 883 75 57.706322 11.911692 04/13/11 01:41:29 +0200
240:5:75:4915956 678 75 57.700175 11.976824 04/13/11 11:52:16 +0200
240:5:75:4915953 678 75 57.700064 11.976629 04/13/11 11:53:09 +0200
240:7:61954:58929 1406 75 57.710205 11.921849 04/15/11 19:46:31 +0200
240:7:15:58929 -1 0 0.000000 0.000000 04/15/11 19:46:32 +0200
240:5:75:4915832 831 75 57.690024 11.998419 04/15/11 16:13:53 +0200
Se hai domande/informazioni che desideri condividere, puoi contattarmi all'indirizzo [email protected]