基本的に、iPhone アプリからコンソール スクリプト (.sh) を実行できるかどうか疑問に思っています。スクリプトは、私が設定したリポジトリからプログラムをダウンロードし、再起動し、一定時間後にプログラムを削除して再度再起動するように記述されているため、ルート権限が必要であり、ユーザーがプログラムの実行時間を設定できるという点でインタラクティブです。保持されます。私は bash スクリプトを作成しましたが、モバイル端末から呼び出すと正常に動作しますが、(脱獄した) アプリ内から (モバイル端末 / SSH / Bossprefs を使用せずに) これを行う方法はありますか? または、これを達成するための全体的なより良い方法はありますか? ありがとう
5 に答える
Jasarien はまさにここにあり、かなり制限されており、すべてのアプリがサンドボックス化されていることは周知のとおりです。ただし、Objective-C は使用できる C 上に構築されているだけなので、不可能ではありません。
system("ls");
基本的なコマンドを実行するls
には、gdb の出力を見ると機能します。また、 popen を使用してストリームをアプリに取得し、データを操作することもできます。
ジェイルブレイクされた電話を使用しているため、ほとんど制限がありません。ただし、iPhone API にスクリプトの実行を許可するものがあるかどうかは別の問題です。また、使用するものはすべてサポートされず、ソフトウェアの更新で変更、動作停止、または削除される可能性があります。
また、おそらくこれはすでに知っているか、気にしないでしょうが、BASH スクリプトの実行を開始すると、App Store に対する Apple のレビュー プロセスを通過することはできません。解釈されたコードは禁止されています。
私はOSXでそれを行う方法を調べます.iPhoneでそれがどのように行われる可能性がありますが、「通常の」iPhone(ジェイルブレイクされていません)
シェルから出力とエラーメッセージを取得したい場合は、NSTask を使用することを検討してください。
実は
system('ls /'); system('ls');としてより良い結果が得られます。