Запуск BASH-скрипта из приложения для iPhone? - PullRequest
4 голосов
/ 24 июня 2009

В основном мне интересно, можно ли запустить консольный скрипт (.sh) из приложения для iPhone. Сценарий написан для загрузки программы из репозитория, который я настроил, перезапустил, затем через заданное время удалил программу и перезапустил снова, поэтому ему нужны привилегии root, и он интерактивен, так как пользователь может установить, как долго программа будет быть сохраненным У меня написан скрипт bash, и он прекрасно работает при вызове с мобильного терминала, но есть ли способ сделать это из (взломанного) приложения (без использования мобильного терминала / SSH / Bossprefs)? Или в целом есть лучший способ добиться этого? Спасибо

Ответы [ 5 ]

3 голосов
/ 26 июня 2009

Jasarien прямо здесь, он довольно сдержан, и, как мы все знаем, все приложения находятся в «песочнице». Но это не невозможно, поскольку Objective-C просто построен на C, вы можете использовать

system("ls");

, чтобы выполнить базовую команду ls, и она работает, если вы посмотрите в свой вывод GDB. Кроме того, вы также можете использовать popen, чтобы заставить приложение потоков работать с данными.

1 голос
/ 26 июня 2009

Я бы посмотрел, как это сделать на OSX, скорее всего, так будет и на iPhone, но, вероятно, вы не найдете никакой документации по iPhone, потому что это не разрешено на «нормальном» iphone. (тот, который не взломан)

1 голос
/ 26 июня 2009

Поскольку вы работаете с джейлбрейкнутым телефоном, вы практически не ограничены. Есть ли в API-интерфейсах iPhone что-то, что позволяет выполнять сценарии, это другой вопрос. Кроме того, все, что вы используете, будет не поддерживаться, и может измениться, перестать работать или будет удалено при обновлении программного обеспечения.

Кроме того, вы, вероятно, уже знаете это, или вам все равно, но вы не пройдете процесс проверки Apple App Store, если начнете запускать сценарии BASH. Интерпретированный код запрещен.

0 голосов
/ 04 октября 2010

вы можете использовать NSTask, если хотите получать выходные данные и сообщения об ошибках из оболочки.

0 голосов
/ 27 июня 2009

На самом деле

система ('ls /'); дает лучший результат как система ('ls');

...