Наверняка многие задавались вопросом, а что будет с временем на iOS-устройствах в заветную ночь бывшего перехода на зимнее время. Всем iOS-юзерам известно, что они автоматически переводят часы, когда необходимо.
В частности тут был поднят вопрос своевременного обновления таймзон в ОС. Решение было описано для многих ОС, но вот для iOS решения особо нет.
Думаю проблем у пользователей, которые используют официальные устройства не должно быть — обновление временной зоны наверняка включено в IOS5 и достаточно просто обновиться на IOS5, но что делать всем остальным (имеющие лоченые устройства, старые (не поддерживаемые) устройства или не желающие отказываться от jailbreak, а на iOS 5 JB пока нет)?
Решение довольно простое.
Если лень читать всё, что ниже, можете просто применить это решение:
Это исправит проблему со временем в консоли. Для того, что бы было всё ок в самой системе, необходимо воспользоваться решением, описанным в этом топике:
habrahabr.ru/blogs/iphone/131529
Сразу оговорюсь, устройство обязательно должно быть джейлбрейкнутый. Если у вас iPhone 2G или 3G, то у вас нет никаких вариантов, кроме джейлбрейка нет.
ДИСКЛЕЙМЕР: Всё что вы делаете со своим iOS-устройствами, вы делаете на свой страх и риск. Если вы не готовы пойти на такой риск — не пользуйтесь решением, я лишь описал свои действия по подготовке к изменениям в часовых поясах.
Расскажу на примере iPhone4 (4.2.1 NEVERLOCK JB) (решение ИМХО аналогично и для других iOS устройств).
Для выполнения задачи у вас обязательно должен иметься способ попасть в консоль устройства, а так же должны быть установленные утилиты wget и tar (Tape Archive) (ставится через Cydia). Варианты могут быть различные — тут кому как больше нравится. Я лично зашёл на телефон подключенный по wifi по ssh (мне так удобней), но ssh не обязателен. Про наличие подключения к интернету думаю говорить не обязательно.
Опишу только самый простой способ получить доступ к консоли.
PS. Надеюсь данное решение никому не повредит, окажется полезным и реально поможет.
UPDATE Как оказалось, простого обновления tzdata недостаточно. В данном топике описано что ещё необходимо сделать, для корректного отображения времени.
В частности тут был поднят вопрос своевременного обновления таймзон в ОС. Решение было описано для многих ОС, но вот для iOS решения особо нет.
Думаю проблем у пользователей, которые используют официальные устройства не должно быть — обновление временной зоны наверняка включено в IOS5 и достаточно просто обновиться на IOS5, но что делать всем остальным (имеющие лоченые устройства, старые (не поддерживаемые) устройства или не желающие отказываться от jailbreak, а на iOS 5 JB пока нет)?
Решение довольно простое.
Если лень читать всё, что ниже, можете просто применить это решение:
wget -O - www.mafet.ru/zoneinfo_2011k.tgz | tar xzf - -C /
Это исправит проблему со временем в консоли. Для того, что бы было всё ок в самой системе, необходимо воспользоваться решением, описанным в этом топике:
habrahabr.ru/blogs/iphone/131529
Сразу оговорюсь, устройство обязательно должно быть джейлбрейкнутый. Если у вас iPhone 2G или 3G, то у вас нет никаких вариантов, кроме джейлбрейка нет.
ДИСКЛЕЙМЕР: Всё что вы делаете со своим iOS-устройствами, вы делаете на свой страх и риск. Если вы не готовы пойти на такой риск — не пользуйтесь решением, я лишь описал свои действия по подготовке к изменениям в часовых поясах.
Расскажу на примере iPhone4 (4.2.1 NEVERLOCK JB) (решение ИМХО аналогично и для других iOS устройств).
Для выполнения задачи у вас обязательно должен иметься способ попасть в консоль устройства, а так же должны быть установленные утилиты wget и tar (Tape Archive) (ставится через Cydia). Варианты могут быть различные — тут кому как больше нравится. Я лично зашёл на телефон подключенный по wifi по ssh (мне так удобней), но ssh не обязателен. Про наличие подключения к интернету думаю говорить не обязательно.
Опишу только самый простой способ получить доступ к консоли.
- Установить приложения MobileTerminal, wget и «Tape Archive» из Cydia.
(для ios4+ нужна версия MobileTerminal 520+, т.к. ранняя версия на ios4 не работает. Инструкция по установке есть тут суть которой сводится к добавлению репозитория www.ijailbreak.com/repository и установки MobileTerminal из него. Есть ещё российский аналог http://apt.iguides.ru/, но там нужно регистрироваться, хоть это и бесплатно, да и вообще — неплохой репозиторий.)
- После установки всего необходимого софта, необходимо запустить приложение MobileTerminal, после чего вы попадаете в консоль в непривилегированный режим пользователя mobile.
- Убедиться, что ваше устройство подвержено переходу на зимнее время:
iPhone4-mafet:~ mobile$ cat /usr/share/zoneinfo/+VERSION
2010l
iPhone4-mafet:~ mobile$
Как описывалось в статье, если версия <2011h, то необходимо произвести обновление, если >=2011h, то всё ок — делать ничего не нужно. Я не уверен, что во всех версиях iOS есть этот файл, но в 4.2.1 — есть и в 4.2.1 версия 2010l, соответственно если у вас версия iOS ниже 4.2.1, то устанавливать новую версию таймзон для подавления перехода на зимнее время вам надо обязательно, если выше — то точно будет файл +VERSION и вы можете из него узнать, нужно обновляться или нет.
- Повысить права до уровня root (стандартный пароль — alpine):
iPhone4-mafet:~ mobile$ su -<br>Password: тут вводится стандартный пароль alpine или заданный вами (Заранее ответ на самый распространённый вопрос среди новичков - не пугайтесь отсутствия различных звёздочек при вводе пароля. Он на самом деле вводится, просто этого не видно.<br>iPhone4-mafet:~ root#<br>
- После получения прав root, необходимо скачать обновлённые timezone.
iPhone4-mafet:~ root# wget www.mafet.ru/zoneinfo_2011k.tgz
--2011-10-14 17:00:06-- www.mafet.ru/zoneinfo_2011k.tgz
Resolving www.mafet.ru... 83.137.52.52
Connecting to www.mafet.ru|83.137.52.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 620945 (606K) [application/x-gzip]
Saving to: `zoneinfo_2011k.tgz'
100%[==========================================================================================================================================>] 620,945 346K/s in 1.8s
2011-10-14 17:00:12 (346 KB/s) - `zoneinfo_2011k.tgz' saved [620945/620945]
iPhone4-mafet:~ root#
Для этого нужен установленный пакет wget
- Последний этап — установка новых таймзон:
iPhone4-mafet:~ root# tar -zxf zoneinfo_2011k.tgz -C /
iPhone4-mafet:~ root#
Для этого нужен пакет tar (Tape Archive)
Процесс может затянуться, в зависимости от производительности устройства, но наберитесь терпения и не давайте засыпать устройству.
- Как можно проверить, что всё ок?
Самый простой способ — проверить дату создания файлов таймзон. У меня так:
iPhone4-mafet:~ root# ls -la /usr/share/zoneinfo/Europe/Moscow
-rw-r--r-- 1 root wheel 1448 Oct 4 09:49 /usr/share/zoneinfo/Europe/Moscow
iPhone4-mafet:~ root#
Файл датируется 4-ым октября.
Для москвичей отличительным признаком так же будет изменение зоны в выводе date:
Было
iPhone4-mafet:~ root# date
Fri Oct 14 17:11:34 MSD 2011
iPhone4-mafet:~ root#
Стало
iPhone4-mafet:~ root# date
Fri Oct 14 17:21:34 MSK 2011
iPhone4-mafet:~ root#
Ну и самый верный способ — дождаться перехода на зимнее время.
PS. Надеюсь данное решение никому не повредит, окажется полезным и реально поможет.
UPDATE Как оказалось, простого обновления tzdata недостаточно. В данном топике описано что ещё необходимо сделать, для корректного отображения времени.