Комментарии 18
Статья интересная, но с орфографией — беда.
+5
Очень интересно!
Бог с ней, с орфографией, но хотелось бы больше подробностей работы ОС.
Если можно заказывать, то очень хотелось бы поковырять загрузку и помигать светодиодом, подключёнными к пинам разъёма загрузки.
Бог с ней, с орфографией, но хотелось бы больше подробностей работы ОС.
Если можно заказывать, то очень хотелось бы поковырять загрузку и помигать светодиодом, подключёнными к пинам разъёма загрузки.
+4
>Изменим число иконок по вертикали на 6, для этого вычисляем смещение команды, снова патчим файл и загружаем его на устройство.
У вас же вертикаль и горизонталь в тексте поперепутаны.
У вас же вертикаль и горизонталь в тексте поперепутаны.
+3
На iPhone 2g встает андроид. Старый, но встает.
Если хочешь поиздеваться поставь)
Если хочешь поиздеваться поставь)
+1
НЛО прилетело и опубликовало эту надпись здесь
Странная статья какая-то. Зачем-то полезли в дебри патчинга инструкций, когда все достигается рантайм хуками ObjC методов через подгрузку динамической библиотеки в процесс SpringBoard. Собственно, все модификации так и делаются. Патчами никто на iOS не занимался всерьез.
Что до документации, ее полно на самом деле. Есть вики с очень полезными подсказками и куча ответов на стэке, где я и сам обитаю. Все разбросано конечно по сети, но ищется без проблем.
С минимальной вероятностью. Между версия эпл лопатит компоненты системы по полной программе. Где-то до 7-8 версии iOS внутри вообще творился жутчайший бардак в плане архитектуры. Кругом были монструозные демоны, которые делали все что только можно, да еще написано это все было хрен знает как. SpringBoard конечно таким до сих пор остался, но в остальном с каждой версией все больше выделяется микросервисов — пачками плодятся вспомогательные демоны, которые делают тоже самое, но удаленно по XPC. В этот же момент кардинально упростилась и модификация системы. Вносить серьезные изменения в поведение SpringBoard'a было мучительно больно до этого, т.к. приходилось переделывать десятки методов с взаимосвязями между собой.
Что до документации, ее полно на самом деле. Есть вики с очень полезными подсказками и куча ответов на стэке, где я и сам обитаю. Все разбросано конечно по сети, но ищется без проблем.
данные модификации будут работать и на других версиях(может быть).
С минимальной вероятностью. Между версия эпл лопатит компоненты системы по полной программе. Где-то до 7-8 версии iOS внутри вообще творился жутчайший бардак в плане архитектуры. Кругом были монструозные демоны, которые делали все что только можно, да еще написано это все было хрен знает как. SpringBoard конечно таким до сих пор остался, но в остальном с каждой версией все больше выделяется микросервисов — пачками плодятся вспомогательные демоны, которые делают тоже самое, но удаленно по XPC. В этот же момент кардинально упростилась и модификация системы. Вносить серьезные изменения в поведение SpringBoard'a было мучительно больно до этого, т.к. приходилось переделывать десятки методов с взаимосвязями между собой.
+1
НЛО прилетело и опубликовало эту надпись здесь
Вижу взгляд знатока. Что скажете про современный iOS внутри?
0
С тех пор как с джейлами стало туго перестал туда лезть. Но, если прослеживать тренд до 9 версии включительно, то все шло в одном и том же направлении. Большие демоны бьются на более мелкие, которые порой не работают все время, а запускаются по требованию (любопытно, что launchd начал даже ругаться на демоны, которые стартуют с системой и работают постоянно). Все больше кода выделяется в общие фреймворки, которые переиспользуются системой.
В этом плане очень большая работа была проделана с подсистемами сообщений и звонков. До версии 8 что ли это все было очень криво. Там да сям везде понемногу все занимаются этим, а sprinboard как обычно помойка для кода со всей системы. Теперь несколько конкретных фреймворков и парочка демонов небольших, которые делают всю работу на низком уровне. Это логично, потому что все вели к тому, что появился CallKit и более тесная интеграция VoIP приложений.
Это еще и безопасность увеличивает. Раньше было как, огромный демон с тонной entitlement'ов и никакущими ограничениями песочницы. Никак не ограничить такого монстра в правах, когда он всю подсистему на себе тащит. Теперь же маленькие XPC демоны выполняют конкретные задачи и требуют для этого парочку entitlement'ов, да еще находятся в строгих песочницах нередко. В этом плане очень порадовал механизм remote view controller, когда у тебя в приложении отображается какой-то контроллер, а на самом деле он выполняется в другом процессе и по XPC передает сообщения для синхронизации состояния. Так реализован, к пример, диалог отправки SMS сообщений. Раньше код выполнялся в контексте твоего же приложения и неизбежно люди начали скрытно отправлять SMS сообщения из AppStore приложений. Теперь это окно это remote view controller в специальном XPC демоне со специальным entitlement. При всем желании ничего толком не сделаешь больше.
Естественно это не может не влиять на прожорливость системы. Количество системных демонов и XPC сервисов растет как на дрожжах. Но тут других вариантов не видно.
В этом плане очень большая работа была проделана с подсистемами сообщений и звонков. До версии 8 что ли это все было очень криво. Там да сям везде понемногу все занимаются этим, а sprinboard как обычно помойка для кода со всей системы. Теперь несколько конкретных фреймворков и парочка демонов небольших, которые делают всю работу на низком уровне. Это логично, потому что все вели к тому, что появился CallKit и более тесная интеграция VoIP приложений.
Это еще и безопасность увеличивает. Раньше было как, огромный демон с тонной entitlement'ов и никакущими ограничениями песочницы. Никак не ограничить такого монстра в правах, когда он всю подсистему на себе тащит. Теперь же маленькие XPC демоны выполняют конкретные задачи и требуют для этого парочку entitlement'ов, да еще находятся в строгих песочницах нередко. В этом плане очень порадовал механизм remote view controller, когда у тебя в приложении отображается какой-то контроллер, а на самом деле он выполняется в другом процессе и по XPC передает сообщения для синхронизации состояния. Так реализован, к пример, диалог отправки SMS сообщений. Раньше код выполнялся в контексте твоего же приложения и неизбежно люди начали скрытно отправлять SMS сообщения из AppStore приложений. Теперь это окно это remote view controller в специальном XPC демоне со специальным entitlement. При всем желании ничего толком не сделаешь больше.
Естественно это не может не влиять на прожорливость системы. Количество системных демонов и XPC сервисов растет как на дрожжах. Но тут других вариантов не видно.
+1
Здорово, спасибо! А если сравнивать с Андроидом — небо и земля?
0
К сожалению, с ним я не работал от слова вообще. Думаю, что там ситуация не сильно отличается. Да и как-то интереса к платформе никогда не было. По виду, привычный себе линукс. iOS внутри все таки довольно интересная и уникальная штука. Даже в сравнении с OSX, которую лишь постепенно подтягивают на теже механизмы. Недавно вон bluetooth смотрел — удивлен, что у них сильно разные реализации стэков. В OSX явно обросший мхом уже код, который порой такую фигню творит, а от того криво работает. В iOS уже написано как полагается.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Реверс-инжинеринг iPhone 2G