Вызов "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".