Можно ли запустить приложение для iPhone с правами root?

StackOverflow https://stackoverflow.com/questions/61346

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Я прочитал этот вопрос на форуме Apple, который меня разочаровал:

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Единственные варианты, которые у вас есть, это

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top