如何使用Swift检测tvOS是否越狱

6

有没有办法在tvOS应用程序中检测apple tv是否越狱?尝试使用iPhone检测越狱的相同方法,但根据参考链接如何检测iOS应用程序是否在越狱的手机上运行?无效。

NSString *filePath = @"/Applications/Cydia.app";
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath])
{
   // do something useful
}

这种方法不起作用,有没有专门针对tvOS应用程序检测越狱的API?

能否检测到? - cybergeeeek
1
如果有一种高度可靠的方法来检测这个问题,苹果公司会在tvOS中使用它来防止越狱。你添加的任何检测都很容易被绕过。这并不是说它没有用处,但这意味着你不应该花太多时间在上面,除非你有一个你认为与苹果安全团队同等规模的团队(有些公司有这样的团队,它并不是无限的,但如果你没有,那么你需要相应地调整你的期望值)。 - Rob Napier
1个回答

2
您可以检查这些文件是否存在(Cydia相关):
  • /private/var/lib/cydia
  • /var/cache/apt
  • /var/lib/apt
  • /var/lib/cydia
许多人也在越狱设备上安装了OpenSSH,所以请检查以下内容:
  • /usr/sbin/sshd
  • /usr/bin/sshd
如果未安装Cydia - 请检查根分区权限 - /
如果您可以读写,则设备很可能已越狱。
您还可以尝试fork() - 沙盒不允许它,在越狱环境中将会成功。
注意:请记住,有大量工具可以绕过越狱检查,这是在Cydia和互联网上的。

尝试使用 fork() 甚至无法编译。我收到了错误信息“'fork()' 不可用:请使用线程或 posix_spawn*()”。我该如何添加一个可以编译并允许我构建和运行应用程序的 fork() 检查? - alobaili

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接