在iOS9中使用“hw.machine”标志调用“sysctlbyname(...)”

时间:2015-08-24 13:24:47

标签: ios sysctl ios-9-beta3

在WWDC 2015会话“703隐私和您的应用”之后,使用sysctl进行了更改。现在,我们将无法再拨打kern.prockern.procargskern.procargs2来查看来自任何其他流程的数据,然后再查看自己的数据。这是一个非常合法的隐私硬化Apple。

任何人都可以确认在iOS9中允许使用sysctlbyname(...)调用hw.machine来获取确切的设备名称,而不受上述限制的影响吗?

1 个答案:

答案 0 :(得分:2)

,我在iPhone5中测试了它使用Xcode7 beta5(安装了iOS9 beta5,而不是模拟器)。

+(NSString *) getDeviceModel {
    size_t size;
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
    char *model = malloc(size);
    sysctlbyname("hw.machine", model, &size, NULL, 0);
    NSString *deviceModel = [NSString stringWithCString:model encoding:NSUTF8StringEncoding];
    free(model);
    return deviceModel;
}

返回值是" iPhone5,2"。所以我认为设备名称不受" sysctl"的限制。功能