В последний раз я проверял, приложения для песочницы не могут даже fork()
. Я не уверен, что они могут позвонить execve()
. Если они не могут этого сделать, просто позвоните execve()
, и это сработает.
Я не уверен, насколько джейлбрейк мешает этому. Возможен джейлбрейк, который позволяет запускать неподписанные приложения из неподписанных приложений, но ведет себя нормально, если подписчик подписан.
Вполне возможно "упаковать" исполняемый файл в библиотеку: просто наберите static unsigned char const data [] = { ... };
, запишите его в файл chmod()
и попробуйте выполнить его.
Однако, в конце концов, это может оказать плохую услугу вашим пользователям. Взломанный телефон не означает, что ваше приложение было пиратским. Если вы не знаете кого-то с джейлбрейкнутым телефоном, который готов провести некоторое тестирование (и тестирование с различными джейлбрейками), вы можете настроить себя на "Это просто сбой!" отзывы.
(И если это произойдет сбой, то кто-то придет и взломать ваше приложение. Лучше быть осторожным и отслеживать «проблему», прежде чем решить, нужно ли это исправить.)
Побег из тюрьмы случается чаще, чем вы думаете. Я добавил проверки для MobileSubstrate в наш автоматический скрипт, символизирующий отчет о сбоях, потому что мы видели его в значительной части сбоев. OTOH, доля сбоев, когда приложение установлено в / Applications (который раньше был традиционным для взломанных приложений; возможно, это уже не так), незначительна.