
dumper de cache do serviço de localização android
Após a indignação/reação exagerada dos últimos dias na internet à revelação de que o iPhone tem um cache para o seu serviço de localização, decidi ver o que os meus dispositivos Android guardam em cache para a mesma função.
Este é um dumper rápido que montei para analisar os arquivos do provedor de localização do Android.
Os arquivos são chamados cache.cell e cache.wifi e estão localizados em /data/data/com.google.android.location/files no dispositivo Android.
Você precisará de acesso root ao dispositivo para ler este diretório.
Como desativar:
Encontre Settings -> Location & Security -> Use wireless networks e desmarque-a.
Isso remove os arquivos em dispositivos 2.3; meu dispositivo 2.2 mantém os arquivos, mas para de atualizá-los. Outras versões são desconhecidas neste momento.
Uso:
$ parse.py <cache file>
Você também pode passar a opção --gpx para obter a saída no formato GPX e, em seguida, usar gpsbabel ou algo parecido para converter os dados para o formato de sua escolha:
$ parse.py --gpx cache.wifi > wifi.gpx
Nota importante: olhando o código-fonte antigo do Android (este código aparentemente não é mais aberto pelo Google), parece que ele é bastante limitado.
No entanto, os dados só são removidos quando novas informações são adicionadas. Não há remoção baseada no tempo, a menos que novos dados estejam sendo adicionados ao cache. Isso pode fazer com que dados antigos permaneçam se houver movimento limitado do dispositivo.
// 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;
Exemplo de saída:
$ ./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 você tiver alguma pergunta/informação que queira compartilhar, pode me contatar em [email protected]