iPhoneシステムフォルダにファイルをコピーします。
質問
私はジェイルブレイクiPhoneのために開発しています。私は、書き込み(コピー)のみROOTが書き込みアクセス権を持っているにiPhoneのシステムフォルダにファイル(/ライブラリ/ LaunchDaemons)にする必要があります。どのように私は私のコードを通じて、このようなフォルダにファイルを書き込むことができます。私は私がNSFileManagerのcopyItemAtPath使用することができます知っている:ファイルをコピーするtoPath方法を、私は、このようなフォルダの書き込み権限を持っていけないと私は書く傾ける
。任意の提案??
解決
私はこの質問への答えを見つけたと思います。システムに書き込むためには、あなたがそのフォルダに書き込み権限を持っている必要がありますフォルダ。私はデーモンが動作することにする/システム/ライブラリ/ LaunchDaemonsにそのデーモンをコピーしなければならなかったので、私のアプリは、デーモンは、それに接続さでした。私はJBのiphoneのために開発していますし、人々はCydiaのを使用して、私のアプリをインストールしようとしているように、なぜCydiaのは、適切な場所に私のアプリのファイルをインストール作るためではありません。私はCydiaのは、/システム/ライブラリ/ LaunchDaemonフォルダにデーモンのファイルをコピーするために作られました。今の質問はCydiaのはどこのファイルを貼り付けるには知っている方法です。答えはちょうど.debファイル内の適切なフォルダを作成し、Cydiaのは、.debファイル内のフォルダにファイルを貼り付けます、簡単です。
たとえば、あなたは、デーモンを持って、あなたはCydiaのは/ LaunchDaemons /システム/ライブラリに貼り付けたい、の.deb
を行う前に、このようなファイル構造を作る場合+- MyApp
+- Applications
+Myapp.app
+-DEBIAN
-control
+-System
+-Library
+-LaunchDaemons
+- com.myLaunchDaemon.plist
のCydiaのアプリをインストールしている間は、システム/ライブラリ/ LaunchDaemonsでcom.myLaunchDaemon.plistファイルを貼り付け、再起動し、あなたが行ってもいいですします。
他のヒント
あなたのアプリはrootまたはsetuidをrootとして実行することができます。
代わりにrootとしてあなたの全体のアプリを実行するのには、ファイルをインストールします小さなヘルパーツールを持っているより良いデザインです。そして、唯一のヘルパーツールをrootとして実行していること。
SUIDバイナリについての詳細情報をチェックしてください http://en.wikipedia.org/wiki/Setuid 良いスタートとしてます。