Около полугода назад я наконец решил установить iOS 4.2.1 на свой iPhone 3G (где уже давно стояла 3.1.3), и поначалу слухи о небывалых подтормаживаниях показались мне то ли преувеличением, то ли преувеличением.
недостатки 4.0. Однако уже через пару месяцев все стало слишком неприлично тормозиться.
Погуглил, отключил Spotlight, не помогло.
Было очевидно, что основные проблемы связаны со службами определения местоположения; как только его включили, иногда не удавалось ответить на звонок даже через несколько минут после закрытия карты.
Приложения не запускались, хотя Springboard был жив.
По топу или бесплатно не было понятно в чем проблема.
Гугл предлагает сделать Сброс предупреждений о местоположении - помогло, но ненадолго, уже на следующий день все вернулось в прежнее состояние.
Пришлось держать службы геолокации отключенными, а когда навигация действительно была нужна, быть готовым долго ждать.
И тут я вспомнил историю сsolid.db. Поскольку информация обо всех перемещениях (о чем писалось в новостях) хранится в sqlite, то база данных наверняка быстро становится большой и начинает тормозить.
Я нашел два консолидированных.
db: iPhone:~ root# find / -iname consolidated* | xargs ls -l
-rw-r--r-- 1 root wheel 19036160 Oct 22 2010 /System/Library/Frameworks/CoreLocation.framework/Support/consolidated.db
-rw-r--r-- 1 root wheel 12611584 Jul 23 22:21 /private/var/root/Library/Caches/locationd/consolidated.db
Первый хоть и больше, но давно не обновлялся, а второй похож на то, что мы ищем.
Открываю на своем компьютере в браузере баз данных SQLite — в таблицах WifiLocation и CellLocation около 100 тысяч записей, координаты аналогичны моему местоположению.
Борюсь с желанием склеить их в трек и нанести на карту - сейчас не об этом :)
Я делаю delete from wifilocation;
delete from celllocation;
update wifilocationcounts set count=0;
update celllocationcounts set count=0;
(для этого мне пришлось взять консоль sqlite3, которую я потом установил на сам iPhone. Она не умеет Truncate table.)
На всякий случай делаю вакуум.
Файл уменьшился до 4 Мб, все равно много, но это уже должно быть заметно.
Загружаю файл обратно, включаю локацию - вроде работает. Завершается за 10-20 секунд вместо нескольких минут (это видно вверху, а также по значку стрелки в Статус-баре, в правом верхнем углу рядом с батареей).
Пытаюсь стереть полностью - может эта возня с sqlite на практике не нужна.
А locationd пересоздает его (не сразу при запуске, а через какое-то время), и снова все работает. Таким образом, если на вашем iPhone медленно определяется местоположение и у вас установлен джейлбрейк, вы можете попытаться вылечить это с помощью iPhone: ~ root# rm /private/var/root/Library/Caches/locationd/consolidated.db Что касается второго консолидированного.
db из /System/Library, то он содержит различные координаты базовых станций GSM и WiFi, в основном в Западном полушарии.
Кроме того, все записи имеют метку времени = 0. Возможно, эта база данных должна ускорить навигацию на демонстрациях в Купертино :) ПС Если вы устанавливаете sshd, не забудьте сразу: Однажды измените корневой и мобильный пароли и загрузите свой открытый ключ П.
П.
С.
На него можно поставить права 000 и забыть до следующей перепрошивки.
chmod 0 /private/var/root/Library/Caches/locationd/consolidated.db
Не проверял, но Они говорят что этого недостаточно и лучше всего заменить ее папкой rm /private/var/root/Library/Caches/locationd/consolidated.db
mkdir /private/var/root/Library/Caches/locationd/consolidated.db
Теги: #consolidated.db #ios 4.2.1 #iphone 3g #iPhone 3G #iPhone 3g #locationd #службы определения местоположения ios #тормоза #ИТ-компании #ИТ-компании
-
Цифровизация Образования
19 Oct, 24 -
Какую Нумерацию Версий Вы Используете?
19 Oct, 24