Oce*_*lot 5 xcode root jailbreak ios
一旦iOS设备被越狱,我们就可以构建越狱应用程序(使用theos),并将其安装在/Applications预先加载的应用程序以root权限运行的目录中.如果一个应用程序是使用Xcode构建的,一旦安装它,它就会进入/private/var/mobile/Applications/文件夹,该文件夹应该强制执行Apple沙箱(在越狱之前).
所以,我的问题是:
对于越狱设备,应用程序是否/private/var/mobile/Applications/将以root权限或mobile用户权限执行?
对于Android,一旦root,应用程序将必须通过执行su命令获得root权限.它是否也适用于iOS?
我想了解这两个开发选项(Theos/Xcode)之间的区别以及它如何影响我的应用程序可以执行的操作.
小智 8
长话短说:没有.
越狱是获得根的必要但不充分的条件.默认情况下,应用仍将采用沙盒设置.
使用root权限运行应用程序可以做的是创建一个具有root:wheel所有权和755权限的启动shell脚本,然后创建具有相同所有权的实际可执行文件,7555如权限(即设置其"setuid"位),然后setuid(0);从内部调用main(),在打电话之前UIApplicationMain().
不同意H2CO3所说的任何事情,但要补充一些进一步的澄清......
安装在/private/var/mobile/Applications/(†)Xcode中的应用程序将以用户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
Run Code Online (Sandbox Code Playgroud)
(‡)这是Saurik提供的关于不同越狱如何影响沙箱的讨论.长话短说:这取决于.
(†)更新:在iOS的最新版本中,第三方应用程序的位置已移至/var/mobile/Containers,稍后/var/containers/,但仍存在相同的基本沙箱问题.
| 归档时间: |
|
| 查看次数: |
6130 次 |
| 最近记录: |