Программа командной строки для взломанной iOS умирает в iPad, но не в iPhone 3G

Я пытаюсь создать программу командной строки для запуска в терминале взломанных устройств iOS.

Для простоты я протестировал простой привет мир:

#include <stdio.h>
int main(int argc, char *argv[]) {
  printf("Hello world!\n");
}

Что я строю с:

/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/ main.c -o hello

Сгенерированный исполняемый файл отлично работает в iPhone 3G с iOS 4.2.1, но в iPad с 4.3.5 он выводит:

Killed: 9

Оба имеют джейлбрейк и могут нормально запускать приложения из Cydia.

Я пробовал выполнять отладку непосредственно на iPad с помощью gdb из Cydia, но gdb завершает работу, когда программа получает сигнал уничтожения.

Как бы то ни было, я действительно пытаюсь создать программу Ledger. У меня он работает на моем iPhone 3G, но когда я попробовал его на iPad, он потерпел неудачу, как указано выше.

Любые идеи?


person MaxM    schedule 23.09.2011    source источник


Ответы (4)


Используйте theos. Это упрощает создание чего-либо для взломанных устройств. Я считаю, что вы можете использовать шаблон инструмента для приложения командной строки.

person edc1591    schedule 23.09.2011
comment
Спасибо! Теос работал, а также привел меня к тому, в чем была проблема. Отсутствовал шаг, подписывающий исполняемый файл, похоже, что iPhone 3G не проверяет, подписан ли код. Теперь я нашел эту статью Саурика, которая объясняет это: saurik.com/id/8 - person MaxM; 23.09.2011
comment
Да, подпись кода может быть сложной задачей. Еще одна причина, по которой theos так хорош, - он все делает за вас. - person edc1591; 23.09.2011
comment
В шаблонах нет параметра командной строки. Самым близким, что я нашел, был твик, и результатом пакета make стал пакет .deb, который я не знаю, как запустить после установки. Как мне просто сделать простой исполняемый двоичный файл? - person frakman1; 17.04.2017

Вы должны либо самостоятельно подписать приложение, либо использовать ldid -S, чтобы обмануть загрузчик iOS.

ldid доступен в командной строке на самом iPhone. Здесь также доступен двоичный файл Mac OS X http://dl.dropbox.com/u/3157793/ldid.

Другой вариант - установить инструменты iOSOpenDev, которые установят все это по умолчанию поверх Xcode.

person Sébastien Stormacq    schedule 26.03.2012

iOSOpenDev расширяет Xcode и предоставляет шаблоны проектов для разработки iOS, такие как инструменты командной строки, которые вы пытаетесь создать вместе с обработкой кода. подписание и создание пакета Debian для Cydia. Стоит взглянуть; Для некоторых может быть проще, чем Теос.

person kokoabim    schedule 22.08.2012

Пожалуйста, закодируйте приложение, а затем установите его .. оно запустится

person iPhoneHelper    schedule 05.01.2012