Вопрос

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

Какие-либо предложения??

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

Решение

думаю, я нашел ответ на этот вопрос.Для записи в системные папки вам необходимо иметь разрешение на запись в эту папку.К моему приложению был подключен демон, поэтому мне пришлось скопировать его в /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, перезагрузится, и все готово.

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

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

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

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

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