如何在iPhone 5上获取IMEI

InV*_*iZz 2 objective-c jailbreak imei ios ios6

我正在为越狱的iOS设备开发应用程序.我使用https://github.com/erica/uidevice-extension/blob/master/UIDevice-IOKitExtensions.m获取IMEI,但在iPhone 5上,此解决方案不起作用(返回空字符串).有没有办法在iPhone 5(iOS 6.1.2)上获取IMEI?

cre*_*ker 6

有几种方法可以在较新的设备上获取IMEI

1)Private ManagedConfiguration.framework

CFStringRef MCCTIMEI()
Run Code Online (Sandbox Code Playgroud)

2)CoreTelephony.framework

struct CTResult
{
    int flag;
    int a;
};
extern CFStringRef kCTMobileEquipmentInfoIMEI;

void *connection = _CTServerConnectionCreate(kCFAllocatorDefault, NULL, NULL);

NSDictionary *info = nil;
struct CTResult result;
_CTServerConnectionCopyMobileEquipmentInfo(&result, connection, &info);
[info autorelease];    
CFRelease(connection);

NSString* IMEI = (NSString*)info[(NSString*)kCTMobileEquipmentInfoIMEI];
Run Code Online (Sandbox Code Playgroud)

3)liblockdown.dylib

extern CFStringRef kLockdownIMEIKey;

void* connection = lockdown_connect();
NSString* IMEI = [(NSString*)lockdown_copy_value(connection, NULL, kLockdownIMEIKey) autorelease];
lockdown_disconnect(connection);
Run Code Online (Sandbox Code Playgroud)

我遇到了一些问题MCCTIMEI- 设备启动后返回空的IMEI.现在我正在使用CoreTelephony解决方案,从来没有遇到过问题.

UPDATE

在iOS 7上,这些API受com.apple.coretelephony.Identity.get权利保护.要访问IMEI(IMSI,电话号码和其他信息),您需要使用布尔值设置为true的权利签名.