Копировать файлы в системные папки iPhone - PullRequest
0 голосов
/ 26 января 2010

Я разрабатываю для взломанного iPhone. Мне нужно записать (скопировать) файл в системные папки iPhone (/ Library / LaunchDaemons), в которые только ROOT имеет доступ для записи. Как я могу записать файл в такие папки через мой код. Я знаю, что могу использовать метод copyItemAtPath: toPath NSFileManager для копирования файла, но я не могу писать, поскольку у меня нет разрешения на запись в такие папки.

Любые предложения ??

Ответы [ 3 ]

1 голос
/ 10 февраля 2010

Я думаю, что нашел ответ на этот вопрос. Для записи в системные папки необходимо иметь разрешение на запись в эту папку. К моему приложению был присоединен демон, поэтому мне пришлось скопировать этот демон в / System / Library / LaunchDaemons, чтобы этот демон работал. Так как я занимаюсь разработкой для JB iphone, и люди собираются устанавливать мое приложение с помощью Cydia, почему бы не заставить Cydia устанавливать файлы моего приложения в правильные места. Я сделал Cydia, чтобы скопировать файл Daemon в папку / System / Library / LaunchDaemon. Теперь вопрос в том, как Cydia будет знать, куда вставлять файлы. Ответ прост, просто создайте правильные папки в файле .deb, и cydia вставит файлы, расположенные в папках внутри файла .deb.

Например, если у вас есть демон и вы хотите, чтобы Cydia вставил его в / System / Library / LaunchDaemons, создайте структуру файла следующим образом, прежде чем создавать .deb

+- MyApp
   +- Applications
      +Myapp.app
   +-DEBIAN
    -control
   +-System
     +-Library
       +-LaunchDaemons
         +- com.myLaunchDaemon.plist

Cydia при установке приложения вставит файл com.myLaunchDaemon.plist в System / Library / LaunchDaemons, перезагрузится, и все готово.

0 голосов
/ 26 января 2010

Вместо того, чтобы запускать все приложение от имени пользователя root, гораздо лучше создать небольшой вспомогательный инструмент, который установит файлы. Тогда только этот вспомогательный инструмент должен запускаться от имени пользователя root.

Для получения дополнительной информации о двоичных файлах SUID отметьте http://en.wikipedia.org/wiki/Setuid как хорошее начало.

0 голосов
/ 26 января 2010

Ваше приложение может работать как root или setuid root.

...