【发布时间】:2015-03-17 11:19:03
【问题描述】:
我正在为 iOS 开发 MDM 实现。我想知道是否有任何命令可以让我们知道iOS设备是root还是越狱?
我看过 MDM 协议参考,但在 DeviceInformation 命令中没有找到任何字段来了解这一点。
服务器如何从设备获知此状态?
【问题讨论】:
我正在为 iOS 开发 MDM 实现。我想知道是否有任何命令可以让我们知道iOS设备是root还是越狱?
我看过 MDM 协议参考,但在 DeviceInformation 命令中没有找到任何字段来了解这一点。
服务器如何从设备获知此状态?
【问题讨论】:
Apple MDM 协议无法检查设备是否越狱。 MDM 供应商通常会为此提供自己的解决方案。
【讨论】:
您可以使用 NSFileManager 查找 Cydia(或类似应用程序)。您应该检查您是否可以访问手机上的 bash。你可以试试这样:
- (BOOL) isJailbroken
{
//If the app is running on the simulator
#if TARGET_IPHONE_SIMULATOR
return NO;
//If its running on an actual device
#else
BOOL isJailbroken = NO;
//This line checks for the existence of Cydia
BOOL cydiaInstalled = [[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"];
FILE *f = fopen("/bin/bash", "r");
if (!(errno == ENOENT) || cydiaInstalled) {
//Device is jailbroken
isJailbroken = YES;
}
fclose(f);
return isJailbroken;
#endif
}
此代码未经真正测试。如果它有效,请告诉我。
【讨论】: