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

2024-02-15

继 WWDC 2015 会议“703 隐私和您的应用程序”之后,使用sysctl。现在我们将无法再打电话kern.proc, kern.procargs, kern.procargs2并查看来自任何其他进程的数据,然后是自己的数据。这是苹果公司相当合法的隐私强化措施。

任何人都可以确认打电话吗sysctlbyname(...) with hw.machineiOS9中允许获取准确的设备名称并且不受上述限制的影响吗?


Yes,我已经在 iPhone 5 中使用 Xcode 7 beta 5 进行了测试(安装了 iOS 9 beta 5,不是模拟器)。

+(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”函数限制的影响。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS9 中使用“hw.machine”标志调用“sysctlbyname(...)” 的相关文章

随机推荐