«Если когда-нибудь компания Apple выпустит автомобиль, он будет
алюминиевый, шикарный и... без руля. Потому что будет ездить только по
маршрутам, загруженным из App Store». Такая вот шутка гуляет по
просторам интернета. И если в ней слово «автомобиль» заменить на iPhone,
то она отлично отразит основную претензию некоторых потребителей к
Apple: не думайте, что вы знаете, что именно нам нужно! Но такая
ситуация устраивает далеко не всех. Энтузиастов, для которых имеющихся
функций iPhone было недостаточно, а обида на цензоров App Store, не
пустивших приложения в магазин, заставила противостоять системе. Именно
благодаря им, начиная с первой модели iPhone, ведутся активные поиски
уязвимостей его операционной системы, обеспечивающие полный контроль над
ней. В общем случае процесс этот именуется бандитско-романтическим
словом jailbreak, то бишь «побег из тюрьмы». Что же кроется за
романтикой jailbreak и какие он дает преимущества пользователю,
решившему «бежать»? Jalbreak в разрезе Чтобы понять, что же делает jailbreak с iPhone, нужно взглянуть на его операционную систему iPhone OS (с недавнего времени iOS). Она, как и MacOS X, относится к семейству ОС Unix, а именно к ветке Unix BSD. Одной
из основных особенностей всех Unix-систем является весьма простой, но
эффективный механизм разграничения прав доступа к функциям ядра
операционной системы и множеству файлов. Механизм этот вкратце можно
описать так: «Администратор системы (пользователь с именем root) имеет
право управлять любыми, работающими в системе процессами (даже если они
запущены другими пользователями) и делать что угодно с любыми файлами.
Любой другой пользователь системы имеет власть только над запущенными им
процессами и файлами может манипулировать лишь в пределах своей папки
(домашнего каталога)». Размещение информации пользователей в отдельные
«песочницы» дает определенную гарантию того, что никто из них не
вмешается в работу системы и не повредит программы и данные соседей. Естественно, находится масса желающих заполучить права пользователя root. В операционной системе свежекупленного iPhone также работает этот механизм. Пользователь
root в данном случае – компания Apple, которая удаленно работает с
процессами и файлами iPhone при его подключении к iTunes. Для каждой из
загруженных из магазина App Store программ выделяется отдельная папка, в
которой она может помещать файлы. Другие программы получить доступ к
этой папке не могут. Ядро iOS строго следит за использованием
программами оперативной памяти, отдавая приоритет встроенным программам
Apple: телефонному модулю, браузеру Safari, почтовому клиенту Mail и
медиаплееру iPod. Кроме того, оно тщательно следит за соблюдением
программами правил доступа к файлам. Пользователь iPhone при этом
получает гарантию стабильной работы смартфона, основанную на системе
iOS и тщательном тестировании цензорами Apple каждой программы, которая
попадает в магазин приложений. Процесс jailbreak представляет собой как раз нахождение способа получить права пользователя root рядовому пользователю iPhone. При
этом для рядового пользователя появляется ряд заманчивых возможностей.
Например: менять внешний вид iOS, получать к ней удаленный доступ по
протоколам SSH, SCP и SFTP, управлять коммуникационными интерфейсами
iPhone, производить любые действия с любыми запущенными процессами и
хранящимися в системе файлами. Заманчиво, поскольку разрешает
iPhone работать не только по «схемам, загруженным из App Store». Но и
опасно: в тщательно оттестированную систему и программы вносятся
несанкционированные изменения, потенциально способные нарушить ее
работу. Хорошо, если jailbreak делает пользователь, который хоть немного
понимает то, как все в iOS работает. Но проблема в том, что шаловливые
ручки в систему может запустить любой пользователь, даже не имеющий
представления об ее устройстве. Jailbreak? Вам какой? Приняв
решение сделать jailbreak, владелец iPhone должен помнить о том, что
лицензионное соглашение между ним и компанией Apple (те «много букаф»,
которые никто никогда не читает) в явном виде запрещает ему делать это:
«Запрещается копировать (кроме случаев, установленных настоящей
Лицензией), декомпилировать, дезассемблировать, пытаться осуществить
расшифровку структуры ПО, вносить изменения или создавать производные
произведения на основе ПО iPhone или служб, предоставляемых ПО iPhone,
или любой их части (кроме случаев, когда упомянутые выше ограничения
запрещены действующим законодательством, исключительно в пределах такого
запрещения, а также кроме случаев, когда такие действия разрешены
положениями лицензии, регулирующей использование компонентов с открытым
кодом, которые включены в ПО iPhone). Вы соглашаетесь с данными
условиями и обязуетесь не выполнять этих действий сами и не давать такой
возможности другим. Любая попытка совершения вышеперечисленных действий
является нарушением прав Apple и лицензиаров компании в отношении ПО
iPhone». Вот так. Текст по-юридически витиеват, но смысл его
очевиден: вносить какие-либо изменения в программное обеспечение iPhone
запрещено. Но, ясное дело, это мало кого останавливает. Одиночки типа талантливого сотрудника Google Джорджа Хотца (George Hotz) с ником GeoHot и целые команды умельцев наподобие Dev Team разрабатывают свои варианты методик jailbreak. Для этого они выполняют исследование прошивок iPhone, так называемый реверс-инжиниринг (reverse engeneering).
При таком подходе исследователи пытаются воссоздать алгоритм
функционирования программного обеспечения и понять, в каком его месте
имеется потенциальная уязвимость для приобретения вожделенных прав
пользователя root. Результатом их усилий является создание
программ-эксплоитов, применение которых дает доступ локальному
пользователю (а не только специалистам компании Apple) ко всей файловой
системе iOS на чтение файлов, запись и их исполнение (если они
программы). Но это лишь первая часть jailbreak. Ведь привилегии
пользователя root совершенно ничего не дают владельцам iPhone, не
знакомым с премудростями Unix-систем. Чтобы воспользоваться
открывшимся всевластием, во второй части jailbreak в iOS внедряют
модифицированную систему управления пакетами apt (Advansed Package
Tool), позаимствованную у операционной системы Linux Debian. Благодаря системе apt пользователь джейлбрейкнутого iPhone может обратиться к десяткам репозиториев, например Big Boss или modmui,
в которых разработчики программного обеспечения размещают как
программы, не попавшие или не предназначенные для магазина App Store,
так и различную мишуру: обои, системные звуки и комплексные темы,
меняющие облик интерфейса смартфона. Чаще всего доступ к этим
репозиториям пользователь получает с помощью специальной
программы-менеджера. На веку iPhone таких программ было несколько:
Installer.app, Icy, Rock и самая распространенная – Cidya. | Менеджеров для доступа к репозиториям iPhone-программ несколько. Слева направо: Installer.app, Icy, Rock и Cydia | В зависимости от реализации этих этапов jailbreak можно разделить на виды. Жесткий
jailbreak вмешивается в работу уже установленной официальной прошивки,
безжалостно взламывая ее и, при необходимости, устанавливая систему apt и
менеджер репозиториев (например, Cidya). К программам, выполняющим
хардкорный jailbreak, можно отнести blakra1n от GeoHot и redsn0w от Dev Team. | Программа blackra1n взламывает штатную прошивку iPhone и устанавливает в нее менеджер репозиториев | Мягкий
jailbreak позволяет предварительно создать вариант прошивки (сделать
так называемую кастомную прошивку), которую потом сколько угодно раз
можно устанавливать официальным способом для восстановления iPhone. В
отличие от жесткого jailbreak программы «мягкотелого» взлома позволяют
не только получить права root и установить Cidya. В их арсенале есть
возможность увеличить размер системного раздела (именно в него
устанавливаются неофициальные программы) и даже сменить логотип яблока
при загрузке iPhone. Примером таких программ являются Pwnage Tool от Dev Team и Sn0wbreeze
от команды iH8sn0w. Вариантом мягкого jailbreak является создание
«тяжелых» (то есть с кучей уже установленных программ и сервисов) или,
наоборот, «легких» (с основательно подчищенной iOS) прошивок,
распространяемых как готовое решение. Скачивай и устанавливай. | jailbreak
«на лету». Этот вид jailbreak эксплуатирует уязвимость iPhone при его
работе с файлами формата PDF. Благодаря этому пользователь iPhone
получает возможность взломать свой аппарат, просто посетив с него сайт JailbreakMe. | Метод jailbreak.me настолько прост, что в интернете появилась масса его клонов. Даже на русском языке | Почему же Apple не засудит всех «исследователей»? Дело в том, что благодаря усилиям фонда Electronic Frontier Foundation 26 июля сего года были внесены исключения в закон об авторском праве DMCA (Digital Millenium Copyright Act), узаканивающие процедуры jailbreak и unlock (отвязку от сотового оператора). Итак,
jailbreak законодательно легален, хотя и не приветствуется Apple. Что
же может убедить владельца iPhone сделать его? Какие «бочки варенья и
корзины печенья» сулит переход на сторону зла? 1. Интерфейс пользователя: быть другим Признаем,
пользовательский интерфейс iOS удобен, функционален и вылизан до
состояния «ничего лишнего». Для эстетов это рай, но для рядового
пользователя – скука смертная. Вплоть до четвертой версии iOS
пользователь iPhone лицезрел иконки программ на бархатно-черном фоне.
Группировать иконки можно было только на восьми экранах и только по
шестнадцать штук. До появления Winterboard. Эта утилита, которую можно
установить после jailbreak, является альтернативой штатного
iPhone-лаунчера Springboard. В отличие от него Winterboard позволяет
устанавливать фоновый рисунок рабочего стола, менять иконки программ, а
также поддерживает массу плагинов, до неузнаваемости изменяющих штатный
интерфейс iPhone. | | Программа Winterboard заменяет стандартный iPhone-лаунчер и позволит до неузнаваемости изменить интерфейс iPhone | Не
нравится искать нужную программу среди бесчисленных экранов? Достаточно
установить утилиту Categories, которая позволяет создать на рабочем
столе папки, в которые можно рассортировать программы по категориям. | | C помощью программ наподобие Categories задолго до iOS 4 можно было рассортировать иконки программ по папкам | А
может, хочется, чтобы иконки программ, да и сам рабочий стол вращались в
зависимости от положения iPhone, как это сделано в iPad? Выберем одну
из утилит наподобии SpinBoard, и желаемое исполнится. Утилиты
SpinBoard и SB Rotator позволяют реализовать горизонтальное отображение
интерфейса, который будет работать благодаря датчику положения. Благодаря
jailbreak можно изменить не только внутреннее убранство iPhone, но и
функциональность интерфейса. Например, добавить виброотдачу (haptic) при
работе с клавиатурой. Конечно, Apple прислушивается к пожеланиям
пользователей, и в iOS 4, наконец, без танцев с бубном можно менять обои
рабочего стола и даже групировать иконки программ в папки. Но даже
здесь jailbreak позволяет обойти ограничения. Ведь в стандартном режиме в
одну папку можно сложить не более двенадцати программ, а вот в
jailbreak-режиме с помощью программы Infinifolders в одну бездонную
папку можно поместить хоть все программы из App Store. А с помощью
программы Locktopus поставить на эту папку пароль. | | Программы Infinifolders и Locktopus улучшают работу с папками программ в iOS 4 | Фантазия
jailbreak-умельцев безгранична. И как бы Apple ни улучшала интерфейс
iOS, сторонние разработчики придумают, как сделать его еще лучше. 2. Многозадачность Со
времен появления первой модели iСмартфона многозадачность в нем ищет и
сама Apple, и сторонние разработчики. Но iOS многозадачна по своей
природе (ведь ее мама – Unix BSD), только вот не для всех программ
системный диспетчер задач (scheduler) планирует время процессора, пока
они находятся в фоновом режиме. На это сознательное ограничение
Apple пошла по одной простой причине. Имя ей – оперативная память. Ее в
iPhone немного, а это значит, что одновременно в ней много программ не
разместить. Кроме того, нужно оставить место и для самой системы. Вот
поэтому стандартно в iPhone в памяти «сидит» iOS и только одна (текущая)
программа. Для неактивных программ, ожидающих каких-либо событий из
Сети, Apple разработала технологию push, оповещающую программу о
наступлении события. Кроме экономии самой памяти, такая однозадачность
позволяет грамотно использовать ресурсы батареи телефона. Но разве
объяснишь это пользователям? Им вынь да положь работу в стиле настольной
Windows или хотя бы мобильной Symbian. jailbreak и тут приходит
на помощь. Утилита ProSwitcher отлично справляется с организацией
многозадачности, позволяя пользователю переключать программы в стиле
webOS. А чтобы системные процессы, управляющие Wi-Fi, не выключались,
когда iPhone уходит в спячку, можно использовать утилиту Insomnia. | | С помощью программ ProSwitcher и Insomnia можно реализовать полноценную вытесняющую многозадачность в iOS | В
iOS 4 проблема многозадачности решена штатно. Но, во-первых, эта версия
iOS просто недоступна владельцам iPhone 2G и весьма туго работает на
ветеране iPhone 3G. Кроме того, многозадачность от Apple – тоже весьма
специфичная. Этот вид многозадачности называется кооперативным (cooperate multitasking)
и, по сути, является расширенной версией однозадачного режима работы. В
то время как jailbreak предоставляет самую что ни на есть вытесняющую
многозадачность. 3. Расширенные коммуникации В
iPhone есть поддержка всех необходимых стандартов сотой связи и полный
набор коммуникационных модулей: Wi-Fi, Bluetooth и USB. Только с легкой
руки Apple работа с этими интерфейсами утратила привычную простоту. Например,
USB-интерфейс в iPhone используется только для синхронизации данных и
только с программой iTunes. При этом потенциал, который составляет
внушительный объем флэш-памяти, так и остается нераскрытым – в качестве
USB-накопителя смартфон не определяется. Музыка, фотографии и
видео синхронизируются через iTunes, а вот для данных, с которыми
работают программы, зачастую можно использовать только Wi-Fi. Сделав
jailbreak и установив программу USB Drive, пользователь наконец-то
получит простой доступ к памяти устройства. Использовать дисковое
пространство телефона можно по своему усмотрению, создав один или
несколько дисковых разделов, и размещать в них произвольное число папок с
данными. | | Нужно превратить iPhone в большую флэшку? Используйте программу USB Drive | Но
больше всего нареканий вызывает интерфейс Bluetooth. Apple сознательно
ограничила число поддерживаемых профилей, оставив работу только с
беспроводными гарнитурами. Протокол OBEX для обмена файлами между
синезубыми устройствами, а также работа с Bluetooth-периферией долгое
время были недоступны пользователям. С помощью jailbreak эти проблемы
были решены. Так, утилита iBluetooth обеспечивает стандартную
функциональность обмена файлами с любыми телефонами, а приложение
BTstack позволяет подключить к iPhone любую Bluetooth-совместимую
клавиатуру. | C программой BTstack к iPhone можно подключить любую Bluetooth-клавиатуру | Еще
одной важной коммуникационной особенностью, которую решает jailbreak,
является Wi-Fi-синхронизация iPhone и iTunes. Согласитесь, не очень
удобно подключать аппарат к компьютеру с помощью кабеля, если оба
устройства находятся в одной сети. Программа Wi-Fi Sync решает эту
проблему – естественно, после jailbreak. | Утилита Wi-Fi Sync синхронизирует iPhone и iTunes по воздуху | Кроме
этих явных коммуникационных преимуществ jailbreak стоит отметить
возможность установки в iOS сервисов удаленного доступа к аппарату по
протоколам SSH, SFTP и SCP. Установив сервис OpenSSH, являющийся
Linux-портом для iOS, пользователь получает возможность доступа,
управления и работы с файлами на удаленном iPhone из любой точки мира,
где есть доступ в Сеть. | Сервер OpenSSH позволяет получить доступ к iPhone из любой точки мира | Правда, работа с этими сервисами требует знаний основ Unix, но разве это остановит настоящего iМаньяка? 4. Улучшить лучшее Все
же, несмотря на определенные шероховатости, большинство функций в
iPhone сделаны настолько добротно, что не могут не радовать владельца.
Например, браузер Safari, который признан одним из самых удобных и
производительных для мобильных устройств. Казалось бы, что можно
улучшить у хорошей программы? Тем не менее, если задуматься, то поле для
деятельности есть, и обширное. Например, возможность отключать загрузку
изображений при загрузке web-страничек. С помощью Cydia в репозиториях
можно отыскать Safari-плагин ImaSafari, добавляющий в настройки браузера
именно эту функцию. А плагин Safari Download Manager позволяет
скачивать и сохранять в файловой системе аппарата любые файлы –
наподобие того, как это реализовано во взрослых браузерах. | | Плагин ImaSafari добавляет в браузер функцию отключения загрузки изображений | | Установив плагин Safari Download Manager, можно скачивать любые файлы | Если
владельца iPhone не устраивают поисковые системы, работающие в Safari
по умолчанию, достаточно установить утилиту Cicero, которая позволяет
отредактировать список поисковиков по своему вкусу. | Плагин Cicero существенно расширяет поисковые возможности браузера Safari | Ну
и, конечно же, Flash – главный камень в огород Apple. Safari просто
игнорирует flash-контент на web-страничках. Но с помощью jailbreak и
приложения Flash (портированного, кстати, из Android) можно не только
просматривать flash-анимацию, но и играть во flash-игры. | Благодаря jailbreak «яблочный» смартфон может получить полноценный flash-плееер | Плюсы без минусов? «О,
этот дивный новый мир!» – процедура jailbreak открывает перед
владельцем iPhone массу потрясающих возможностей. Но, как это бывает со
всеми чудесами, не просит ли она чего-либо взамен? Нет ли в
jailbreak-контракте абзаца, написанного мелким шрифтом, где
проскальзывают фразы, например, о Бессмертной Душе? На самом деле
меда без дегтя, к сожалению, не бывает. Разблокировка файловой системы и
получение прав доступа пользователя root серьезно влияют на
стабильность работы аппарата. Кроме того, репозитории jailbreak-программ
– это сообщество энтузиастов, желающих улучшить iPhone, и нельзя быть
полностью уверенным в том, что никто из разработчиков не установит в
своей программе недокументированные функции. В свободном мире jailbreak
строгих App Store-цензоров просто нет. Установка в iPhone
сервисов удаленного доступа к его файлам чревата возможностью хакерских
атак, которые сможет реализовать даже ребенок. Ведь пароль пользователя
root у всех джейлбрейкнутых телефонов одинаков – alpine. Сменить его
несложно, но для этого нужно владеть основами работы в Unix. Ну и
о Бессмертной Душе. Точнее, о совести. Одним из весьма сомнительных
преимуществ jailbreak является возможность очень простой установки
пиратских копий платных программ из App Store. Качественных программ,
над которыми люди трудились с энтузиазмом и самоотдачей. Поэтому, решив
делать jailbreak, стоит задуматься: перевешивают ли перечисленные выше
его преимущества возможность фаустовской сделки со своей совестью.
Источник: http://www.mobimag.ru |