
дампер кэша службы геолокации Android
Вслед за возмущением/чрезмерной реакцией интернета последних дней на откровение о том, что у iPhone есть кэш для его службы геолокации, я решил посмотреть, что кэшируют мои Android-устройства для той же функции.
Это быстрый дампер, который я собрал на скорую руку для разбора файлов от Android-провайдера геолокации.
Файлы называются cache.cell и cache.wifi и расположены в /data/data/com.google.android.location/files на Android-устройстве.
Вам понадобится root-доступ к устройству, чтобы прочитать этот каталог.
Как отключить:
Найдите Настройки -> Местоположение и безопасность -> Использовать беспроводные сети и снимите флажок.
На устройствах 2.3 это удаляет файлы; моё устройство 2.2 сохраняет файлы, но перестаёт их обновлять. Поведение остальных версий на данный момент неизвестно.
Использование:
$ parse.py <cache file>
Вы также можете передать опцию --gpx, чтобы получить вывод в формате GPX, а затем с помощью gpsbabel или чего-то подобного преобразовать данные в нужный вам формат:
$ parse.py --gpx cache.wifi > wifi.gpx
Важное замечание: судя по старому исходному коду Android (похоже, Google больше не публикует этот код открыто), он, по всей видимости, сильно ограничен.
Однако данные очищаются только при добавлении новой информации. Очистка по времени не выполняется, если в кэш не добавляются новые данные. Это может приводить к хранению устаревших данных, если устройство мало перемещается.
// 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;
Пример вывода:
$ ./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
Если у вас есть вопросы или информация, которой вы хотели бы поделиться, со мной можно связаться по адресу [email protected]