2015-08-24 8 views
5

Nach der WWDC 2015-Sitzung "703 Privacy and Your App" gibt es Änderungen mit sysctl. Und jetzt werden wir nicht mehr in der Lage sein kern.proc, kern.procargs, kern.procargs2 anzurufen und Daten von irgendwelchen anderen Prozessen dann selbst zu sehen. Es ist eine ziemlich legitime Privatsphäre, die von Apple gehärtet wird.Aufruf von "sysctlbyname (...)" mit "hw.machine" -Flag in iOS9

Kann jemand bestätigen, dass das Anrufen sysctlbyname(...) mit hw.machine zum Abrufen des genauen Gerätenamens in iOS9 erlaubt ist und nicht von der oben erwähnten Einschränkung betroffen ist?

+0

Wenn Sie die Zeichenfolge wie * "iPhone1,1" * benötigen, sehen Sie auch [Wie bekomme ich Gerät und Modell auf iOS?] (Https://stackoverflow.com/a/11197770/608639). Es scheint einfacher zu sein, den Modellstring als 'sysctlbyname' zu ​​verwenden. – jww

Antwort

1

Ja, Ich habe es getestet Mit Xcode7 Beta5 in iPhone5 (iOS9 Beta5 installiert, nicht Simulator).

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

Und die Rückkehr Wert „iPhone5,2“ .So Ich dachte, der Gerätename nicht durch Beschränkung der „sysctl“ Funktion beeinträchtigt wird.

+0

Hallo, danke für die Antwort. Aber meine Frage war tatsächlich, ob Apple eine Anwendung ablehnen kann, die "sysctlbyname" mit "hw.machine" -Flag verwendet, oder sie lehnen nur diejenigen ab, die "kern.proc" -Flags verwenden? – topsky

+0

Übrigens, aus dem gleichen Grund können wir die Liste der laufenden Apps jetzt nicht bekommen (( –

+0

) Ich glaube, dass dies in CDVDevice.m von Cordova verwendet wird. Wenn es also nicht erlaubt wäre, würde Cordova es nicht benutzen Die wirkliche Frage, die ich habe, ist ... wie können wir überprüfen, ob diese Zeichenfolge von einem echten Gerät stammt? Ich brauche es, um zu verhindern, dass Leute unbegrenzte Konten in meinem sozialen Netzwerk erstellen. –