//
// UIDeviceHardware.m
//
// Used to determine EXACT version of device software is running on.
#import "UIDeviceHardware.h"
#include <sys/types.h>
#include <sys/sysctl.h>
@implementation
UIDeviceHardware
-
(
NSString
*
)
platform
{
size_t
size
;
sysctlbyname
(
"hw.machine"
,
NULL
,
&
size
,
NULL
,
0
);
char
*
machine
=
malloc
(
size
);
sysctlbyname
(
"hw.machine"
,
machine
,
&
size
,
NULL
,
0
);
NSString
*
platform
=
[
NSString
stringWithUTF8String
:
machine
];
free
(
machine
);
return
platform
;
}
-
(
NSString
*
)
platformString
{
NSString
*
platform
=
[
self
platform
];
if
([
platform
isEqualToString
:
@"iPhone1,1"
])
return
@"iPhone 1G"
;
if
([
platform
isEqualToString
:
@"iPhone1,2"
])
return
@"iPhone 3G"
;
if
([
platform
isEqualToString
:
@"iPhone2,1"
])
return
@"iPhone 3GS"
;
if
([
platform
isEqualToString
:
@"iPhone3,1"
])
return
@"iPhone 4"
;
if
([
platform
isEqualToString
:
@"iPhone3,3"
])
return
@"Verizon iPhone 4"
;
if
([
platform
isEqualToString
:
@"iPhone4,1"
])
return
@"iPhone 4S"
;
if
([
platform
isEqualToString
:
@"iPhone5,1"
])
return
@"iPhone 5 (GSM)"
;
if
([
platform
isEqualToString
:
@"iPhone5,2"
])
return
@"iPhone 5 (GSM+CDMA)"
;
if
([
platform
isEqualToString
:
@"iPhone5,3"
])
return
@"iPhone 5c (GSM)"
;
if
([
platform
isEqualToString
:
@"iPhone5,4"
])
return
@"iPhone 5c (GSM+CDMA)"
;
if
([
platform
isEqualToString
:
@"iPhone6,1"
])
return
@"iPhone 5s (GSM)"
;
if
([
platform
isEqualToString
:
@"iPhone6,2"
])
return
@"iPhone 5s (GSM+CDMA)"
;
if
([
platform
isEqualToString
:
@"iPod1,1"
])
return
@"iPod Touch 1G"
;
if
([
platform
isEqualToString
:
@"iPod2,1"
])
return
@"iPod Touch 2G"
;
if
([
platform
isEqualToString
:
@"iPod3,1"
])
return
@"iPod Touch 3G"
;
if
([
platform
isEqualToString
:
@"iPod4,1"
])
return
@"iPod Touch 4G"
;
if
([
platform
isEqualToString
:
@"iPod5,1"
])
return
@"iPod Touch 5G"
;
if
([
platform
isEqualToString
:
@"iPad1,1"
])
return
@"iPad"
;
if
([
platform
isEqualToString
:
@"iPad2,1"
])
return
@"iPad 2 (WiFi)"
;
if
([
platform
isEqualToString
:
@"iPad2,2"
])
return
@"iPad 2 (GSM)"
;
if
([
platform
isEqualToString
:
@"iPad2,3"
])
return
@"iPad 2 (CDMA)"
;
if
([
platform
isEqualToString
:
@"iPad2,4"
])
return
@"iPad 2 (WiFi)"
;
if
([
platform
isEqualToString
:
@"iPad2,5"
])
return
@"iPad Mini (WiFi)"
;
if
([
platform
isEqualToString
:
@"iPad2,6"
])
return
@"iPad Mini (GSM)"
;
if
([
platform
isEqualToString
:
@"iPad2,7"
])
return
@"iPad Mini (GSM+CDMA)"
;
if
([
platform
isEqualToString
:
@"iPad3,1"
])
return
@"iPad 3 (WiFi)"
;
if
([
platform
isEqualToString
:
@"iPad3,2"
])
return
@"iPad 3 (GSM+CDMA)"
;
if
([
platform
isEqualToString
:
@"iPad3,3"
])
return
@"iPad 3 (GSM)"
;
if
([
platform
isEqualToString
:
@"iPad3,4"
])
return
@"iPad 4 (WiFi)"
;
if
([
platform
isEqualToString
:
@"iPad3,5"
])
return
@"iPad 4 (GSM)"
;
if
([
platform
isEqualToString
:
@"iPad3,6"
])
return
@"iPad 4 (GSM+CDMA)"
;
if
([
platform
isEqualToString
:
@"i386"
])
return
@"Simulator"
;
if
([
platform
isEqualToString
:
@"x86_64"
])
return
@"Simulator"
;
return
platform
;
}
@end