2013-04-12 7 views
5

iOSデバイスが脱獄されると、脱獄アプリを(theosを使って)ビルドすることができ、プリロードされたアプリがルート特権で実行される/Applicationsディレクトリにインストールされます。アプリケーションがXcodeでビルドされている場合、インストールされると、アップルのサンドボックスが(脱獄の前に)強制されることになっている/private/var/mobile/Applications/フォルダに入ります。jailbrokenしたら、iOSアプリはroot権限で実行されますか?

だから、私は質問があります:ジェイルブレイクデバイス用

  1. は、/private/var/mobile/Applications/中のアプリはroot権限でまたはmobileユーザー権限で実行されますか?

  2. Androidの場合、一度根っこになると、アプリはsuコマンドを実行することによってルート権限を取得する必要があります。 iOSにも同様のケースがありますか?

これら2つの開発オプション(Theos/Xcode)の違いと、アプリケーションが実行できる操作にどのような影響を与えるかについてお知りになりたいと思います。

+2

この質問はトピックとはみなされません。アプリケーションが実行する権限は、どの操作が正常に完了するか(ファイルのオープン/書き込みなど)に影響します。下の**の両方の答えに示すように、アプリの特権に影響する手順は単に* sysadmin *のタスクではありません。ソース**コード**、起動スクリプト、おそらくInfo.plistファイルも変更する必要があります。これはObjective-C/Cとシェル**コード**を使用して実装されたプログラマータスクです。 – Nate

+0

jailbrokenされたiOSデバイスで 'su'が動作しないのをなぜ待っていますか? –

答えて

7

H2CO3 saidで不同意、しかし、いくつかの更なる明確化を追加しない...

  • アプリ(&ダガー;)のXcodeでも、ジェイルブレイク携帯電話で、ユーザーmobile権限で実行されます。 /private/var/mobile/Applications/にインストールさえジェイルブレイク電話で

  • 、アプリ(&ダガーが;);投獄電話アプリのように(&ddagger)ほぼをサンドボックス化されるであろう。したがって、ユーザーが所有するファイルであっても、他の(通常の)アプリのデータを読み取ることはありませんmobile

  • Cydiaのようなアプリがルートとして実行するプロセスの良い説明については、see this answer。または、あなたの電話機にsshを入れて、/Applications/Cydia.app/を見てください。

  • あなたは、単に/ /Applications/に(何H2CO3 suggestedを実行せずに)アプリをインストールコピーした場合、それはサンドボックス化されませんが、それはまだmobile(UID = 501)権限で実行されます:

iPhone5:~ root# cd /Applications 

iPhone5:/Applications root# ls -altr ./HelloJB.app/ 
total 220 
-rw-r--r-- 1 root wheel 711 Apr 3 20:36 entitlements.xml 
-rw-r--r-- 1 root wheel 297 Apr 3 20:36 entitlements-daemon.xml 
-rw-r--r-- 1 root wheel 7972 Apr 3 20:36 embedded.mobileprovision 
-rw-r--r-- 1 root wheel 58755 Apr 3 20:36 date.zip 
-rw-r--r-- 1 root wheel 485 Apr 3 20:36 ResourceRules.plist 
-rw-r--r-- 1 root wheel  8 Apr 3 20:36 PkgInfo 
-rw-r--r-- 1 root wheel 1226 Apr 3 20:36 Info.plist 
-rw-r--r-- 1 root wheel 10960 Apr 3 20:36 Icon\@2x.png 
-rw-r--r-- 1 root wheel 8328 Apr 3 20:36 Icon.png 
-rw-r--r-- 1 root wheel 451 Apr 3 20:36 HelloJB.plist 
-rwxr-xr-x 1 root wheel 61088 Apr 3 20:36 HelloJB* 
-rwxr-xr-x 1 root wheel 42688 Apr 3 20:36 HelloDaemon* 
drwxr-xr-x 2 root wheel 136 Apr 3 20:36 en.lproj/ 
drwxr-xr-x 2 root wheel 102 Apr 3 20:36 _CodeSignature/ 
drwxr-xr-x 4 root wheel 544 Apr 3 20:36 ./ 
drwxrwxr-x 54 root admin 1904 Apr 5 02:14 ../ 

iPhone5:/Applications root# ps -Aef | grep HelloJB 
    501 9412  1 0 0:00.00 ??   0:00.33 /Applications/HelloJB.app/HelloJB 

iPhone5:/Applications root# grep mobile /etc/passwd 
mobile:*:501:501:Mobile User:/var/mobile:/bin/sh 

(‡)ここには、good discussion, with input from Saurik, about how different jailbreaks may affect the sandboxがあります。長い話は短い:それは依存する。


(&ダガー;)更新:iOSの最近のバージョンでは、サードパーティ製のアプリの場所は/var/mobile/Containersに移動し、後に/var/containers/が、同じ基本的なサンドボックスの問題が残っているされています。

8

ロングストーリーショート:いいえ。

Jailbreakingは、ルートを取得するために必要な条件ですが、十分ではありません。アプリはデフォルトでまだサンドボックス化されます。

あなたはroot:wheel所有権と755権限を持つ起動シェルスクリプトを作成してroot権限でアプリの実行を作るために何ができるか、そして権限として7555(すなわち設定された「setuidさ」、同じ所有権を使用して、実際の実行可能ファイルを作成しますその後、UIApplicationMain()に電話をかける前に、setuid(0);main()から呼び出してください。 /private/var/mobile/Applications/にインストール

関連する問題