【问题标题】:iOS MDM: Can we get to know whether device is rooted or jailbroken?iOS MDM:我们能知道设备是root还是越狱?
【发布时间】:2015-03-17 11:19:03
【问题描述】:

我正在为 iOS 开发 MDM 实现。我想知道是否有任何命令可以让我们知道iOS设备是root还是越狱?

我看过 MDM 协议参考,但在 DeviceInformation 命令中没有找到任何字段来了解这一点。

服务器如何从设备获知此状态?

【问题讨论】:

标签: ios jailbreak mdm


【解决方案1】:

Apple MDM 协议无法检查设备是否越狱。 MDM 供应商通常会为此提供自己的解决方案。

【讨论】:

    【解决方案2】:

    您可以使用 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
    }
    

    此代码未经真正测试。如果它有效,请告诉我。

    【讨论】:

    • 其实,我正在使用 iOS 的 inbuit MDM 客户端实现 MDM 服务器。我没有实现 iOS MDM 应用程序。所以,我想问一下是否有任何命令可以从服务器以 .plist 形式发送到设备,并且设备内置的 MDM 客户端将返回指示设备是否越狱的标志?
    猜你喜欢
    • 2017-05-09
    • 2019-01-24
    • 2018-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多