17 сентября 2012 г.

iPhone 3GS или яблочный спас на крови


Пришел, наследил, испортил хорошую вещь! 
(Приключения Шерлока Холмса и доктора Ватсона)

Вся история звучит странно до неприличия - подарили мне на Новый 2012 год iPhone 3GS. Вставляю я в него свою SIM'ку, все на ура - сеть видится и жизнь прекрасна. Подключаю я его к iTunes (как пользователь iPod Touch 1го поколения с почти 5 летним стажем я знаю как это делается :) и мне коварный Apple предлагает мол прошивка у тебя старая давай обновим до последней (5.0.1). Cмотрю я на нововведения в iOS 5.0 - ВАУ сколько всего "вкусного" давай мол говорю, жги. Минут 15 iTunes напрягается и после рестарта телефона он радостно сообщает, что активироваться не может ибо SIM'ка не та, давай мол родную (AT&T, как я потом узнал). 

Да, думаю дело на 10 минут сейчас я его "хакну". И на этом шаге я подвис - такое количество разрозненной и неупорядоченной информации по решению подобного рода проблем на Вас вываливает интернет, что мозг неподготовленного человека попросту взрывается, но давайте двигаться по порядку (если Вы такие же наивные каким был я, то можете поискать архивный образ прошивки до обновления iOS - могу Вас заверить так просто он обратно уже не загрузится).


Экономика

iPhone'ы бывают "залоченные" под оператора и незалоченные (т.е. те, которые могут работать на любых сетях и с любыми SIM'ками). Порядок цен на них на сайте Apple просто умиляет. Так, например, цена iPhone 4 с 8Gb с контрактом на момент написания статьи составляла 0$ (ежемесячная плата от 85$; минимальный срок контракта 24 месяца), а он же разлоченный стоит 450$. Для iPhone 4S с 16GB - 99$ и 549$ соответственно, а новый iPhone 5 с 16GB - 199$ и нет цены на разлоченную версию. Ходят слухи, что Apple и некоторые операторы могут удаленно разлочить ваши устройства через iTunes (подозреваю, что залочить тоже смогут :)

Что делают ушлые американцы - приобретают на контракт залоченные под операторов iPhone'ы, активируют их "родной" SIM'кой и "хакают" на предмет привязки к оператору и продают "на лево". Как следует из тривиальных математических расчетов такая схема прибыльна только если iPhone Вам достается без дополнительного финансового "ярма" в виде контракта (за старый iPhone 4 с двухлетним контрактом нужно будет выложить от 85*24 = 2040$ сравните это со стоимостью разлоченной модели - 549$). Почему в таком случае телефон за 2040$ дешевле телефона за 549$? Многие операторы в США и Европе раз в два года предлагают перезаключить договор и под него выбрать себе телефон. Вы оставляете себе (или не себе) старый аппарат, а новый продаете. Такова судьба, судя по всему, и моего телефона приехавшего из США (это новая "трубка" 2010 года выпуска, где она была в 2011 году не известно, возможно, телефон после т.н. восстановления).


iOS 5.x

Что же собственно произошло с моим iPhone при установке на него iOS 5.0.1? Произошли две вещи:
  1. Был залит новый образ ОС (это решаемая проблема).
  2. Была обновлена прошивка телефонной части (модема, если быть точнее). А вот с этим дела обстоят хуже.
По сути для запуска залоченного телефона на сети другого оператора нужно разлочить Ваш iPhone (да-да, именно разлочить или сделать ему unlock). Этим занимается ПО под названием Ultrasn0w (См.инструкцию по его применению здесь). С ним есть всего одна небольшая проблема - он работает далеко не со всеми версиями (прошивками) модемов. А точнее с 5-6 (да-да есть ПЯТЬ-ШЕСТЬ версий модемов) которые можно разлочить. А что делать с остальными, спросите Вы? Это сложный вопрос. Существует переменное количество факторов которые влияют на то можно ли изменить версию модема до одной из желаемых: версия iPhone'a (5, 4S, 4, 3GS), версия iOS, дата его выпуска, версию загрузчика и т.д. Самое неприятное в этой ситуации, что неудачное обновление версии прошивки модема может убить модемную часть в телефоне. В переводе на русский язык это значит, что Ваш iPhone превратится в iPod (т.е. навсегда перестанет звонить, видеть Wi-Fi сети, работать по Bluetooth и понимать GPS). На местном сленге это называется брикнуть телефон (т.е. превратить его в кирпич). 

С чего можно начать в такой ситуации? С двух вещей:
  1. утилиты f0recast, которая выводит всю информацию о телефоне (включая возможность его взлома и "отвязки" от оператора). Она же указывает серийный номер Вашего телефона  (Serial #) и версию модема (baseband).
  2. Указав серийный номер на некоторых сайтах (например, на этом), Вы узнаете кое-что новое о вашем телефоне. Например, год и порядковый номер недели выпуска аппарата (на самом деле это 3 цифра  в серийном номере - это год, 4 и 5 цифры - неделя выпуска аппарата) и т.д.
Если Вам повезло и Ultrasn0w сможем разлочить ваш телефон - значит дело за малым. Скорее всего Вам не повезет (по крайней мере на удачу рассчитывать не стоит). Далее нужно  определить теоретическую возможность изменения версии модема. Так, например, если у вас аппарат как и у меня 3GS выпущенный до 34 недели 2011 года - вам повезло: обновлять прошивку возможно. Если серийный номер выглядит как XX134... или выше, то данный способ не сработает - "брикнете" телефон. Что делать тем кому не повезло? Самое главное - не отчаиваться. Интернет попросту наводнен информацией как "бороться" с iPhone'ами (от фиктивных SIM'ок до методов социальной инженерии и разговоров с провайдерами с просьбой разлочить данный телефон :). Что такого страшного произошло на 34 неделе 2011 года? Да по сути ничего особенного Apple изменил аппаратную часть в iPhone 3GS - поменял поставщика чипов (кажется, перешел на Toshiba).


Прошивка

Итак, в чем суть метода изменения версии модема - в установке на iPhone прошивки от iPad'a. Да-да Вы все правильно прочли - вы устанавливаете на телефон прошивку модема от планшета; и как он вообще после этого должен работать? Ну не работает там кое-что (типа GPS, iBook и еще Бог знает что, зато у Вас будет iPhone :). Причем, что самое страшное в этом решении - до недавнего времени понизить прошивку с iPad baseband 06.15.00 (как официально она называется) до любой другой не было возможности. Не очень давно появилась возможность понизить прошивку до версии iPhone baseband 05.13.04.

Для этого нам потребуется программа redsn0w - которая все и будет делать.

Я предполагаю, что у Вас ситуация точно такая же как и у меня: iPhone 3GS, на аппарате iOS 5.0.1 и телефон с новым загрузчиком (boot loader), который не должен "брикаться". Если это не так, подумайте несколько раз перед тем как следовать данной инструкции.
Итак, поехали:
  1. Сохраняем цифровые подписи телефона (т.н. SHSH blobs). О том что это такое подробно описано здесь. Я делаю это с помощью TinyUmbrella. Если этот шаг пропустить, Вы не сможете "откатиться" на текущую версию iOS с более новых версий ОС.
  2. Повышаем модем до 06.15.00. Подробно как это делается описано здесь. Ключевые моменты: режим DFU, Jailbreak, Install Cydia, Install IPad baseband.
  3. Понижаем модем до  05.13.04.  Подробно как это делается описано здесь.  Ключевые моменты: режим DFU, Jailbreak, Downgrade from IPad baseband (Cydia не ставим!).
После этих манипуляций у вас должен быть активированный iPhone, который по прежнему залочен под оператора. Осталось собственно то, ради чего все и затевалось - отвязать телефон от оператора. Подробно как это делается описано здесь. Ключевые моменты: Cydia, установить Ultrasn0w, перезапустить телефон.

Вуаля - iPhone 3GS на iOS 5.0.1. Если Вам этого достаточно - замечательно, мне же захотелось большего - обновиться до 5.1.1


Обновление

Ключевой момент обновления iOS, как мы уже знаем, заключается в том, что оно не должно приводить к обновлению версии модема. Для этих целей служит т.н. кастомная прошивка. По сути Вы собираете "свою" версию iOS с текущей версией модема.
  1. Я шел строго по данной инструкции.  Ключевые моменты: iTunes версии соответствующий версии iOS, при заливке прошивки выбираем файл, начинающийся с  NO_BB_.
  2. После шага 1 мы получаем ... правильно залоченный телефон на новой iOS со старой версией модема. Ставим на него Cydia (нужно для unlock'a) через redsn0w - режим DFU, Jailbreak, Install Cydia.
  3. Ну и собственно отвязывает от оператора -  Cydia, установить Ultrasn0w, перезапустить телефон.
Между шагами 1. и 2. у меня возникла проблема: redsn0w не видел телефона и писал "activate your device first". Перевел телефон в DFU как было сказано здесь и все стало ОК.


Привязанный или непривязанный Jailbreak

Apple запрещает устанавливать на свои аппараты стороннее ПО (т.е. не через Apple store). И по сути redsn0w "хакает" iPhone (при этом Вы теряете на него гарантию) - этот процесс называется Jailbreak. После Jailbreak'a вы через ту же Cydia сможете устанавливать стороннее ПО. При этом среди фанатов Apple бытует мнение, что Jailbreak бывает двух видов - привязанный (tethered) и непривязанный (untethered).  По сути "привязанный" Jailbreak это такое промежуточное состояние дел, когда iOS еще не взломана, но какие-то лазейки уже найдены. На телефон ставится полуфабрикатное ПО, которое не позволяет его (телефон) самостоятельно включать. Для включения телефона потребуется компьютер (к нему он собственно и "привязан"), на котором через тот же redsn0w производится процесс включения телефона. Зачем я об этом напоминаю - на днях выходит iOS 6 и я хочу предостеречь Вас от опрометчивого обновления, коварно предлагаемого iTunes (останетесь на какое-то время без телефона, а потом будете его через компьютер еще долго включать). На своем примере скажу, что у меня на то, чтобы оживить телефон так как я хочу ушло 10 месяцев (точнее 5 часов непосредственной работы и 10 месяцев собирания крупиц информации как этот дурацкий телефон оживить :). Для меня это стало в каком-то смысле делом принципа и ... ну не хотел я его нести незнакомым людям, которые непонятно как бы его "хакали" :)


Вместо заключения

Данная статья не направлена на причинение прямого или косвенного ущерба компании Apple, а носит чисто академический характер. Повторюсь, процесс "оживления" телефона стал для меня делом принципа, а то перед дарившей стороной было очень не удобно.

1 комментарий:

  1. какая древняя статья))) Но актуальность свою не потеряла. спасибо:)

    ОтветитьУдалить