2

ジェイルブレイクされた iOS デバイス用のアプリケーションを開発しています。https://github.com/erica/uidevice-extension/blob/master/UIDevice-IOKitExtensions.mを使用して IMEI を取得していますが、iPhone 5 ではこのソリューションは機能しません (空の文字列を返します)。iPhone 5(iOS 6.1.2)でIMEIを取得する方法はありますか?

4

3 に答える 3

6

新しいデバイスで IMEI を取得するにはいくつかの方法があります

1) プライベート ManagedConfiguration.framework

CFStringRef MCCTIMEI()

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];

3) liblockdown.dylib

extern CFStringRef kLockdownIMEIKey;

void* connection = lockdown_connect();
NSString* IMEI = [(NSString*)lockdown_copy_value(connection, NULL, kLockdownIMEIKey) autorelease];
lockdown_disconnect(connection);

いくつか問題がありましたMCCTIMEI- デバイスの起動後に空の IMEI が返されました。今、私は CoreTelephony ソリューションを使用していますが、問題はありませんでした。

アップデート

iOS 7 では、これらの API はcom.apple.coretelephony.Identity.get権限によって保護されています。IMEI (IMSI、電話番号、およびその他の情報) にアクセスするには、ブール値を true に設定してその資格に署名する必要があります。

于 2013-05-21T18:32:00.663 に答える
1

あなたはそれを使用することができます:


GitHubから次の 2 つのファイルをダウンロードします。

OpenUDID.h
OpenUDID.m

これらのファイルをプロジェクトに追加します。

そしてそれを次のように使用します

#import "OpenUDID.h"

NSString* openUDID = [OpenUDID value];

iPhone 4 および iPhone 5 でテスト済み

于 2013-09-23T10:32:20.780 に答える