不反对任何H2CO3 所说的,但要添加一些进一步的澄清......
使用 Xcode安装在/private/var/mobile/Applications/
(†) 中的应用程序将以用户mobile
权限运行,即使在越狱手机上也是如此。
即使在越狱的手机上,安装到/private/var/mobile/Applications/
(†) 的应用程序也将被沙盒化,几乎(‡) 就像已入狱手机上的应用程序一样。因此,即使这些文件归用户所有,也不要读取其他(正常)应用程序的数据mobile
。
有关 Cydia 等应用程序以 root 身份运行的过程的详细描述,请参阅此答案。或者,只需 ssh 进入你的手机,然后看看/Applications/Cydia.app/
你自己。
如果您只是将应用程序(不执行H2CO3 建议的操作)复制/安装到/Applications/
,它不会被沙箱化,但仍会以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
(‡) 这是一个很好的讨论,由 Saurik 提供,关于不同的越狱如何影响沙盒。长话短说:这取决于。
(†) 更新:在最新版本的 iOS 中,第 3 方应用程序的位置已移至/var/mobile/Containers
,随后移至/var/containers/
,但仍然存在相同的基本沙盒问题。