Баг в iOS приводит к превращению iPhone в «кирпич» при установке даты на 1 января 1970 года

На Reddit появился пост, в котором сообщается, что при установке определённой даты и времени в iOS можно получить полностью нерабочее устройство, которое не восстанавливается даже в режиме DFU.

Upd О способе восстановления читайте в конце статьи.

Ни в коем случае не повторяйте эти действия!

Воспроизводится так:

  • Настройки (Settings);
  • Основные (General);
  • Дата и время (Date & Time);
  • Выключить «Автоматически» (Set Automatically);
  • Установить дату на 1 января 1970 года, время 1:00;
  • Перезагрузить устройство.

Телефон перестанет загружаться, зависая на показе логотипа Apple. При этом фокус с восстановлением через DFU не сработает: вы получите сообщение, что всё прошло успешно, но загрузка снова остановится.

Сообщается, что баг актуален только для 64-битных процессоров (A7, A8, A8X, A9 и A9X) и не затрагивает старые 32-битные версии.

Существует видео с демонстрацией от wylsa.com, автор которого сначала отказывался верить, что аппарат на самом деле не получится восстановить.

Рабочая версия, объясняющая баг следующая. Время в iOS хранится в UNIX time т.е. в количестве секунд, прошедших с полуночи 1 января 1970 года. При установки времени, близкого к этому, iOS применит ещё и сдвиг для вашей временной зоны, чтобы показать вам локальное время, что вызовет переход к отрицательным значениям. Например, для Москвы при UTC+3, при установке 1:00 реально сохранённое значение должно быть 31 декабря 1969 года 22:00, что уже не входит в диапазон допустимых значений.

Есть сообщения, что для восстановления нужно просто подождать, пока часы «дотикают» до нормальных значений и всё восстановится само собой, но проверять это мы не стали, по понятным причинам.

Также в качестве варианта предлагается убрать батарею или полностью разрядить её, чтобы часы перестали получать питание и сбросили значение времени. Заметим, что самостоятельное снятие батареи лишает вас гарантии, так что этот вариант не рекомендуется для проверки.

Ещё один способ в установке другой сим-карты, по некоторым сообщениям это тоже приводит к сбросу времени, и телефон восстанавливает работоспособность.

Конечно же, в Интернете начали появляться шуточные картинки, в которых говорится, что установка даты на 1970 год включает некий «секретный режим» и поменяет оформление телефона.

Скорее всего подобные «розыгрыши» будут актуальные в ближайшие дни, пока Apple не выпустит исправление. Рекомендуем установить на свой телефон пароль и не передавать его третьим лицам в пользование.

Для устройств с джейлбрейками в Cydia уже успел появится фикс, который не позволяет вручную изменять дату и обезопасить себя от «шутливых друзей».

Upd На сайте wylsa.com было опубликовано решение, позволяющее восстановить iPhone.

По сути, подтвердился один из предлагаемых ранее вариантов: если полностью обесточить устройство, то часы сбросятся и загрузка пройдет нормально. Можно либо подождать полной разрядки, либо вытащить на время аккумулятор. Если тратить много времени не хочется, но вы не уверены в своих силах и прямоте рук, то лучше несите в сервис и попросите провести эту процедуру. Стоить это должно не более 500 рублей.

Официальное исправление от Apple всё ещё не выпущено.

Типичный программист