Решение проблем с пустыми репозиториями Cydia после джейлбрейка
Минувшей ночью у нас на почте собралась приличная коллекция похожих вопросов: счастливые пользователи сделали себе джейлбрейк с помощью Absinthe или seas0npass, но радость продолжалась недолго. При попытке что-либо установить из Cydia ничего не получалось, потому что большинство нужных пакетов и твиков просто не находились через поиск. Более того, многие стандартные репозитории Cydia (например, BigBoss или Modmyi) изначально были пусты.
Напомним несколько простых советов по борьбе с такой напастью.
Если у вас опустели репозитории в Cydia, нет смысла нажимать на кнопку Reload на главной странице, с большой долей вероятности она вам не поможет. Нужно перейти на вкладку Changes и нажать там кнопку Refresh.
В том случае, если и это не поможет, подключите устройство к компьютеру, запустите любой файловый менеджер (например, iExplorer), зайдите на своём гаджете в папку /var/lib/apt/lists/ и удалите всё, кроме папки partial. После этого перезагрузите устройство.
Если похожие проблемы с невозможностью найти или установить что-либо настигли вас на Apple TV, нужно узнать IP-адрес приставки (меню Настройки-Основные-Сеть), затем запустить Терминал и ввести там следующие команды:
[php]ssh root@10.0.1.5
yes
alpine
killall -9 apt-get aptitude
rm -f /var/lib/apt/lists/lock
apt-get -y update[/php]
10.0.1.5 замените на IP-адрес Apple TV. После ввода всех команд потребуется перезагрузка приставки.
Источник
Cydia не работают твики
Только для девайсов с jailbreak-ом!
Инструкции по получению джейлбрейка для своей iOS смотрите в этом разделе:
[FAQ] Путеводитель по инструкциям для получения джейлбрейка
Для решения некоторых проблем вам могут понадобится:
ˇЗаходите в Режим Safe Mode (безопасный режим), после чего идете в Cydia и удаляете проблемный твик.
— Идете по пути /Library/MobileSubstrate/DynamicLibraries ˇ
— По очереди переименовываете твики ( НАЗВАНИЕ_ТВИКА.dylib переименовываем, например, в НАЗВАНИЕ_ТВИКА.disabled ) и перезагружаете девайс.
Т.е. переименовали один твик, перезагрузились. Переименовали следующий, перезагрузились.
Таким образом, вы найдете твик, из-за которого произошел сбой работы системы.
Обнаружив проблемную программу, вы сможете удалить ее через Cydia
ˇ
Как видите у меня есть репозиторий с названием «vk.com», а добавился он таким образом из-за того что ссылка была скопирована с социальной сети Вконтакте. И так приступим к удалению данного репозитория:
Для этого на понадобится:
— iFile или Filza File Manager (если редактируем на устройстве);
— iFunBox [PC] или iTools [РС] (если редактируем на ПК)
Через текстовый редактор открываем файл /User/Library/Caches/com.saurik.Cydia/ sources.list
(в старых версиях Cydia /var/lib/cydia/ metadata.plist
( если используете iFunBox [PC] или iTools [РС] , файлы сначала скачиваем на компьютер и открываем через программу plist Editor Pro [PC] . После редактирования закидываем файлы обратно на девайс )
Находим строки связанные с «ненужным репозиторием» и удаляем их.
Т.е. удаляем строчки с » deb. » по » «.
Нажимаем сохранить. Перезапускаем Cydia и все — репозиторий удален.
Внимание! В новых версиях Cydia необходимо редактировать файл com.saurik.Cydia.plist , который находится в директории /User/Library/Preferences .
Если у вас не хватает навыков редактирования plist-файлов, просто удалите этот файл com.saurik.Cydia.plist и перезапустите Cydia (а лучше перезагрузите устройство). Но в данном случае загрузятся только стандартные репозитории, все пользовательские (включая неудаляемый ранее) удалятся.
- Для Uncover iOS 12 после удаления нужной строчки зайдите в приложение Uncover
- Далее в Настройки и поставьте ползунок на «Reset Cydia Cashe”
- После вернитесь на главную вкладку
- Сделайте “Re-Jailbreak”. Иначе репозиторий ссылкой так и останется висеть, даже после редактирования .plist
В некоторые репозитории Cydia встроена реклама. Реклама эта в виде javascript-a и перенаправляет пользователя с Cydia в AppStore.
Говоря простым языком, бегаем мы по репозиториям Cydia, смотрим различные приложения, а потом бац! и нас выкидывает в AppStore, где предлагают установить на девайс какую-нибудь ненужную программулину.
Вернемся к скриншоту.
В окошке у пользователя Cydia спрашивает, что делать с такими редиректами — открывать AppStore или нет. Если мы хотим, чтобы Cydia нас перенаправляла, значит нужно нажать «Allow». Если мы хотим отказаться от перенаправлений — жмем «Отмена».
Рекомендую нажать именно «Отмена», а также ознакомиться с темой [FAQ] Как убрать рекламу — в ней полностью раскрыт вопрос о рекламе на девайсе (в том числе и Cydia)!
1. Заходим в /var/lib/dpkg/
2. Открываем status через текстовый редактор.
Ищем тот твик, из-за которого произошла ошибка.
Удаляем полностью блок, содержащий в себе данные об установленном пакете.
Пример с пакетом OpenSSH: (вы, соответственно, ищете тот, из-за которого произошла ошибка)
| |
3. Перезапускаем Cydia (а лучше перезагрузить устройство)
4. Если после этого Сидия не заработала, делаем тоже самое с файлом available ( /var/lib/dpkg/ )
Допустим, у нас вылезла ошибка:
По первому способу:
Переустанавливаем deb-пакет программы bossios8 (com.macciti.bossios8.deb)
По второму способу:
Редактируем /var/lib/dpkg/ status
| |
По третьему способу:
Вводим в командной строке:
ˇ
Ошибка вызвана тем, что Cydia не может обнаружить deb файл, т.к. он не скачался полностью из репозитория. Поэтому вариантов решения проблемы два:
- Открываем Cydia и идем во вкладку Sections (Источники) и жмем кнопку Refresh (Обновить), после чего пробуем установить программу (ранее из-за которой была вызвана ошибка) заново. Если ошибка и в этот раз не пропадет, нужно немного подождать, скорее всего, репозиторий перегружен из-за большого наплыва пользователей.
- Вариант для более продвинутых. Устанавливаем необходимые файлы вручную.
Скачиваем на 4PDA или любом сайте программу, из-за которой была вызвана ошибка, в формате deb и устанавливаем одним из следующих способов [FAQ] Установка *.deb и *.app
Примечание: Если вы устанавливали, скажем, программу Activator а ошибка вылезла, допустим, об осутствующем файле com.saurik.substrate.safemode, это означает, что вам необходимо помимо самого твика (Activator) скачать и зависимости к нему. В данном случае это com.saurik.substrate.safemode
ˇ
Установщик не может записать информацию на диск. Скорее всего, на девайсе просто недостаточно дискового пространства (в систем разделе или в пользовательском, или и то, и другое).
Что делать?
1. Нужно посмотреть сколько места осталось (в Cydia «жмем на вкладку Cydia — Хранилище — Хранилище» или через сторонние программы, (например, через Disk Pie), и если его действительно нет, удаляем тяжелые файлы из аппарата (темы, ненужные твики и пр. Если пользуемся файловыми менеджерами типа iFile, очищаем корзину)
После чистки пробуем переустановить программу, которую пытались установить ранее.
2. Если проблем с дисковым пространством нет, пробуем переустановить Cydia Installer
+ все данные сохраняются
— требуется заранее установленный пакет терминала (для запуска на команд с устройства) или пакеты OpenSSH и OpenSSL (для запуска команд с ПК), или AppSync (для установки терминала без Cydia)
- На девайсе с помощью Filza File Manager или iFile
- На ПК с помощью iFunBox, iTools или WinSCP
- Идем в /var/lib/dpkg/updates
- Удаляем все содержимое (предварительно сделав backup)
- Перезагружаем устройство
При установленном на устройстве пакете OpenSSH пользователи iFunBox также могут воспользоваться решением «1. С помощью командной строки«
+ никакие данные не теряются
— требуется заранее установленный файловый менеджер (если выполняем на девайсе) или afc2add (или его аналог — Apple File Conduit «2») — если выполняем на ПК.
Воспользуйтесь Semi-Restore for iOS — все пользовательские данные будут удалены, на выходе получите чистое устройство с джейлбрейком.
+ простое восстановление, джейлбрейк сохраняется
— потеря пользовательских данных, требуется заранее установленный пакет OpenSSH, не для всех версий iOS
Самый простой вариант: введите устройство в режим DFU и восстановите прошивку. При этом джейлбрейк и все данные будут потеряны. Убойный способ, рекомендуется пользоваться им в случае, если все остальные шаги не помогли.
+ простое восстановление с гарантией
— потеря данных и джейлбрейка
ˇПакет, который вы собираетесь установить, конфликтует с другим уже установленным ( в сообщении об ошибке как раз указывается с каким именно файлом происходит конфликт и в состав какого пакета этот файл входит ). Поэтому избавиться от данной ошибки можно, удалив эту конфликтующую программу ( в Cydia переходим во вкладку «Установлено», ищем конфликтующий пакет, жмем на него и в правом верхнем углу жмем «Удалить» )
- Скачиваем Terminal.ipa
- Устанавливаем скачанный файл с помощью Cydia Impactor: Установка *.deb и *.ipa
- Скачиваем iFunbox с офф-сайта: http://www.i-funbox.com/
- Затем качаем и разархивируем архив скачать
- Переносим папку ‘lib’ (проверьте, что в ‘lib’ лежат уже другие папки, а не снова ‘lib’) в папку ‘iBooks’ через iFunbox (путь к ней будет: /var/mobile/Media/Books).
Для доступа к ней вам НЕ понадобится root (AFC 2) - Запустите MobileTerminal на устройстве. (без джейлбрейка не запустится)
Решить данную проблему можно несколькими способами:ˇ
С помощью файлового менеджера (iFile или Filza File Manager — на девайсе, iFunBox [PC] — на ПК) переходим в файловую систему iOS:
— Переходим в директорию /var/lib/dpkg/. В этой директории видим файлы: available, availble-old, status, status-old
— Переименовываем файл «available» в «available-bak«
— Переименовываем файл «status» в «status-bak«
— Переименовываем файл «available-old» в «available«
— Переименовываем файл «status-old» в «status«
— Запускаем Cydia и ждем, когда полностью загрузится и пробуем установить любой твик.
Если файлов «available-old» и «status-old» у вас нет, смотрите следующий способ
- Открываем командную строку
- Входим в режим суперпользователя
- Далее вводим
- Открываем любой файловый менеджер
- Идем по адресу /var/lib/dpkg и копируем файлы available и status на компьютер (или в любую другую папку на девайсе). Т.е. делаем backup этих файлов.
- Далее скачиваем архив
available+status.zip ( 10,16 КБ )
Распаковываем его. - Копируем с заменой распакованные файлы из архива в /var/lib/dpkg
Копировать именно с заменой нужно для того, чтобы не слетели права доступа и собственности — файлы «available» и «status» изначально имеют нужные права. Поэтому когда мы копируем файлы с заменой, эти права сохраняются. А когда мы переименовали файлы на девайсе (в, скажем, status.bak и available.bak), а затем залили из архива, то наши новые файлы available и status будут уже иметь права доступа и собственности совершенно другие, что приведет к дееспособности Cydia. В общем, заливаем файлы из архива на девайс поверх старых! - Запускаем Cydia
ˇОшибка вызвана тем, что Cydia может индексировать только 65535 пакетов. Т.е. в сумме во всех репозиториях на вашем девайсе должно хранится пакетов менее этой цифры.
Таким образом, всё, что вам не обходимо сделать, это удалить репозиторий с большим количеством пакетов (например, repo.insanelyi.com)
Примечание: начиная с Cydia 1.1.10 , данные ограничения в Cydia отсутствуют!
Источник
Cydia не работают твики
Только для девайсов с jailbreak-ом!
Инструкции по получению джейлбрейка для своей iOS смотрите в этом разделе:
[FAQ] Путеводитель по инструкциям для получения джейлбрейка
Для решения некоторых проблем вам могут понадобится:
ˇЗаходите в Режим Safe Mode (безопасный режим), после чего идете в Cydia и удаляете проблемный твик.
— Идете по пути /Library/MobileSubstrate/DynamicLibraries ˇ
— По очереди переименовываете твики ( НАЗВАНИЕ_ТВИКА.dylib переименовываем, например, в НАЗВАНИЕ_ТВИКА.disabled ) и перезагружаете девайс.
Т.е. переименовали один твик, перезагрузились. Переименовали следующий, перезагрузились.
Таким образом, вы найдете твик, из-за которого произошел сбой работы системы.
Обнаружив проблемную программу, вы сможете удалить ее через Cydia
ˇ
Как видите у меня есть репозиторий с названием «vk.com», а добавился он таким образом из-за того что ссылка была скопирована с социальной сети Вконтакте. И так приступим к удалению данного репозитория:
Для этого на понадобится:
— iFile или Filza File Manager (если редактируем на устройстве);
— iFunBox [PC] или iTools [РС] (если редактируем на ПК)
Через текстовый редактор открываем файл /User/Library/Caches/com.saurik.Cydia/ sources.list
(в старых версиях Cydia /var/lib/cydia/ metadata.plist
( если используете iFunBox [PC] или iTools [РС] , файлы сначала скачиваем на компьютер и открываем через программу plist Editor Pro [PC] . После редактирования закидываем файлы обратно на девайс )
Находим строки связанные с «ненужным репозиторием» и удаляем их.
Т.е. удаляем строчки с » deb. » по » «.
Нажимаем сохранить. Перезапускаем Cydia и все — репозиторий удален.
Внимание! В новых версиях Cydia необходимо редактировать файл com.saurik.Cydia.plist , который находится в директории /User/Library/Preferences .
Если у вас не хватает навыков редактирования plist-файлов, просто удалите этот файл com.saurik.Cydia.plist и перезапустите Cydia (а лучше перезагрузите устройство). Но в данном случае загрузятся только стандартные репозитории, все пользовательские (включая неудаляемый ранее) удалятся.
- Для Uncover iOS 12 после удаления нужной строчки зайдите в приложение Uncover
- Далее в Настройки и поставьте ползунок на «Reset Cydia Cashe”
- После вернитесь на главную вкладку
- Сделайте “Re-Jailbreak”. Иначе репозиторий ссылкой так и останется висеть, даже после редактирования .plist
В некоторые репозитории Cydia встроена реклама. Реклама эта в виде javascript-a и перенаправляет пользователя с Cydia в AppStore.
Говоря простым языком, бегаем мы по репозиториям Cydia, смотрим различные приложения, а потом бац! и нас выкидывает в AppStore, где предлагают установить на девайс какую-нибудь ненужную программулину.
Вернемся к скриншоту.
В окошке у пользователя Cydia спрашивает, что делать с такими редиректами — открывать AppStore или нет. Если мы хотим, чтобы Cydia нас перенаправляла, значит нужно нажать «Allow». Если мы хотим отказаться от перенаправлений — жмем «Отмена».
Рекомендую нажать именно «Отмена», а также ознакомиться с темой [FAQ] Как убрать рекламу — в ней полностью раскрыт вопрос о рекламе на девайсе (в том числе и Cydia)!
1. Заходим в /var/lib/dpkg/
2. Открываем status через текстовый редактор.
Ищем тот твик, из-за которого произошла ошибка.
Удаляем полностью блок, содержащий в себе данные об установленном пакете.
Пример с пакетом OpenSSH: (вы, соответственно, ищете тот, из-за которого произошла ошибка)
| |
3. Перезапускаем Cydia (а лучше перезагрузить устройство)
4. Если после этого Сидия не заработала, делаем тоже самое с файлом available ( /var/lib/dpkg/ )
Допустим, у нас вылезла ошибка:
По первому способу:
Переустанавливаем deb-пакет программы bossios8 (com.macciti.bossios8.deb)
По второму способу:
Редактируем /var/lib/dpkg/ status
| |
По третьему способу:
Вводим в командной строке:
ˇ
Ошибка вызвана тем, что Cydia не может обнаружить deb файл, т.к. он не скачался полностью из репозитория. Поэтому вариантов решения проблемы два:
- Открываем Cydia и идем во вкладку Sections (Источники) и жмем кнопку Refresh (Обновить), после чего пробуем установить программу (ранее из-за которой была вызвана ошибка) заново. Если ошибка и в этот раз не пропадет, нужно немного подождать, скорее всего, репозиторий перегружен из-за большого наплыва пользователей.
- Вариант для более продвинутых. Устанавливаем необходимые файлы вручную.
Скачиваем на 4PDA или любом сайте программу, из-за которой была вызвана ошибка, в формате deb и устанавливаем одним из следующих способов [FAQ] Установка *.deb и *.app
Примечание: Если вы устанавливали, скажем, программу Activator а ошибка вылезла, допустим, об осутствующем файле com.saurik.substrate.safemode, это означает, что вам необходимо помимо самого твика (Activator) скачать и зависимости к нему. В данном случае это com.saurik.substrate.safemode
ˇ
Установщик не может записать информацию на диск. Скорее всего, на девайсе просто недостаточно дискового пространства (в систем разделе или в пользовательском, или и то, и другое).
Что делать?
1. Нужно посмотреть сколько места осталось (в Cydia «жмем на вкладку Cydia — Хранилище — Хранилище» или через сторонние программы, (например, через Disk Pie), и если его действительно нет, удаляем тяжелые файлы из аппарата (темы, ненужные твики и пр. Если пользуемся файловыми менеджерами типа iFile, очищаем корзину)
После чистки пробуем переустановить программу, которую пытались установить ранее.
2. Если проблем с дисковым пространством нет, пробуем переустановить Cydia Installer
+ все данные сохраняются
— требуется заранее установленный пакет терминала (для запуска на команд с устройства) или пакеты OpenSSH и OpenSSL (для запуска команд с ПК), или AppSync (для установки терминала без Cydia)
- На девайсе с помощью Filza File Manager или iFile
- На ПК с помощью iFunBox, iTools или WinSCP
- Идем в /var/lib/dpkg/updates
- Удаляем все содержимое (предварительно сделав backup)
- Перезагружаем устройство
При установленном на устройстве пакете OpenSSH пользователи iFunBox также могут воспользоваться решением «1. С помощью командной строки«
+ никакие данные не теряются
— требуется заранее установленный файловый менеджер (если выполняем на девайсе) или afc2add (или его аналог — Apple File Conduit «2») — если выполняем на ПК.
Воспользуйтесь Semi-Restore for iOS — все пользовательские данные будут удалены, на выходе получите чистое устройство с джейлбрейком.
+ простое восстановление, джейлбрейк сохраняется
— потеря пользовательских данных, требуется заранее установленный пакет OpenSSH, не для всех версий iOS
Самый простой вариант: введите устройство в режим DFU и восстановите прошивку. При этом джейлбрейк и все данные будут потеряны. Убойный способ, рекомендуется пользоваться им в случае, если все остальные шаги не помогли.
+ простое восстановление с гарантией
— потеря данных и джейлбрейка
ˇПакет, который вы собираетесь установить, конфликтует с другим уже установленным ( в сообщении об ошибке как раз указывается с каким именно файлом происходит конфликт и в состав какого пакета этот файл входит ). Поэтому избавиться от данной ошибки можно, удалив эту конфликтующую программу ( в Cydia переходим во вкладку «Установлено», ищем конфликтующий пакет, жмем на него и в правом верхнем углу жмем «Удалить» )
- Скачиваем Terminal.ipa
- Устанавливаем скачанный файл с помощью Cydia Impactor: Установка *.deb и *.ipa
- Скачиваем iFunbox с офф-сайта: http://www.i-funbox.com/
- Затем качаем и разархивируем архив скачать
- Переносим папку ‘lib’ (проверьте, что в ‘lib’ лежат уже другие папки, а не снова ‘lib’) в папку ‘iBooks’ через iFunbox (путь к ней будет: /var/mobile/Media/Books).
Для доступа к ней вам НЕ понадобится root (AFC 2) - Запустите MobileTerminal на устройстве. (без джейлбрейка не запустится)
Решить данную проблему можно несколькими способами:ˇ
С помощью файлового менеджера (iFile или Filza File Manager — на девайсе, iFunBox [PC] — на ПК) переходим в файловую систему iOS:
— Переходим в директорию /var/lib/dpkg/. В этой директории видим файлы: available, availble-old, status, status-old
— Переименовываем файл «available» в «available-bak«
— Переименовываем файл «status» в «status-bak«
— Переименовываем файл «available-old» в «available«
— Переименовываем файл «status-old» в «status«
— Запускаем Cydia и ждем, когда полностью загрузится и пробуем установить любой твик.
Если файлов «available-old» и «status-old» у вас нет, смотрите следующий способ
- Открываем командную строку
- Входим в режим суперпользователя
- Далее вводим
- Открываем любой файловый менеджер
- Идем по адресу /var/lib/dpkg и копируем файлы available и status на компьютер (или в любую другую папку на девайсе). Т.е. делаем backup этих файлов.
- Далее скачиваем архив
available+status.zip ( 10,16 КБ )
Распаковываем его. - Копируем с заменой распакованные файлы из архива в /var/lib/dpkg
Копировать именно с заменой нужно для того, чтобы не слетели права доступа и собственности — файлы «available» и «status» изначально имеют нужные права. Поэтому когда мы копируем файлы с заменой, эти права сохраняются. А когда мы переименовали файлы на девайсе (в, скажем, status.bak и available.bak), а затем залили из архива, то наши новые файлы available и status будут уже иметь права доступа и собственности совершенно другие, что приведет к дееспособности Cydia. В общем, заливаем файлы из архива на девайс поверх старых! - Запускаем Cydia
ˇОшибка вызвана тем, что Cydia может индексировать только 65535 пакетов. Т.е. в сумме во всех репозиториях на вашем девайсе должно хранится пакетов менее этой цифры.
Таким образом, всё, что вам не обходимо сделать, это удалить репозиторий с большим количеством пакетов (например, repo.insanelyi.com)
Примечание: начиная с Cydia 1.1.10 , данные ограничения в Cydia отсутствуют!
Источник