1

我应该挂钩UIResponder每个应用程序,包括 SpringBoard 和任何其他应用程序。在挂钩中,我将向指定文件写入一些内容。如果我将路径设置为/var/mobile/Library/MyAppCydia 推荐的,我发现只有 SpringBoard 和 MyApp 可以成功写入。

那么是否存在每个应用程序都可以读写的地方?

4

2 回答 2

2

我承认我对此不是 100% 确定的,但我的猜测是否定的,没有每个应用程序都可以在越狱的 iPhone 上写入文件的路径

当然,越狱手机上的越狱应用程序(安装在 中/Applications/)可以写入可以在这些越狱应用程序之间共享的位置。但是,据我了解您的问题,您想将代码注入普通的 App Store 应用程序,以便这些应用程序也可以读取和写入共享位置。我认为那部分是不可能的,因为越狱并没有完全禁用正常安装的 3rd-party 应用程序的沙箱,在/var/mobile/Applications/.

现在,可能有一种解决方法。出于某些目的,所有应用程序都可以访问一些共享文件夹。例如,任何应用程序都可以将图像写入保存的相册。您可以尝试的是获取您要写入的文件的内容,并将其编码为假图像数据,在 a UIImage(例如 with [UIImage imageWithData:])中。您可能需要向数据中添加有效的图像标题。然后,您将文件保存到相册,使用类似

writeImageToSavedPhotosAlbum:orientation:completionBlock:.

然后,另一个应用程序可以通过枚举保存的相册找到假照片,然后将资产转换回图像表示以提取真实数据。

但是,这似乎很复杂,并且可能行不通(我还没有尝试过)。也许你可以告诉我们你为什么想要这个共享文件。也许有更好的方法来共享数据,而不使用全局可访问的文件?

于 2013-07-24T08:34:38.243 回答
2

通知可以帮助您解决这个问题。每个应用程序都会发送有关事件的进程间通知。您可以启动一个守护程序来侦听此通知并将它们保存在文件中。或者您可以在 SpringBoard 中聆听它们,因为他可以写入,例如,/var/mobile/Media。取决于你想用这个文件做什么。在这里查看我的答案如何创建一个可以由 SpringBoard 或越狱 iPhone 中的其他应用程序访问的全局环境变量?

于 2013-07-24T21:29:18.053 回答