Глобальный FAQ, Входной билет в мир анлока. Обязательно к прочтению.

Недавно обнаружил очень интересный F.A.Q , автора y13!
Всем советую ознакомиться )
 
Сообщество iPhone-маньяков растёт, вопросов становится всё больше, а сами впросы становятся всё хуже. Цель этого фака сделать так, чтобы вопросов связанных с анлоком стало как можно меньше. 

Хочу сразу предупредить, если модератор дал вам ссылку на этот фак, значит после этого вам придётся ещё минимум неделю поиграть в молчанку. Я буду беспощадно банить за вопросы из этого фака. Навсегда и во веки веков, без жалости и сомнений. Аминь.

И так, приступим.

Что нужно, чтобы мой iPhone работал с любым оператором?

Как вы наверное знаете, все продаваемые компанией Apple телефоны привязана к конкретному оператору. В США это AT&T, во Франции Orange, в Германии T-Mobile и наконец O2 в Великобритании. 

Это связанно с бизнес-моделью компании Apple. По контракту, оператор обязан отчислять определенный процент от дохода с абонента Apple. Доподлинно не известно сколько именно, но ходят слухи что до 20%. 

Всвязи с этим, вы можете использовать телефон только с сим-картой вышеперечисленных операторов. И никак иначе. Схема для "легального" пользователя iPhone выглядит следующим образом:
  В фирменном магазине оператора или в Apple Store покупается телефон
  Абонент приходит домой и через интернет заключает контракт с оператором
  После заключения контракта, через некоторое время телефон активируется и им можно пользоваться
Следовательно, для того чтобы аппарат заработал в сети любого другого оператора нужно выполнить следующие действия:
1. Активировать телефон
2. Обойти проверку сим-карты
Первый шаг, как и следовало ожидать, называется активацией. Его суть заключается в том, чтобы получить доступ к основным функциям аппарата.

Второй шаг, называют разблокировкой, в миру -- анлок. 

Что такое анлок?

Анлок - это модификация программного обеспечения GSM-модуля, которая разрешает пользоваться айфоном, как телефоном, с сим-картой любого оператора.

Существует несколько методов:
1. Программный (soft unock) -- когда без вмешательства в аппаратную часть телефона происходит модификация радио-модема, убирающая проверку на принадлежность сим-карты к оператору. Обычно для этого используются программы AnySim (iUnlock) или iPhoneSimFree. Как происходит этот процесс, в деталях, можно прочитать в параграфе: "Bootloader, secpack, OTB и все-все-все".
2. Аппаратный (hard unlock) -- когда вскрывается телефон и с помощью замыкания Test Point получается доступ к модификации программной части радио-модема.
3. Sim Clone (MultiSIM) -- по сути, не является "анлоком". Этот метод использует некоторые особенности проверки принадлежности сим-карты к оператору, с помощью которого происходит "обман" телефона -- iPhone считает что сим-карта принадлежит оператору AT&T. 

При использовании этого метода с сим-карты абонента сканируется информация необходимая для авторизации в сети GSM оператора (IMSI, ICCID и секретный ключ Ki) и записывается на специальную смарт-карту, которая будет эмулировать работу SIM. 

Основная проблема этого метода в том, что секретный ключ Ki можно считать только с первого поколения сим-карт (SIMv1). Требует специальное оборудование, занимает много времени.
4. Sim Proxy (TurboSIM, StealthSIM, NextSIM, X-SIM и другие) -- логическое продолжение SimClone метода. Только с использованием аппаратной "прокладки" (proxy) между телефоном и сим-картой. Когда телефон запрашивает информацию с целью проверить её принадлежность к оператру, Sim Proxy отдаёт метрику карты AT&T, в остальных случая перенаправляет запросы к сим-карте абонента. 

Очень прост в применении -- вы просто обрезаете свою сим-карту и накладываете на неё адаптер, после чего вставляете эту конструкцию в телефон. Не требудет специального оборудования.
Для того, чтобы понимать суть процесса, давайте рассмотрим как устроен телефон.

Как устроен iPhone

Телефон который вы держите (или будете держать) в своих руках, ничего эксклюзивного в плане своего устройства в целом не представляет. Единственное его отличие от собратьев по классу -- отстуствие клавиатуры и дисплей распознающий две точки прикосновения одновременно. 

Я не буду приводить конкретный список "железа", которое расположено в телефоне, а в упрощёном виде расскажу как всё это работает, чтобы на форуме не возникало смешения понятий и всяких бредовых рассказов. 

Hardware

На уровне железа важно знать то, что реально телефон имеет два процессора: 
  ARM-процессор который управляет операционной системой
  Infenion SGOLD2 который отвечает за работу с GSM сетью (его-то и называют радио-модемом, baseband, gsm-модемом, bb).
Первый процессор (будем называть его CPU) собственно и является сердцем телефона: он отвечает за работу операционной системы (к слову, на вашем телефоне и в сам деле работает почти настоящая MacOS X), он отвечает за работу абсолютно всех ваших приложений. 

Второй процессор (будем называеть его baseband, сокращенно BB), отвечает за коммуникационные возможности телефона: GSM, EDGE/GPRS, WiFi и Bluetooth. Как и CPU он тоже имеет некое подобие операционной системы, которая состоит из нескольких компонентов: boot loader (загрузчик), flash (прошивки) и eeprom (данных). Хранится всё это добро на специальном модуле памяти (Intel Wireless Flash Memory, отдельный чип на плате), его ещё называют NOR flash. 

Software

А вот теперь поговорим о более близких к нам вещах -- программном обеспечении. Если посмотреть на предыдущий раздел, то становится понятно что у телефона существует два типа программ: для CPU и для BB. 

В телефон, всё это попадает с помощью пакета ПО, обычно называемого прошивкой. Тут обычно и возникает первая путаница, так что этот момент рассмотрим более подробно. 

Когда собирается достаточное количество исправлений, Apple выпускает обновление -- IPSW файл размером около 150 мегабайт, содержащий в себе образ операционной системы телефона и иногда обновление для GSM-части. Следовательно в одном обновлении может быть две "прошивки": для программной части телефона (обновление приложений) и для GSM-части.

У этого пакета есть своя версия (1.0.0, 1.1.1, 1.1.2 и т.д.), но при этом у GSM-части есть своя нумерация (03.01_13G, 04.02_13G и т.д.). Получилось, что программы установленные в сам телефон характеризуются версией пакета обновлений, например последний имеет версию 1.1.3. Это и принято называть "версией прошивки телефона". 

Так уж вышло, что на телефон можно установить любое из ныне существующих обновлений, при этом версия прошивки GSM-части не изменится. Вы можете иметь прошивку GSM-части за версией 04.03_13G и прошивку телефона 1.0.2. 

Теперь ещё несколько раз перечитайте предыдущие 2 абзаца. Из них мы вынесли два основных термина: прошивка телефон и прошивка GSM-части. От их версий зависит очень много.

Но в свете последних событий, на сцене появляется ещё один термин: версия bootloader'a. Этот вопрос заслуживает отдельного обсуждения.

Bootloader, secpack, OTB, анлок и все-все-все

C выходом в свет обновления за номером 1.1.2, вскрылся один очень неприятный факт. Все телефоны, поступившие в продажу с этой прошивкой (как говорят 1.1.2 из коробки -- 1.1.2 out the box, OTB) имеют отличный от предыдущего bootloader. Версия нового загрузчика 4.6, тогда как предыдущий имел версию 3.9.

В этой версии Apple исправила множество уязвимостей и изменила алгоритм проверки secpack. 

Secpack -- содержащаяся в пакете обновления область, в которой расположены цифровые подписи к конкретной версии прошивки GSM-части телефона. Необходим для модификации программного обеспечения GSM-модема. 

Если в бутлоадере версии 3.9 возможно было совершать операции с GSM-частью имея secpack от текущей или следующей версии прошивки (>=), то в бутлоадере 4.6 такие операции возможны только с secpack от следующей версии прошивки (>). Плюс ко всему прочему, запись в область в которой находится bootloader, после его инициализации стал невозможен, что делает его "откат" невозможным.

Этот небольшой ньюанс испортил жизнь всем. Почему? Давайте теперь посмотрим что же такое программный анлок.

Как работает анлок?



В прошивке GSM части, есть проверка на принадлежность сим-карты к определенному оператору. Если быть точным, проверяется уникальный IMSI код карты. Этот код состоит из MCC (Mobile Country Code, кода страны), MNC (Mobile Network Code, кода оператора) и идентификатора абонент MSIN. В GSM-модеме происходит проверка MCCMNC номера, если он есть в таблице разрешенных (этот список называется lockstate table), то телефон регистрируется в сети оператора, если нет, то работа GSM части блокируется.

Соответственно чтобы использовать телефон с любым оператором эту проверку надо обойти. Единственный метод, найти место в прошивке GSM части и модифицировать её таким образом, чтобы вне зависимости от того какой MCCMNC код содержится в ICCID, проверка всегда проходила успешно.

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

Вуаля, и телефон разлочен.

Казалось бы, причём тут bootloader?

Ключевые моменты в процессе анлока -- это стирание старой версии и запись новой. Если раньше, сделать это можно было используя secpack от имеющейся в наличии, то теперь необходимо иметь secpack от следующей версии. Т.е. анлок будет всегда на шаг позже.

Кстати, ещё один очевидный удар: обновление прошивки модема делает невозможным его анлок. Т.е. если вы имели работающий 1.1.2, и вдруг обновились до 1.1.3, чтобы звонить вам придётся ждать пока не выйдет следующее обновление, содержащие обновление GSM-модема. 

Да, кстати, "хорошая" новость: Пионер анлок движения Георг Хотц выпустил подробную инструкцию как аппаратно понизить версию bootloader'a. Очень рисковая операция, скажу я вам. На небезызвестном форуме hackint0sh.org, огромное количество рассказов о неудачной попытке. По результатам последнего голосования каждая третья не увенчалась успехом.

Ну чтож, ликбез по основным понятиям можно считать завершенным Осталось осветить ещё несколько моментов.

Побег из Шушенка

Приложения. Наверное вы заметили что в предыдущих параграфах мы говорили только о "родных" телефону приложениях. Как вы скорее всего знаете, на родных приложениях дело не ограничилось. 
Конечно, Стив Джобс дал возможность писать приложения для телефона, но только в рамках браузера Safari. Но этого было мало.

Достаточно быстро сообщество iPhone хакеров нашло возможность писать собственные приложения для телефона. Прошло всего несколько месяцев и количество приложений начало измеряться сотнями, увеличиваясь с каждым днём. Сегодня, вы наверное не представляете свою жизнь как минимум без русской клавиатуры (Привет, Славик!). А ведь это стороннее приложение. 

А жизнь сторонних приложений невозможна без jailbreak'а. 

Jailbreak (дословно "побег из тюрьмы") -- процес получения полного доступа к файловой системе телефона. Понятие jail пришло к нам из недр *nix сообщества и обозначает "запирание" пользователя в определенной директории, когда он не может получить доступ ко всему что расположено "выше" в дереве файловой системы.

Изначально, у пользователя есть доступ на запись только в директорию /var/root/ (где хранятся все настройки и медиа-контент пользователя) на телефоне. Всё бы ничего, да только по мимо всего прочего, в этой директории запрещено запускать приложения. 

Jailbreak позволяет получить полный доступ ко всем папкам и файлам на телефоне (чтение, запись и исполнение).
Теперь, с выходом каждого обновления все пользователи (включая "легальных") следят за новостями и ждут, когда-же jailbreak станет возможным.

К слову, стандартом де-факто стало приложение Installer, название которого говорит само за себя -- это установщик сторонних приложений. Несомнено самое популярное и востребованное приложение для iPhone, когда либо созданное за пределами Apple. 

О тёмном прошлом, девственницах и кирпичах

Многие помнят времена первых телефонов, когда анлок занимал 40 минут, в течении которых мы наблюдали за тем как бегут строчки в терминале. Тогда и воздул был чище и трава зеленее. 

В подарок от этих времён нам достался термин виргининзация. Возникло всё это вот от куда: старые версии AnySim (iUnlock), по ошибке удаляли из прошивки GSM-части небольшую область -- seczone. В этой области хранилась таблица со списком "разрешенных" MCCMNC кодов и некий уникальный для каждого ключ. 

Как оказалось, при обновлении с 1.0.2 до 1.1.1, телефон пререставал принимать даже родную AT&T сим-карту, превращаясь в красивый кирпич. Объяснение этому простое: при обновлении прошивки, область в которой хранится seczone не обновляется. Следовательно прошивка пытается проверить наличие MCCMNC в таблице, которой нет. 

Тогда и появилось понятие виргинизации. Говоря по-русски: приведения телефона в девственное состояние, когда возвращается оригинальная версия прошивки (без анлока) и восстанавливается lockstate в секзоне. 

Следовательно, виргинизация нужна тогда и только тогда, когда телефон анлочился страыми версиями AnySim (до 1.1) и iUlock.

Про оффициально разлоченные телефоны

Как известно, европейское законодательство не очень хорошо смотрит на идею привязки телефона к конкретному оператору. Как следствие, аж в целой Франции есть такой зверь как оффициально отвезяанный от оператора телефон (в Германии T-Mobile выйграл суд и прекратил продажу таких телефонов)

Но тут есть небольшой подвох -- такие телефоны можно использовать только в стране, в которой находится оператор. Т.е. если вы купили оффициально разблокированный телефон во Франции, вы можете выбрать себе любого французкого оператора, не более. С сим картами операторов из другой страны, такие телефоны работать не будут!


На этом, курс молодого бойца можно считать завершенным. Основные теоритические вопросы освещены, теперь осталось осветить практические. Что и будет сделанно в следующем FAQ.

  • raven
  • 26 октября 2008 19:39
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
Очень познавательно.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.