Может ли приложение для iPhone запускаться с правами root? - PullRequest
4 голосов
/ 14 сентября 2008

Я думаю о дизайне приложения для iPhone, которое хотел бы создать. Одна из возможных проблем заключается в том, что это приложение должно работать от имени пользователя root (для доступа к определенным сетевым портам). В типичном приложении UNIX я просто запустил бы приложение с setuid, но мне интересно, возможно ли это с приложением iPhone.

Я прочитал этот вопрос на форуме Apple, что обескураживает:

http://discussions.apple.com/thread.jspa?threadID=1664575

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

Я уверен, что смогу обойти это на сломанном джейлфоне iPhone, но это не то, что мне нужно. Есть ли способ запустить приложение с повышенными правами на непрерывном iPhone?

(Кстати, нет необходимости предупреждать меня о NDA.)

Ответы [ 3 ]

5 голосов
/ 14 сентября 2008

Раздел 3.3.4 Соглашения iPhone SDK предполагает, что вы не должны работать вне своей песочницы.

Учитывая, что Apple несколько произвольно выбрала для приложений, которые они разрешают , вам определенно следует проверить их до того, как начнет разработку.

По сравнению с 2.0.x, ограничения песочницы фактически увеличились в 2,1 ; Вы больше не можете даже читать из песочницы другого приложения. Таким образом, даже если в настоящее время возможно повысить привилегии вашего приложения, скорее всего, это не произойдет в будущем выпуске.

2 голосов
/ 14 сентября 2008

Доступны только опции

  1. Запустите приложение от имени пользователя root на iphone

  2. Установить бит setuid приложений и владельца root.

Я не вижу, чтобы кто-то из них был благословлен Apple.

Полагаю, это зависит от того, что вы хотите сделать с привилегиями, если вам повезет, возможно, будут доступны более тонкие привилегии, но на самом деле вы должны выбрать порт выше 1024.

0 голосов
/ 14 сентября 2008

Не имеет значения один бит, если вы можете сделать это на вашем обычном настольном компьютере. IPhone не является обычным настольным компьютером.

В отличие от настольного компьютера, только способ получить приложение на iPhone без джейлбрейка - это получить его из App Store. единственный способ попасть в App Store - это следовать правилам Apple, а правила Apple четко включают «отсутствие повышения привилегий», «отсутствие выхода из песочницы» и «отсутствие доступа к сети порты вне существующих предоставленных API ".

То, что вы хотите сделать, это невозможно .

...