Как и множество людей, пользующихся iPhone я столкнулся с ситуацией, когда телефон садится просто на глазах! Точнее не совсем так быcтро, но за время с 8-00 до 14-00 телефон разрядился почти полностью.
Естественно меня этот факт сильно расстроил и я занялся поиском вариантов решения проблемы. Пришлось перекроить огромное количество материала на форумах, блогах и прочей дребедени. Не смотря на отсутствие внятных объяснений и материалов на русском языке, решение проблемы было найдено. Если вам стало уже интересно - прошу под кат, там будет описана суть проблемы и ее решение.
И так, начнем с сути проблемы.
Как и большинство владельцев устройств компании Apple на территории стран СНГ, я являюсь счастливым обладателем iPhone 3G родом из Европы. Естественно он залочен под тамошнего оператора, а значит без джейлбрейка и анлока пользование им в нашей стране не возможно. Впрочем так же, без специальных средств, не возможна и внятная активация устройства после перепрошивки на новую версию ОС.
Пару недель назад, в погоне за мультизадачностью, папочками и другими плюшками iOS 4.2, я имел неосторожность прошить телефон этой ОС. Всё ничего и прошло всё удачно, да вот беда, как показывают отзывы в интернете поднятый до айпадовского модем и скрытая проверка сертификатов садят батарею в разы. Батарея ранее держала 3-4 дня в средней степени загруженности устройства втечении дня. И вот выход анлока привнёс свои новшества и курьёзы и тут началось...
Телефон старался использовать как можно меньше, но батарея таяла на глазах. Сказать что меня это расстроило - это значит не сказать ничего! Что, впрочем, не помешало трезвому уму поискать корень проблемы и решить ее. И вот он этот корешок:
Версии iOS 4.1 и 4.2.1 сильно отличаются от всех предыдущих. При чем отличаются не только плюшками, но и средствами защиты. Те, кто сталкиваются с проблемой просадки батарей на этих ОС, скорее всего имеют установленный джейлбрейк (анлок не обязательно). Почему именно джейлбрейк влияет на батарею, хотя появилась просадка только после анлока? Вот почему: процесс джейлбрейка автоматически "хактивирует" телефон, т.е. избавляет вас от необходимости активировать через iTunes при помощи оригинальных сим карт, их клонов или других шаманских приспособлений. И вот как раз эта самая "хактивация" цепляет процесс проверки push сертификатов. В итоге телефон постоянно ищет правильные сертификаты через любые каналы данных, а это и Wi-Fi, и GSM, и даже 3G!
Что же делать в этой ситуации и как отучить телефон лазить где попало? Один из участников iPhone Dev Team под ником sherif_hashim в комментариях к посту о свежем анлоке дал рекомендации как избавиться от проблемы посадки батареи:
Активируйте телефон официальной симкой, если конечно она у вас есть, или попробуйте раздобыть ее у друзей, в общем нужна официальная симка и нормальная активация через iTunes.
Если пункт 1 не выполним, тогда попробуйте так: ставите из Сидии SBSetting и с ее помощью отключаете каналы данных (Wi-fi, 3G, GSM), когда не пользуетесь ими.
Сейчас над разработкой очень интересного модуля трудится некий sbigner. Модуль позволяет хактивировать устройство сохраняя легальные сертификаты. По идее его модуль должен помочь в решении проблемы, но пока попробуйте воспользоваться пунктами 1 или 2.
Интересные рекомендации, но я нашел решение проблемы более простым способом, но может быть он не всем подойдет (берем за основу тот факт, что ваш телефон джейлбрейкнут и имеет доступ в интернет любым способом):
Запускаем Сидию.
Тыкаем во вкладку "Manage".
Тыкаем в кнопочку "Sources".
Тыкаем в кнопочку "Edit" в правом верхнем углу экрана.
Тыкаем в кнопочку "Add" в левом верхнем углу экрана.
Вписываем в поле запроса адрес репозитория: http://www.cmdshft.ipwn.me/apt/ и жмем кнопульку "Add source".
После того, как Сидия пережует новый репозиторий, тыкаем в кнопку "Return to cydia".
Жмем "Done" чтобы выйти из режима редактирования репозиториев.
Тапаем по только что добавленному NERV repository.
Из списка пакетов находим и выбираем Push Doctor.
Тапаем "Install" в правом верхнем углу экрана.
Тапаем "Confirm" в том же углу и ждем установки пакета.
Перезагружаем устройство и проверяем работоспособность Youtube. А так же переустанавливаем все приложения, которые используют push уведомления.