Вызов "sysctlbyname(...)" с флагом "hw.machine" в iOS9

После сеанса WWDC 2015 "703 Конфиденциальность и ваше приложение" произошли изменения с использованием sysctl, И теперь туда мы уже не сможем позвонить kern.proc, kern.procargs, kern.procargs2 и увидеть данные из любых других процессов, кроме себя. Это вполне законное усиление конфиденциальности со стороны Apple.

Кто-нибудь может подтвердить, что звонит sysctlbyname(...) с hw.machine получить точное имя устройства разрешено в iOS9 и не зависит от ограничений, упомянутых выше?

1 ответ

Да, я протестировал его с помощью Xcode7 beta5 в iPhone5(установлена ​​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".

Другие вопросы по тегам