“Привет” джейлбрейку iPhone!

15 октябрь, 2009 - 11:47Александр Пацай

Когда я начал писать эту заметку, то у меня был огромный соблазн назвать статью “Империя наносит ответный удар”, но, понимая насколько это банально и заезжено (кажется, у меня в блоге уже какая-то статья так называлась), я все-таки удержался и не сделал этого. Тем не менее, рассказать про новую серию игры Apple в “кошки-мышки” все равно надо.

iphone-jailbreak

Apple вообще любит играть в эту игру, достаточно хотя бы вспомнить совсем недавний пример борьбы с Palm. Напомню, там суть заключается в том, что Palm сделала свой телефон Pre “прикидывающимся” iPod-ом, подменив USB ID у телефона, который должен быть уникальным. В результате этого Palm Pre синхронизируется с iTunes как будто iPod. В каждом обновлении Apple блокирует эту возможность, в каждом обновлении Palm снова обходит эту блокировку. А вот вчера появилась новость о том что Apple нанесла неожиданный, хотя и давно ожидаемый, удар по джейлбрейку, и не факт, что от этого удара он “оправится”.

Вообще нужно четко усвоить разницу между unlock и jailbreak, и понимать последствия и того, и другого.

Unlock — это процедура “отвязки” iPhone от особой “привязанности” к определенному оператору. В частности, в Штатах iPhone продается только у оператора AT&T, и поэтому он “залочен на AT&T” — таким образом оператор привлекает к себе новых подписчиков. Есть официально “разлоченные” телефоны, не привязанные ни к каким операторам — в частности, именно такие продаются в России, а также в некоторых странах Европы — например, Франции, Бельгии, Италии. По IMEI телефона Apple следит, какой телефон в каком состоянии продавался, и когда вы устанавливаете очередное обновление прошивки на телефон, iTunes через Интернет проверяет “разлоченность” вашего телефона. Если он был официально разлочен — то таким и останется, а вот если он был разлочен хакерскими инструментами (программными или аппаратными), то высока вероятность того, что телефон снова “залочится” и перестанет работать.

Джейлбрейк (jailbreak) — это другая штука, хотя с анлоком может быть и связанная. Когда у вас телефон без “джейлбрейка”, то вы можете устанавливать на него приложения только из App Store, то есть только те, которые утвердила Apple. А если сделать с телефоном процедуру jailbreak (побег из тюрьмы), то на телефон можно установить Cydia/Icy и получить возможность установки различных приложений, которые в App Store по какой-то причине не попали. Например, это могут быть приложения для Google Voice, которые Apple “зареджектила” из магазина, или же приложения, которые используют какие-то технические ухищрения, запрещенные официальным SDK. Например, читалка i2Reader для листания книг использует кнопки громкости, что по правилам SDK делать, конечно же, нельзя. Но ведь удобно?

Кроме этого, проведя процедуру jailbreak, можно установить приложения, которые проводят unlock телефона, то есть отвязывают его от определенного оператора. А еще одно, крайне важное последствие джейлбрейка — это возможность установки взломанных приложений из App Store. Про пиратство на iPhone я писал неоднократно, и показатели соотношения купленных/украденных приложений у многих разработчиков зашкаливают, достигая 80-90% процентов пользующихся взломанной версией приложения, на что разработчики неоднократно жаловались в Apple. Кто-то не жалуется и пользуется KaliAP, системой защиты приложений для iPhone от взлома, кто-то не пользуется — дело каждого. Но у многих джейлбрейк ассоциируется с пиратством (хотя у него есть и “мирные” применения), и, возможно, именно поэтому Apple решила эту лавочку прикрыть.

Что же произошло? Apple прикрыла дыру, которой пользовались хакеры для взлома телефона, чтобы сделать ему jailbreak. Внутри телефона, насколько я понимаю, есть ROM-чип с определенным программным обеспечением, в котором есть была уязвимость под кодовым названием 24kpwn — используя ее, инструменты для джейлбрейка получали доступ к файловой системе телефона и делали свое “черное дело”. (Здесь используется ирония, так как в самом факте джейлбрейка, по моему мнению, плохого ничего нет, кроме самого факта взлома ПО телефона (а это — нарушение EULA). Но, с другой стороны, не будь Apple такой “замкнутой” в вопросах App Store, возможно, что джейлбрейк бы и не появился). Так вот, в новых партиях телефона iPhone 3GS, которые только начали поступать в магазины, в ROM-чипе записана новая версия bootrom, iBoot-359.3.2, где ошибка 24kpwn исправлена. Соответственно, все выпущенные на данный момент инструменты для осуществления джейлбрейка становятся неактуальными, так как взломать эти новые телефоны они уже не смогут.

Означает ли это конец джейлбрейка и анлока? Вряд ли. Что написано одним человеком, всегда может быть взломано другим. Просто теперь какое-то время Dev Team придется попотеть в поисках новой уязвимости, чтобы вернуть джейлбрейк в массы, и сколько у них это займет времени — неизвестно. Важный момент — затрагивает ли это старые телефоны, 2g/3G/3GS, выпущенные до этого момента. Насколько я понимаю — нет, так как перепрошить Bootrom с помощью обновления в iTunes, видимо, не так просто, и происходит это на заводе, где iPhone собирают. Хотя от Apple можно ожидать всего, компания неоднократно преподносила своим пользователям сюрпризы. Другое дело, что, может, он и не нужен, этот джейлбрейк? С выходом iPhone OS 3.0 лично я от него отказался, так как мне достаточно приложений и в App Store, а там, глядишь, может и Apple станет спокойней в плане разрешения разных приложений в магазине?