Может ли джейлбрейк пережить установку нового IPSW?
У меня есть явление здесь на iPad 1. Он работал под управлением 4.3.2, и к нему был применен джейлбрейк. Позже он был обновлен до 4.3.5, который все еще работает.
Я написал небольшое тестовое приложение, чтобы узнать, смогу ли я обнаружить взломанное устройство. Я использую следующие тесты:
- Используйте [NSFileManager fileExists], чтобы проверить, существует ли / private / var / lib / apt
- Используйте [NSFileManager fileExists], чтобы проверить, существует ли /Applications/Cydia.app
Идея такова: на устройстве, которое не взломано, доступ не будет выполнен в обоих случаях, так как приложение не может выйти из своей песочницы. Если какой-либо тест вернет ДА, я предполагаю джейлбрейк. Я проверил это на нескольких непрерывных устройствах, и ни одно из них не доступно. Я также проверил на взломанном iPhone 3GS, и оба могут быть доступны.
Я попробовал iPad 1 с 4.3.5, и Cydia не установлена, поэтому вторая проверка, очевидно, не удалась, но первая прошла! fileExists возвращает YES для "/private/var/lib/apt"! Как это возможно? Кто-нибудь может объяснить?
2 ответа
Я не могу полностью объяснить это, но я столкнулся с похожими результатами.
Раньше у меня был взломанный iPod на iOS 3, и я обновлял его до iOS 4, после джейлбрейка мои настройки в Cydia все еще присутствовали. При установке новой прошивки iTunes по-прежнему показывает ~500 МБ других данных, поэтому я предполагаю, что не все перезаписывается / удаляется во время обновления.
На самом деле, позвольте мне объяснить, почему и как это работает:
IPhone / любое устройство iOS имеет 2 отдельных раздела:
/ dev / disk0s1 смонтирован в / (около 1 ГБ), корневой раздел:
Он содержит ОС (/ System, / Applications, / usr, / sbin, / dev, / Library) и по умолчанию монтируется только для чтения.
/ dev / disk0s2 смонтирован в / private / var (остальное пространство), пользовательский раздел:
Он содержит все пользовательские данные (в / private / var / mobile /), такие как: Приложения, Настройки
В настоящее время все инструменты для джейлбрейка перемещают все приложения и т. Д. Из корневого раздела в / private / var / stash, чтобы сэкономить место в корневом разделе. Затем они возвращаются из исходного местоположения.
При запуске обновления iOS пользовательский раздел остается практически нетронутым, восстанавливается только корневая файловая система. Только если вы запустите полное восстановление, все будет удалено. Затем iOS на лету воссоздает файловую систему / private / var.
Но, пожалуйста, воздержитесь от использования такого рода кода, так как не все люди, которые взломали свои устройства iOS, используют пиратские приложения, и если вы вставите такой код в свое приложение, это только соблазнит детишек сценариев взломать его снова.