Как сделать твик на ios
Как сделать твик на ios
Theos. Разрабатываем твики для iOS устройств с jailbreak-ом
— /
Корневая директория. Всё начинается от сюда.
— /bin
Сокращение «двоичный». Исполняемые файлы, которые обеспечивают основные функции на уровне пользователя.
— /boot
Хранит все необходимые файлы для загрузки. Этот каталог пуст на iOS.
— /dev
Сокращенно от “устройство”, сохраняет файлы BSD устройств. Каждый файл представляет собой блочное устройство или символ устройство.
— /sbin
Сокращение “системные файлы”. Двоичные файлы, которые обеспечивают основные системные функции (статистика и перезагрузка).
— /etc
В этом каталоге хранятся конфигурационные файлы системы и скрипты (пароли пользователя и хост).
— /lib
В этом каталоге хранятся на системном уровне lib-файлы, файлы ядра и драйверов устройств. Этот каталог пуст на iOS.
— /mnt
Сокращение от «монтировать», хранит временно смонтированные файлы систем (на iPad тут могут хранится переданные файлы по Camera connection kit). Этот каталог пуст на iOS.
— /private
Содержит два подкаталога: /private/etc и /private/var.
— /tmp
Временный каталог. Является ссылкой на /private/var/tmp.
— /usr
Каталог, содержащий большинство инструментов и программ на уровне пользователя. /usr/bin используется для других основных функций, которые не предусмотрены в /bin or /sbin. /usr/include содержит все стандартные заголовки C, и /usr/lib файлы lib.
— /var
Сокращение от «переменной», сохраняет файлы, которые часто изменяются, например файлы журнала, данные пользователя и временные файлы.
/var/mobile/ для пользователя и /var/root/ для суперпользователя, эти два подкаталога наша основная специализация.
— /Applications (Приложения)
Каталог для всех системных приложений и приложений из Cydia. Не содержит приложения из AppStore.
— /Developer (Разработчик)
При подключении в Xcode появляется этот каталог. В этой директории есть несколько файлов данных и инструменты для отладки.
— /System/Library (Система/Библиотека)
Один из наиболее важных каталогов на iOS, хранит множество системных компонентов.
— /System/Library/Frameworks и /System/Library/PrivateFrameworks
Эти каталоги содержат различные APIs для iOS.
— /System/Library/CoreServices/SpringBoard.app
Содержит графический пользовательский интерфейс IOS.
— /var/mobile/Media/DCIM и /Library/Wallpaper
Тут хранятся ваши фотографии и стандартные фотографии соответсвенно.
— /var/mobile/Media/Recording
Файлы из диктофона.
— /var/mobile/Library/SMS и /var/mobile/Library/Mail
Базы данных SMS/iMessage и Mail соответсвенно.
Есть множество простых программ (например скачать), можно сделать через терминал (см.ниже), а так же можно использовать уже готовые (есть на GitHub либо тут).
Пишем полноценный твик для iOS с помощью iOSOpenDev
Доброго времени суток!
Сегодня я хотел бы вновь затронуть тему разработки jailbreak-программ под iOS. В русскоязычном интернете довольно проблематично найти что-то понятное новичкам, поэтому я попытаюсь исправить это недоразумение и объяснить как решаются некоторые моменты.
Установка ПО, настройка среды и устройства, написание твика с нуля — именно это ждёт вас под катом. Если вам интересно, как поменять часть iOS под себя — добро пожаловать.
Начнём!
Что нам потребуется?
Подготовка
Первым шагом будет установка Xcode. Его вы можете скачать с Mac AppStore, а так же с страницы загрузок на сайте Apple. Подробно на этом останавливаться не буду.
Следом нужно поставить theos. Нам говорят, что его можно запихать на любую платформу, и он будет работать, но сегодня мы не изобретаем велосипед делаем всё на родной для iOS SDK системе.
Скачиваем theos в папку /opt/theos. Можно ставить в любую папку, но на свой страх и риск:
На этом настройку theos можно закончить.
Скачиваем iOSOpenDev и запускаем инсталлер. Он сделает всё за вас.
В случае возникновения неизвестной ошибки скорее всего приложение называется не «Xcode.app» или вы его не запускали вовсе.
Халява закончилась. Время настройки переменных.
Открываем
/.bash_profile и редактируем следующие строчки:
Теперь iOSOpenDev будет знать IP вашего устройства, осталось только разрешить подключаться по SSH без запроса пароля и скачать всю необходимую базу библиотек:
Дважды вводим пароль устройства, и, если запросит — придумываем пароль для кейчейна.
Более того, нужно скачать пачку хеадеров и положить в /opt/iOSOpenDev/include.
Тут сложнее всего с IOSurfaceAPI.h, так как он не является свободно распространяемым кодом. Но если вы не сможете его добыть из системы (на Mac OS X 10.10 я его не нашел), то заберите «заглушку» из папки _fallback, для нашего разбора будет достаточно и её.
На этом установку можно считать завершенной.
Пишем основу
Вся разработка будет проходить в Xcodе, хотя с некоторыми ограничениями.
Создаём новый проект и встречаем новый пункт «iOSOpenDev».
Нам требуется Logos Tweak:
Заполняем информацию о проекте. Include Simple PreferenceLoader добавит в проект простой блок настроек в Settings.app. Но о нём позже.
Теперь мы должны сделать то, что Xcode сам не делает — добавить в список для линковшика UIKit.framework и libsubstrate.dylib (последняя лежит в /opt/iOSOpenDev/lib/).
Первые шаги
Сегодня мы будем менять унылую надпись «Разблокируйте» экрана блокировки на свой текст.
Во-первых, было бы хорошо раздобыть хеадеры бинарника «подопытного». Со SpringBoard все гораздо проще — народ готов выкладывать хеадеры спрингбоарда для каждой версии iOS. Но если вы хотите сделать их сами, то утилита class-dump-z вам в этом поможет.
Я пишу для iPad 4 на iOS 8.1, поэтому и хеадеры смотрим соответсвующие.
Есть два способа быстро найти то, что нам требуется. Первый — использовать cycript и посмотрев на иерархию объектов найти то, что нужно. Второй — искать поиском по содержимому хеадеров. В данном случае я решил поискать по запросу «unlockText» и нашел в классе SBLockScreenView такой вот метод:
Предположим, что это то, что нам надо. Напишем первый набросок:
Для компиляции с установкой на девайс выберите Build for profiling:
И, о, чудо! На удивление всё заработало с первого раза:
Наша основная цель — заставить меняться текст, поэтому создадим конструктор (%ctor) и будем подгружать настройки.
Создаём панель настроек
Создадим новую цель: File — New — Target — iOS Open Dev — PreferenceBundle; Назовём её LockLabel8Bundle.
Есть большой плюс проекта с «сложными» PreferenceBundle’ом — в настройках можно сделать весь графический интерфейс для приложения и не заморачиваться с запуском от рута и подписями. Но есть и минус — панель в настройках и сам твик собираются в отдельных пакетах, поэтому для релиза придётся их ещё и объединить.
Можете попробовать собрать шаблон и полюбоваться на множество возможных встроенных PSSpecifier’ов.
Возможно, оно не скопилится сразу как надо. Значит, вы пропустили скачивание хеадров, про которые я говорил в начале статьи.
Из всех я оставлю только первую и последнюю группу, TextView и одну кнопку.
Еще можно подредактировать поле «label», чтобы не светить этим «Bundle».
У кнопки есть Action «respring:», поэтому опишем метод респрингa в LockLabel8BundleController:
С разработкой внутри настроек всё гораздо проще: здесь действуют те же законы, что и в обычных приложениях.
Исходный код доступен на гитхабе.
Поддержка нескольких версий iOS?
Когда твик становится из простого наброска масштабным проектом, возникает вопрос, а как организовать поддержку нескольких версий iOS так, чтобы не загружалось ничего лишнего? Тут на помощь приходят группы.
8 джейлбрейк-твиков для полноценного использования iPhone и iPad
Появление джейлбрейка для iOS 9.3.3 немного всколыхнуло сообщество любителей взлома мобильных устройств Apple. Однако, ограничения, не позволяющие установить джейлбрейк на старые устройства, отказ хакеров делать непривязный джейлбрейк и случаи воровства денег со взломанных устройств практически «похоронили» данную тему.
Многие потенциальные взломщики решили не пользоваться утилитой Pangu. Очень зря, ведь и сегодня есть несколько стоящих твиков, ради которых стоит делать джейлбрейк.
Вот восемь моих аргументов за взлом iOS 9.3.3:
1. Activator – совершай любое действие удобным жестом
Самый известный твик, который не первый год устанавливается на миллионы взломанных iPhone и iPad. В большинстве случаев расширение загружают в качестве зависимости для других дополнений. Лишь малая часть пользователей выжимает максимум из твика.
Как только у меня оказывается iPhone или iPad с джейлбрейком я загружаю Activator и произвожу такие настройки:
Это только набор моих стандартны действий, еще десяток настроек делаются по ситуации.
2. FlipControlCenter – добавь нужные переключатели в Control Center
С момента появления нижней шторки в iOS 7 многие пользователи мечтают о возможности добавить туда свои переключатели. С джейлбрейком это возможно.
В верхнем ряду располагаются необходимые кнопки для быстрого включения мобильного интернета и переключения 3G\LTE, рядом свое место занимает кнопка отключения геолокации и еще одна для принудительного включения энергосберегающего режима.
В качестве бонуса можно добавить яркое и тусклое свечение для фонарика (активируется простым или долгим нажатием на кнопку) и переход к нужному разделу в приложении Часы, при запуске из Control Center. Изначально запускается секундомер, а мне удобнее сразу переходить к будильнику.
3. NoSlowAnimation – убери надоедливую анимацию в системе
Миниатюрный твик, который отключает длинную анимацию в iOS. Пользователи устройств без джейлбрейка могут помучать себя и попытаться проделать подобное таким способом.
Отключение плавных переходов визуально ускоряет работу iPhone. Если после пары дней использования твика отключить его действия, покажется словно начал пользоваться iPhone 4 после привычной шестерки.
4. SafeHouse Pro – отключай ввод пароля в зоне действия домашнего Wi-Fi
Это расширение позволит отключать пароль разблокировки на устройстве, когда оно подключено к домашней Wi-Fi сети. Такую фишку уж точно давно пора добавить в iOS.
Зачем по несколько десятков раз в день использовать сканер отпечатков или пароль, когда находишься дома?
5. Power Saver Mode – продли время работы iPhone в два раза
Самый простой способ продлить время автономной работы iPhone – включить родной режим энергосбережения. При этом не только отключится ряд фоновых процессов, но программно снизится вычислительная мощность устройства.
Большинство неприхотливых пользователей может целыми днями использовать iPhone в таком режиме, а при необходимости отключать режим и «разгонять» iPhone на 100%.
К сожалению, iOS не позволит сделать это и будет принудительно выключать такой режим после зарядки гаджета. С твком Power Saver Mode этого не случится, более того мы получим несколько новых опций.
6. SwipeSelection – перемещай курсор свайпом по клавиатуре
Еще один твик долгожитель, который неизменно работает на всех версиях iOS с джейлбрейком. Он позволяет свайпами по клавиатуре перемещать курсор. Нечто подобное есть на последних iPhone с 3D-Touch, но ведь мы хотим комфортно работать и на других моделях смартфона.
7. FullForce – пользуйся приложениями для iPhone на iPad правильно
До сих пор не все разработчики в App Store помнят о наличии в природе такой штуки, как iPad. Множество программ и игр не поддерживают работу на большом экране и запускаются в урезанном режиме. Пользоваться таким софтом не хочется до появления на устройстве твика FullForce.
Расширение корректно адаптирует размер приложения под экран iPad. Никаких растянутых текстур или уехавших пунктов меню. Все работает очень здорово, словно приложение изначально имело поддержку планшета.
8. KuaiDial – добавь десяток полезных функций в приложение Телефон
Если предыдущий твик предназначен исключительно для владельцев iPad, то данный подойдет только хозяевам iPhone с джейлбрейком. Многофункциональное решение по полной прокачивает стандартную звонилку.
Главная фишка – умный набор по первым цифрам или буквам имени абонента, который позволит найти контакт в 3-4 нажатия. Есть вибрация, когда на том конце снимают трубку, отображение номера при звонке, а не только имени абонента, и продвинутый черный список.
Если немного поковыряться в настройках, можно добавить базу российских операторов и всегда видеть на экране, из какого региона звонят.
Владельцев фаблетов порадует возможность отображения клавиши отбоя вызова во время входящего звонка. Так не придется тянуться к кнопке на правом торце устройства.
Весь перечень совместимых с iOS 9.3.3 твиков можно найти здесь. Список регулярно обновлятеся, возможно, твои любимые расширения уже адаптированы под последнюю версию iOS и станут дополнительным поводом сделать джейлбрейк.
Гайд по твикам для iOS
Сегодня расскажу про некоторые полезные твики и утилиты, расписывать буду более-менее подробно.
Репозиторий (repo) это электронное хранилище данных. Добавляется репо в Cydia так:
Открываем Cydia, переходим на вкладку «Источники» (внизу), жмём кнопку «Правка» (справа сверху), затем «Добавить» (слева сверху), вписываем адрес репо, снова «Добавить», ожидаем. После прогрузки репозиторий появляется в источниках.
Респринг — (Restarting Springboard), по сути, это рестарт пользовательского интерфейса, то есть рабочего стола iOS.
Первым будет запись телефонных разговоров:
Это русскоязычный репозиторий, ориентирование в нём проблем вызывать не должно.
2. Заходим в него, выбираем категорию «Твики», ищем там Limneosos, жмём «Установить/Принять» (всё справа сверху).
4. Заходим в репо, категория «Твики», ищем AudioRecorder XS (iOS 12/13), устанавливаем. Если ваша iOS ниже 12, там же есть AudioRecorder 2 (iOS 8, 9, 10, 11).
Сделал именно так, потому что когда устанавливал этот же твик непосредственно из ReJail, он вылетал при включении на iOS 13.4, а пикабушник @eloginov в #comment_170458230 сказал, что у него на 13.5 всё в порядке, ориентируйтесь сами.
Готово, можете вести запись своих телефонных разговоров. Иконка приложения появится на рабочем столе устройства.
Также появится меню управления утилитой в настройках телефона. Откройте настройки и прокрутите почти в самый низ, раздел настроек приложений из Cydia находится сразу перед разделом настроек приложений из App Store.
В этом меню можно включить/выключить утилиту, настроить как будет проходить запись и где. Для тех, у кого плохо с английским: нужно выключить оповещение собеседника о записи, для этого отключаем «Play Warning Audio Message» и «Проигрывать звук Beep», если они вдруг включены.
Можно настроить так, чтобы запись велась всегда автоматически или при нажатии на кнопку записи во время звонка.
Ну и еще я привязал на всякий случай облако, записи туда сгружаются автоматически. Это настраивается уже в самой программе, нужно тапнуть на иконку приложения и нажать на шестерёнку справа сверху, поддерживает DropBox и Google Drive.
Следующий мой обязательный твик это YouTubeTools. Позволяет убрать рекламу в видео, проигрывать видео в фоновом режиме, ну и всякое по мелочи.
1. Заходим в уже добавленный ReJail.
2. Категория «Твики», ищем YouTube Tools Rus, устанавливаем.
Твик полностью русифицирован, меню управления появляется там же, в блоке настроек.
Далее пойдёт Safari Plus. Хоть в 13 версии iOS и добавили поддержку скачивания файлов, этот твик имеет более широкий спектр возможностей. Можно включить поддержку скачивания видео из стандартного плеера Safari; включить выгрузку сразу нескольких и любых файлов, включая файлы рут фс; включить полноэкранный скроллинг; добавить в меню открытия новой вкладки пункты «Открыть в фоновом режиме», «Открыть в приватной вкладке» ну и по мелочи. Мне нравится.
Твик находится в репо BigBoss, ничего добавлять не нужно, этот репозиторий добавлен по умолчанию. Репозиторий достаточно громоздкий, искать руками не удобно, поэтому идём в поиск, он находится справа внизу. Пишем в строку поиска «Safari Plus», обязательно жмём кнопку поиска, чтобы цидия показала какие твики в каких репозиториях находятся. Выбираем Safari Plus от BigBoss, устанавливаем.
Примечание: поиск также выдаёт версию «Safari Plus Rus» из репо ReJail, это тот же самый твик того же BigBoss’a, только русифицированный, можете в принципе поставить его. Себе я поставил оригинальный.
Готово, можете настраивать Safari во всё том же блоке настроек.
Далее пойдёт очень хороший и функциональный менеджер файлов Filza. Тем, кто не очень хорошо соображает в системе с ним нужно быть аккуратнее, можно удалить что-то очень нужное или дать неправильные разрешения каким-нибудь файлам и получить неприятную ситуацию.
Установим его через поиск, можно ставить любой на выбор, я поставил оригинальный от BigBoss’a, в нём также всё по-русски. Filza умеет устанавливать приложения и *.deb пакеты.
Иногда выскакивает окошко, с просьбой активации на 5 секунд, его можно игнорировать. После установки добавляет кнопки «Открыть/Добавить/Показать в Filza» в разные контекстные меню, например в Safari, в менеджере загрузок.
Дальше мне друг рассказывал, сам я этим не пользуюсь, естественно, это ведь незаконно.
Обман транзакций внутри приложений. Друг сказал, что работает это не везде и 100% не работает в server-sided прилоложениях, то есть там, где транзакции проверяются на сервере, так что онлайн игори мимо.
1. Друг добавлял репо https://cydia.akemi.ai и устанавливал оттуда из категории «Твики» AppSync Unified. Это динамическая библиотека, которая патчит installd в нужную сторону. По-русски говоря позволяет ставить всякие левые приложения не из App Store.
2. Друг вбивал в поиск LocalIAPStore и ставил из ReJail. Если непонятно, то вот L O C A L i A P S T O R E слитно.
Друг сказал, что после установки и включения твика он нажимал в приложении на какую-нибудь покупку и отменял подтверждение, если не проходит, значит в этом приложении не работает.
Включается в настройках. Скрины тоже друг скидывал.
Блокировщик рекламы. Для себя я выбрал BlockYouX. Заявлена блокировка over8000 рекламных ресурсов (могу подтвердить, что блокирует подавляющее большинство рекламы), твик мягко работает с файлом hosts, не влияет на скорость этих ваших интернетов, не сосёт батарею. Не ставлю блокировщики из App Store потому что все они используют VPN.
Примечание: не ставьте кучу блокировщиков из Cydia, файл hosts не резиновый, так сказать. Не исключены ошибки и хреновый интернет, а то и вовсе он работать не будет. Выберите один блокировщик.
2. Идём в категорию «Ceadd-Repo», ставим BlockYouX. Настроек не требует. Работает.
Твик называется CCModules Pro, взял с ReJail. Он полностью на английском сам по себе и заменяет некоторые русские названия в настройке пункта управления на английские, но это я думаю не страшно. Пройдёмся по настройкам.
После установки твика расширяется стандартное меню кастомизации пункта управления, поэтому идём в «Настройки->Пункт управления->Настроить элементы управления».
Во-первых, сделаем нормальное отключение Wi-Fi/Bluetooth:
Жмём «Connectivity», выбираем вайфай/блютуз, тыкаем первый переключатель. Оба пунтка имеют одинаковые настройки. По факту там вообще один переключатель, другие два не активны, потому что не работают (Broken), не обращайте на них внимание.
Теперь нужно сделать Респринг, чтобы эти настройки начали работать, но сделать это просто так нельзя. Добавим кнопку, чтобы было можно.
Возвращаемся к настройке элементов, ищем внизу пункт «Power Actions», жмём на плюс. Элемент добавлен, нужно настроить. Жмём на сам элемент и далее:
Первый пункт «Closed Module Action» означает выбор действия по однократному нажатию кнопки, я выбрал «Respring». Пройдёмся по пунктам, чтобы вы понимали что это вообще такое.
UICache. SpringBoard хранит кеш всех значков приложений. При установке или удалении приложений из App Store installd выполняет эти изменения и обновления, которые кэшируют для их отражения. При установке приложений другими способами (например, через Cydia) installd никак не задействован, поэтому для правильного отображения приложения на главном экране кеш должен обновляться «вручную», каким-то образом.
Именно это и делает uicache. Как именно это достигается, это зависит от версии iOS, но в основном это комбинация удаления файлов кеша, убийства/перезагрузки служб, работающих с ними, и итерации по установленным приложениям для создания нового кеша.
Если вышесказанная хрень вам непонятна, значит этот пункт вам тоже не нужон.
Safe Mode это фишка Cydia, которая предотвращает ваше устройство от постоянного цикла ошибок, давая шанс удалить корявое расширение без полного восстановления устройства. Зачем нужна кнопка ручной активации безопасного режима, если он автоматически включается сам, когда это требуется я не понял.
Следующий пункт меню «Expanded Cells Order» отвечает за вызов дополнительного меню при длительном нажатии на значок, настраиваем как удобно:
«Module Size» отвечает за кастомизацию размеров, я туда не лазал, всё нормально по умолчанию.
«Centered Expanded Labels» значит отцентровать названия команд, которые всплывают при длительном нажатии.
Включение «Always use Expanded View » будет всегда вызывать дополнительное меню даже при однократном нажатии на значок.
Пункт «Confirmations» отвечает за дополнительное подтверждение выбранного действия при нажатии на команду, я включил все, мало ли что.
Также твик CCModules Pro добавляет возможность воткнуть выбранный контакт в центр управления и выполнять с ним какие-то действия, но я этим не пользуюсь, меня устраивают стандартные контакты, можете поиграться с этим сами.
Кнопка респринг добавлена, можно жать и нормально включать/выключать Wi-Fi/Bluetooth.
Принудительный выбор сети осуществляется длительным нажатием на кнопку мобильных данных, выскакивает такое меню:
И только что я узнал, что пикабу позволяет добавлять в пост максимум 51 блок текстов/картинок/видео, а у меня их осталось три, включая этот. Будем сжиматься и закругляться.
Идём в добавленное репо Limneos (как раз пригодился Limneosos), категория «Твики», ищем CallBar XS (iOS 12/13), ставим и радуемся. Прекрасно работает даже без настройки, нужно только включить (ползунок Enabled в настройках). Твик на английском, но по настройкам лазить не будем, потому что кончаются грёбаные блоки на пикабу)) Скажу только самое основное:
Когда вам поступает звонок всплывает всего лишь небольшое окошко вместо ОКНИЩА на весь экран, его можно двигать, а также свайпом влево можно просто свернуть, звонок не сбросится.
Чтобы поставить TouchID или FaceID на всё, что вашей душе угодно ставим с того же репозитория Limneos твик под названием BioProtect XS (iOS 12/13) или BioProtect X (iOS11) для соответствующей версии. Штука также на английском, нужно включить и выбрать к чему нужно поставить протекцию. Выбирать нужно в настройках в блоке «Protected Items», можно выбирать приложения, папки, настройки, вкл/выкл и т.д.
Всё, последний блок, здесь напишу про то, как обходить определение приложениями джэйлбрэйка. Короче говоря есть несколько способов определить присутствие джэйлбрэйка на вашем устройстве, а вот конкретного байпасера под всё и от всего вроде как нет. Поставим байспасер под самую распространенную проверку и еще один на всякий случай.
Первый это A-Bypass.
Добавляем репозиторий https://cydia.kiiimo.org жмём на категорию «Все пакеты», ставим A-Bypass. Чтобы включить обход определения идём в настройки, ищем A-Bypass, выбираем нужное приложение. На всякий случай сделайте респринг.
Второй это LibertyLite, можно поставить бета версию репозитория kiiimo, она повыше, но она всё еще бета. На ReJail есть не бета, но заявлена поддержка iOS 11-12.4.
То есть ставим оба твика и проверяем какой работает под конкретное приложение. Если не работает вообще нихрена, напишите, я подготовлю материал и сделаю пост. Всё, на сегодня закончим. Удачи, коммьюнити)