如何获得ios设备中的硬件信息(下)

这篇博客介绍了如何利用iOS的libIOKit库获取设备的IMEI、序列号、背光等级和MAC地址。通过创建UIDevice的类别,实现了从设备的IOKit注册表中检索这些硬件信息的代码示例。此外,还讨论了从IMSI中推断运营商的方法,但指出由于审核限制,这种方法在App Store中可能不可行。
摘要由CSDN通过智能技术生成

      上篇博文提到了ios 还可以通过其他方法获得更多的硬件信息,例如mac地址,电池电量,序列号,IMIE,总磁盘大小,背光等等,现贴出我已经测试通过的程序,获取IMIE,mac地址和序列号。

首先,引入libIOkit 的两个库文件,然后可以创建UIDevice 的catagroy。

具体代码如下:

#import "network.h"
#include <sys/types.h>
#include <sys/sysctl.h>
#import <mach/mach_host.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <ifaddrs.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/if_dl.h>
#include <ifaddrs.h>

#if SUPPORTS_IOKIT_EXTENSIONS
#pragma mark IOKit miniheaders

#define kIODeviceTreePlane        "IODeviceTree"

enum {
    kIORegistryIterateRecursively    = 0x00000001,
    kIORegistryIterateParents        = 0x00000002
};

typedef mach_port_t    io_object_t;
typedef io_object_t    io_registry_entry_t;
typedef char        io_name_t[128];
typedef UInt32        IOOptionBits;

CFTypeRef
IORegistryEntrySearchCFProperty(
                                io_registry_entry_t    entry,
                                const io_name_t        plane,
                                CFStringRef        key,
                                CFAllocatorRef        allocator,
                                IOOptionBits        options );

kern_return_t
IOMasterPort( mach_port_t    bootstrapPort,
             mach_port_t *    masterPort );

io_registry_entry_t
IORegistryGetRootEntry(
                       mach_port_t    masterPort );

CFTypeRef
IORegistryEntrySearchCFProperty(
                                io_registry_entry_t    entry,
                                const io_name_t        plane,
                                CFStringRef        key,
                                CFAllocatorRef        allocator,
                                IOOptionBits        options );

kern_return_t   mach_port_deallocate
(ipc_space_t                               task,
 mach_port_name_t                          name);


@implementation UIDevice (IOKit_Extensions)
#pragma mark IOKit Utils
NSArray *getValue(NSString *iosearch)
{
    mach_port_t          masterPort;
    CFTypeID             pr

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值