【问题标题】:Jailbroken iPhone - root privileges越狱的 iPhone - root 权限
【发布时间】:2009-10-04 13:27:43
【问题描述】:

我想制作一个应用程序来管理越狱设备上的一些文件,如 SMS、Notes .db,但我在访问这些文件时遇到问题。我也只是为了测试我的技能,类似你的文件管理器的应用程序,我可以浏览几乎整个文件系统并访问除 /var/mobile/Library/ 中的一些文件夹之外的所有内容。我得到了 /var/mobile/Library 的内容列表,但在 /var/mobile/Library/Notes/、/var/mobile/Library/SBSettings/ 等子目录中什么也没有得到,顺便说一句,在我的情况下最重要的是: /var/mobile/Library/SMS/ 或 /Notes/ 什么也不显示。 当然,当我使用 Fugu 通过 SSH 浏览我的设备时,我得到了所有内容并可以访问所有内容(例如 chmod,即)

如果您能给我一些建议或源代码,我会很好,我应该做些什么,我猜是 root 的权限,不仅可以访问这些文件,还可以更改它们的权限和名称。 我知道如何使用通常的 NSFileManager 进行此类操作,但不适用于上述目录中的文件,例如 /.../SMS/。

我从未开发过严格需要越狱设备才能执行给定任务的应用程序。我相信我需要一些额外的库?这是真的吗?我可以使用 Xcode 还是有其他东西来开发此类应用程序。

我将不胜感激!

【问题讨论】:

  • 你好克里斯。我也在尝试访问 /private/var/mobile/Library/SMS/sms.db。但是当我提供这个到 sqlite3_open 的路径时,它总是给出错误“无法打开数据库文件”但是当我访问 /private/var/wireless/Library/CallHistory/call_history.db 时,数据库会完美打开。你能告诉我你是怎么解决这个问题的吗?你用什么来访问 sms.db?这将是一个很大的帮助。谢谢

标签: iphone xcode


【解决方案1】:

即使越狱,通过 Xcode 或 App Store 安装的应用程序仍处于沙盒状态。要获得对整个文件系统的只读访问权限,必须将应用程序安装在/Applications/ 而不是/var/mobile/Applications/。要获得对整个文件系统的写访问权限,应用程序还必须由 root 拥有并使用 setuid 模式标记

【讨论】:

  • 是的,但我不打算在 App Store 中分发它,而只在 Cydia 中分发。那么我该怎么做才能让我的应用程序由 root 拥有并处于 setuid 模式?
  • 将您的应用程序上传到 /Applications/,然后从 SSH 上传“chmod 6777 /Applications/YourApp.app/YourApp”和“chown root:admin /Applications/YourApp.app/YourApp”。注意:很少有应用程序需要root;您的应用程序中的错误可能会导致设备在没有恢复的情况下无法启动
  • 很抱歉重新提出这个老问题,但我在这里问了一个类似的问题:stackoverflow.com/questions/7464332/… 有 +100 赏金。有没有办法让 XCode 自动部署到 /Applications?我需要 gdb 进行测试。感谢您的所有帮助
  • 使用 iOS 5。setuid root 不再被授权,即使在 JB 手机上也是如此。
  • 让我重新表述一下:具有 setuid root 的应用程序不会被 SpringBoard 以 root 身份启动(SB 作为移动设备运行)。我发现从 SpringBoard 以 root 身份启动应用程序的唯一方法是用 shell 脚本替换应用程序,然后启动真正的应用程序。展位是 setuid root (chmod 6755) 和应用程序调用 setuid(0);setgid(0);从代码。如果您有更简单的解决方案 - 我愿意听取您的意见 :-) - 谢谢
猜你喜欢
  • 2011-12-12
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多