2015-08-24 12 views
5

Dopo la sessione WWDC 2015 "703 Privacy e app", le modifiche sono state apportate utilizzando sysctl. E ora non saremo più in grado di chiamare kern.proc, kern.procargs, kern.procargs2 e vedere i dati provenienti da altri processi di se stessi. È una protezione della privacy abbastanza legittima da parte di Apple.Chiamata "sysctlbyname (...)" con flag "hw.machine" in iOS9

Qualcuno può confermare che chiamare sysctlbyname(...) con hw.machine per recuperare il nome esatto del dispositivo è consentito in iOS9 e non è interessato dalla limitazione menzionata sopra?

+0

Se è necessaria la stringa come * "iPhone1,1" *, vedere anche [Come ottenere la marca e il modello del dispositivo su iOS?] (Https://stackoverflow.com/a/11197770/608639). Sembra più facile da usare per la stringa del modello di 'sysctlbyname'. – jww

risposta

1

, l'ho provato utilizzando Xcode7 beta5 in iPhone5 (iOS9 beta5 installato, non simulatore).

+(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; 
} 

E il valore di ritorno è "iPhone5,2" .Così ho pensato che il nome del dispositivo non è influenzato dalla restrizione alla funzione di "sysctl".

+0

Ciao, grazie per la risposta. Ma la mia domanda è in realtà se Apple può rifiutare un'applicazione che usa "sysctlbyname" con il flag "hw.machine" o rifiuta solo quelli che usano i flag "kern.proc"? – topsky

+0

A proposito, per lo stesso motivo non possiamo ottenere l'elenco delle app in esecuzione ora ((( –

+0

credo che questo sia usato in CDVDevice.m di Cordova. Quindi se non fosse permesso, allora Cordova non lo userebbe La vera domanda che ho è ... come possiamo verificare che questa stringa provenga da un dispositivo reale? Ho bisogno che impedisca alla gente di creare account illimitati sul mio social network. –