Хакер - Не App Store единым. Устанавливаем сторонние приложения в iOS без джейла
t.me/anon_chan_by
- Почему нельзя просто установить приложение
- Официальный путь: аккаунт разработчика
- Полуофициальный путь: Cydia Impactor
- Идем в серую зону: подпись пакета обычным Apple ID
- Nullximpactor
- iOS App Signer
- AltDeploy и AltStore
- Подпись в режиме онлайн
- Альтернативные магазины приложений
- TestFlight
- Где взять пакеты приложений?
- Заключение
Экосистему Apple недаром называют «огороженным садом»: компания жестко контролирует, что пользователь может, а чего не может делать со своими устройствами. В случае с iOS и iPadOS этот контроль достигает абсурдных масштабов, когда законный владелец устройства теряет возможность устанавливать приложения в обход модерируемого и цензурируемого магазина приложений. В этой статье мы рассмотрим способы снятия этого ограничения, от самых простых, «в один клик», до сложных, но надежных.
ПОЧЕМУ НЕЛЬЗЯ ПРОСТО УСТАНОВИТЬ ПРИЛОЖЕНИЕ
На современных мобильных платформах можно запускать только код, подписанный цифровой подписью. Но если в Android можно залить пакет приложения, подписанный обычным цифровым сертификатом, то в iOS ситуация сложнее: пакет подписывается в момент установки, а уникальная для каждого устройства цифровая подпись разрешает запускать его лишь на том устройстве, для которого она была создана.
Добавим сюда тот факт, что цифровые подписи в одно лицо выдает (а может и отозвать!) только сама компания Apple, и получим ситуацию, в которой никакой неподписанный (точнее — подписанный «неправильной» цифровой подписью) код на устройстве выполняться не может.
ОФИЦИАЛЬНЫЙ ПУТЬ: АККАУНТ РАЗРАБОТЧИКА
Самый простой и единственно честный путь решения этой проблемы — официальный. При желании приложения все‑таки можно устанавливать, минуя App Store, но путь этот тернист, а для обычного пользователя просто недоступен.
Один из таких способов — различные варианты корпоративной и специальной дистрибуции. Так, в случае с корпоративной дистрибуцией клиент (образовательное учреждение или крупная компания — например, транспортная) регистрирует корпоративную учетную запись, получая возможность самостоятельно подписывать пакеты приложений и рассылать их на корпоративные устройства через MDM (Mobile Device Management).
Для подписи используется специальный enterprise-сертификат, срок действия которого, как правило, ограничен одним годом, зато отсутствуют ограничения на число подписываемых им приложений. При первом запуске подписанного таким сертификатом приложения пользователю (если его устройство не было заранее настроено компанией‑владельцем) нужно будет открыть настройки и добавить сертификат в список доверенных. В этот момент устройство свяжется с сервером Apple, который и выдаст (или не выдаст; об этом — ниже) разрешение на это действие.
В чем подвох? Их сразу несколько. Во‑первых, в программе корпоративной дистрибуции могут участвовать организации, но не частные лица. Во‑вторых, участие в программе платное. Наконец, мы не выходим из‑под контроля Apple; компания по‑прежнему сохраняет контроль над тем, разрешить ли запуск приложения на конкретном устройстве. Если Apple покажется, что выданный организации enterprise-сертификат используется с нарушением лицензионного соглашения, этот сертификат будет моментально отозван и подписать с его помощью вновь устанавливаемые приложения не удастся. Подобные сертификаты регулярно «утекают» и используются различными «альтернативными магазинами приложений» для подписи приложений.
Вариация на ту же тему — специальная дистрибуция для участников программы Apple для разработчиков. Ее основное предназначение — тестирование разработчиками программ собственного производства на своих же устройствах; соответственно, для ее использования нужна учетная запись разработчика (Apple Developer Account). В рамках специальной дистрибуции возможно пакетирование: одну и ту же сборку можно подписать сразу для сотни устройств.
У этого способа есть как несомненные преимущества, так и недостатки в сравнении с методом корпоративной дистрибуции.
В достоинства запишем в первую очередь то, что приложение просто устанавливается и запускается; нет необходимости подтверждать сертификат, как нет и необходимости каждый раз для установки приложения связываться с сервером Apple. Отсюда следует возможность установить приложение на iPhone, у которого отсутствует подключение к сети, — в полностью офлайновом режиме.
Второе достоинство метода — это его доступность для обычного пользователя. Всего 99 долларов в год — и ты можешь открыть собственную учетную запись разработчика, которая позволит тебе устанавливать любые приложения на устройства числом до ста штук!
Так, а это точно «достоинство»? 99 долларов в год — это немало всего лишь за право устанавливать собственные приложения на собственный iPhone, да и сто устройств — это за целый год: удаление ранее зарегистрированного устройства из учетной записи не высвобождает один из ста слотов.
Еще один недостаток официального способа — жесткая привязка дистрибуции к среде разработки Xcode, для работы которой, в свою очередь, потребуется компьютер с macOS. Получается сложновато и дороговато, если у тебя случайно нет Mac.
Наконец, последний недостаток метода — открыть учетную запись для разработчика частному лицу непросто из‑за рогаток, установленных Apple. Об использовании одноразовых Apple ID можно забыть: Apple верифицирует данные и может отказать в регистрации без объяснения причин. Наши разработчики говорят, что неплохие шансы получить аккаунт при использовании ненового Apple ID, в котором указан реальный адрес (тот же, к которому привязана платежная карта); регистрироваться лучше с мака, а наличие истории покупок с этой же учетной записи еще повышает шансы. Несмотря на это, гарантии того, что учетную запись в программе для разработчиков зарегистрируют, нет; отказывают обычно без указания причин.
На этом официальные способы заканчиваются и начинаются полуофициальные.
ПОЛУОФИЦИАЛЬНЫЙ ПУТЬ: CYDIA IMPACTOR
Полуофициальный способ — использование все той же официальной учетной записи для разработчиков, но для подписи пакета вместо Xcode будем использовать приложение Cydia Impactor. Чем это лучше Xcode? Во‑первых, проще. В Xcode нужно задавать массу полей, создавать профиль, экспортировать сертификат — квест достаточно запутанный даже для настоящих разработчиков. Cydia Impactor позволяет просто взять и залить приложение на iPhone, не требуя ничего, кроме логина и пароля от аккаунта разработчика.
Во‑вторых, в отличие от Xcode и многих альтернативных решений, Cydia Impactor доступен для множества платформ, включая macOS, Windows и Linux.
Недостаток один: требуется учетная запись Apple ID, зарегистрированная в программе Apple для разработчиков. Если такой аккаунт у тебя есть, то процедура достаточно проста, но к ней нужно подготовиться — создать в учетной записи Apple ID так называемый пароль приложения.
Итак, метод установки приложения с использованием аккаунта разработчика и Cydia Impactor:
- Подключаем iPhone к компьютеру, устанавливаем доверенную связь (подтверждаем запрос «Trust this computer?» на iPhone и вводим код блокировки экрана).
- Запускаем Cydia Impactor.
- Бросаем на окно Cydia Impactor файл IPA устанавливаемого приложения.
- Вводим логин и «пароль приложения» от Apple ID (обязательно зарегистрированного в программе Apple для разработчиков).
- Если Apple ID зарегистрирован более чем в одной программе для разработчиков, выбираем нужную.
- Подтверждаем запрос, и Cydia Impactor подпишет IPA и передаст его на устройство.
- Все, приложением можно пользоваться!
Способ корректный. Однако хотелось бы того же самого, но с использованием обычного Apple ID. Как ни странно, это возможно, но с рядом ограничений.
ИДЕМ В СЕРУЮ ЗОНУ: ПОДПИСЬ ПАКЕТА ОБЫЧНЫМ APPLE ID
Итак, ты решил подписать пакет приложения обычным Apple ID, не зарегистрированным в программе Apple для разработчиков. До 2019 года эта опция была хоть и не широко известной, но вполне работоспособной с учетом некоторых ограничений: подписанное таким образом приложение работало только семь дней, а установить на одно устройство можно было не более трех подписанных персональными сертификатами приложений. Три года назад в Apple решили прикрыть этот способ установки, но сделали это не до конца. Оставшаяся лазейка, впрочем, работает только на компьютерах с macOS. Соответственно, если у тебя есть Mac, то ты можешь попробовать одно из следующих приложений.
Nullximpactor
Nullximpactor — фактически альтернатива Cydia Impactor, работающая только на macOS, но позволяющая использовать для подписи обычные учетные записи.
Разработчик @nullx рекомендует использовать для подписи одноразовые Apple ID без двухфакторной аутентификации. В противном случае тебе придется создать в своей учетной записи «пароль приложения».
Достоинства: после начальной настройки использовать достаточно просто.
Недостатки: только macOS; требуется начальная настройка AltDeploy (инструкция); остаются все ограничения персональной учетной записи (приложение будет работать не дольше семи дней, а установить можно не более трех приложений).
iOS App Signer
iOS App Signer — интересное решение, принципиально отличающееся от всех остальных программ подобного назначения. iOS App Signer использует для подписи приложений штатную среду разработки Xcode, обходя при этом требование учетной записи разработчика (впрочем, семидневное ограничение или ограничение на число установленных таким образом приложений разработчикам обойти не удалось).
Пользоваться iOS App Signer достаточно сложно, но на GitHub есть подробные инструкции.
Достоинства: оригинальный метод, не требующий установки AltDeploy.
Недостатки: только macOS; нужен Xcode; сложно настраивать; ограничения персональной учетной записи.
ALTDEPLOY И ALTSTORE
AltStore — интересный и распространенный способ для установки неофициальных приложений и эмуляторов на устройства с iOS без джейлбрейка. С инструкциями по установке можно ознакомиться на сайте проекта.
В сравнении с описанными ниже онлайновыми магазинами приложений AltStore действительно достойная альтернатива. Ты можешь лично проконтролировать происхождение пакета IPA, а подписан он будет твоим собственным персональным сертификатом, который Apple внезапно не аннулирует, как это часто происходит с сервисами типа IPWind и альтернативными магазинами приложений, описанными ниже.
Недостатков у этого решения тоже хватает. Во‑первых, все минусы персональных сертификатов: ограничение на число установленных приложений (не более трех) и время их работы (не более семи дней). Во‑вторых, необходимость установки и настройки как приложения iTunes с включенной синхронизацией через Wi-Fi, так и серверной части AltServer (которая будет использоваться, чтобы автоматически переподписывать установленные приложения каждые семь дней).
Стоят ли усилия того, чтобы установить на устройство до трех сторонних утилит? Здорово сомневаюсь. А вот совместно с учетной записью разработчика это уже вполне может иметь смысл для установки приложений, которых нет и не будет в официальном App Store.
AltDeploy — фактически форк решения AltStore. В отличие от AltStore, который устанавливается на само устройство с iOS, AltDeploy позволяет установить и подписать приложение непосредственно с компьютера. При этом требуется компьютер с macOS и традиционные для AltServer прыжки по кочкам. Подробные инструкции по установке — здесь.
ПОДПИСЬ В РЕЖИМЕ ОНЛАЙН
Существуют бесплатные сервисы, позволяющие подписать пакет приложения в режиме онлайн, без связи устройства с компьютером. Пример такого сервиса — IPASign.
Помимо собственно файла IPA, сервис просит предоставить сертификат p12 для подписи, пароль и файл provisioning. Сервис выдаст QR-код, отсканировав который на iPhone можно установить подписанный IPA без связи с компьютером. Если ты собираешься воспользоваться своим собственным сертификатом — дважды подумай, стоит ли доверять анонимному сервису. Впрочем, если к тебе в руки попал корпоративный сертификат из утечки и ты хочешь протестировать его работу — вопросов не возникает.
Как это реализовано? С большой вероятностью за кулисами спрятан компьютер с macOS и Xcode, к которому прикручен веб‑интерфейс. Детали реализации неизвестны.
IPAWind — еще один подобный сервис. Позволяет подписывать пакеты не только своим сертификатом, но и их собственным (такой сертификат может быть аннулирован в любой момент, зато твой аккаунт останется вне подозрений). Как бонус: возможность редактировать манифест, благодаря чему можно устанавливать дубликат приложения (например, иметь на iPhone два WhatsApp), а также включать опцию iTunes Sharing, которая сделает рабочие файлы приложения доступными через iTunes.
АЛЬТЕРНАТИВНЫЕ МАГАЗИНЫ ПРИЛОЖЕНИЙ
Выше были описаны штатные способы установить приложение на устройство; в худшем случае мы вступали на территорию «серой зоны». Способы, описанные далее, в явном виде нарушают политики Apple и в некоторых случаях могут нарушать права других правообладателей.
Первый такой вариант — сторонние магазины приложений. Все подобные решения характеризуются простотой установки и использования (открыл страницу магазина в Safari, нажал кнопку, получил на устройство альтернативный магазин приложений, подтвердил сертификат — и можно работать). Есть как платные, так и бесплатные варианты. Самые известные из них:
- Ignition — специализируется на утилитах джейлбрейка, твиках и патченных приложениях;
- TweakBox — содержит в каталоге утилиты, эмуляторы, джейлбрейки и многое другое (каталог);
- iPASTORE — платный (подписка) сторонний магазин приложений.
Этими тремя список подобных сервисов не ограничивается. AppValley, CokernutX, Panda Helper, платный AppDB, TweakDoor, Emus4u, iPABox, Zestia… Не все пережили выход iOS 14, но многие продолжают работать и поныне.
Все эти магазины, включая платные сервисы, функционируют с нарушением политики Apple: нецелевое использование сертификатов разработчиков, использование «утекших» или специально купленных корпоративных сертификатов и соответствующих механизмов доставки. Apple регулярно блокирует такие сертификаты, но сервисы всегда находят замену и переподписывают как само приложение‑магазин, так и установленные с его помощью утилиты. Вот что пишет об этом сам сервис.
Какие риски возможны при использовании подобных сервисов? Отозванный Apple сертификат может привести к невозможности запустить установленное приложение. Техническая возможность модифицировать (патчить) приложения на стороне сервиса означает вероятность получить вместе с установленной программой неприятный «довесок», который (в случае старых версий iOS) может даже взломать устройство.
Пользоваться подобными магазинами или нет — решать тебе.
Для взломанных устройств доступно несколько магазинов приложений: Cydia, Sileo, Zebra, Installer 5. Какой из них выбрать? У разработчиков утилит для джейлбрейка, как правило, есть свой «любимый» магазин приложений, который и будет установлен на устройство после взлома. При этом ты всегда можешь параллельно установить дополнительный магазин приложений.
На взломанных устройствах нет ограничений, связанных с использованием персональных профилей. Можно устанавливать любое количество приложений; не будет и ограничений по времени работы.
TESTFLIGHT
TestFlight — это сервис тестирования iOS-приложений и одноименное приложение, которое пользователь может установить на свое устройство. С технической точки зрения TestFlight упрощает дистрибуцию тестовых сборок, облегчая процесс сбора кодов тестовых устройств (UDID) и позволяя распространять сборки среди зарегистрированных участников тестирования. До бесконечности тестовыми сборками пользоваться нельзя; рано или поздно сертификат истекает, и пользователю приходится или обновляться на официальную версию приложения, или устанавливать свежую тестовую сборку, которую предоставит разработчик.
Сервисом TestFlight могут воспользоваться как корпоративные, так и частные разработчики. В последнем случае будет ограничение на максимальное число участников бета‑тестирования — не более 100 UDID в год. Удаление UDID из программы не освобождает слот.
Некоторые разработчики пользуются этим сервисом для дистрибуции ПО, которое по тем или иным причинам не принимают в App Store. Самый известный пример такого приложения — Soap4me для платформы iOS, которое находится в состоянии перманентного бета‑тестирования. В принципе, вполне себе решение — но для обычного пользователя избыточно сложное.
ГДЕ ВЗЯТЬ ПАКЕТЫ ПРИЛОЖЕНИЙ?
Наверное, самый известный репозиторий пакетов IPA — iOS Ninja. С сайта можно скачать как сами пакеты приложений, так и образы прошивок Apple для ряда устройств (по прямым ссылкам с сайта Apple). Скачанные с сайта пакеты для установки на iPhone потребуется подписать одним из описанных выше способов.
ЗАКЛЮЧЕНИЕ
«Плати или страдай» — такой вывод можно сделать из этой статьи. Действительно, оплатив участие в программе для разработчиков, можно забыть о сомнительных (часто также небесплатных) сервисах и связанных с ними рисках. Впрочем, не факт, что в программе Apple для разработчиков вообще удастся зарегистрироваться; в последнее время это стало непросто. Бесплатная альтернатива — AltStore — требует серьезных усилий для установки и настройки, а также постоянной возни с переподписыванием установленных приложений, для автоматизации которой нужна постоянно работающая на компьютере серверная часть. Установка джейлбрейка — универсальное решение, лишающее, впрочем, одного из основных преимуществ iOS — доступа к регулярным обновлениям. Каким из этих способов воспользоваться и стоит ли овчинка выделки? Решать, как водится, тебе.