4

作りたいiPhoneアプリのデザインを考えています。考えられる問題の 1 つは、(特定のネットワーク ポートにアクセスするために) このアプリケーションを root として実行する必要があることです。典型的な UNIX アプリでは、setuid を使用してアプリを実行するだけですが、iPhone アプリでそれが可能かどうか疑問に思っています。

Appleのフォーラムでこの質問を読みましたが、落胆しています:

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

Apple がプログラムでできることを制限したいと考えていることは理解していますが、ユーザーが昇格された特権でプログラムを実行する正当な理由はたくさんあります。ここでハッカー ツールを作成しようとしているわけではありません。

脱獄したiPhoneでこれを回避できると確信していますが、それは私が求めているものではありません. 壊れていない iPhone で昇格された権限でアプリを実行する方法はありますか?

(ところで、NDA について私に警告する必要はありません。)

4

3 に答える 3

5

iPhone SDK契約のセクション3.3.4は、サンドボックスの外で作業してはならないことを示唆しています。

Appleはどのアプリケーションを許可するかについていくぶん恣意的であるため、開発を開始する前に必ずAppleに再確認する必要があります。

2.0.xと比較して、サンドボックスの制限は実際には2.1で増加しています。別のアプリケーションのサンドボックスから読み取ることさえできなくなります。そのため、現在アプリの権限を引き上げること可能であっても、将来のリリースでは行われない可能性が非常に高くなります。

于 2008-09-14T14:22:54.487 に答える
2

あなたが持っている唯一のオプションは

  1. iPhoneでrootとしてアプリケーションを実行します

  2. アプリケーションのsetuidビットと所有者ルートを設定します。

私はそれらのどれもAppleによって祝福されているのを見ることができません。

特権で何をしたいかにもよると思います。運が良ければ、よりきめ細かい特権を利用できるかもしれませんが、1024を超えるポートを選択する必要があります。

于 2008-09-14T14:24:32.957 に答える
0

通常のデスクトップ コンピューターでこれを行うことができれば、少しでも問題はありません。iPhone は通常のデスクトップ コンピュータではありません。

デスクトップ コンピューターとは異なり、脱獄せずに iPhone でアプリケーションを入手する唯一の方法は、App Store から入手することです。App Store にアクセスする唯一の方法は、Apple の規則に従うことです。Apple の規則には、「権限昇格禁止」、「サンドボックスからのエスケープ禁止」、および「提供されている既存の API 以外のネットワーク ポートへのアクセス禁止」が明確に含まれています。

あなたがしたいことは不可能です。

于 2008-09-14T19:26:50.390 に答える