如何在OS X 10.4上获得“IOPlatformUUID”?

时间:2011-03-31 11:18:27

标签: macos uuid

我需要在10.4上获取UUID值,但这里似乎不支持该命令。

ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }'

以上命令在10.5上运行正常。这不支持10.4吗?

此外,我正在尝试使用10.4上的以下代码获取UUID,这也无效:

void vlm_getSystemUUID_MAC(char * uuid, int bufSize)
{
    io_registry_entry_t ioRegistryRoot = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
    CFStringRef uuidCf = (CFStringRef) IORegistryEntryCreateCFProperty(ioRegistryRoot, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0);
    IOObjectRelease(ioRegistryRoot);
    CFStringGetCString(uuidCf, uuid, bufSize, kCFStringEncodingMacRoman);
    CFRelease(uuidCf);
}

上面的代码在10.5上运行良好。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我相信IOPlatformUUID首次被添加到Mac OS X 10.5 Leopard中,并且在以前的版本中不可用(如果我错了,有人请纠正我)。 This blog post暗示此更改已添加到10.5。

要识别运行Mac OS X 10.4及更早版本的Mac,您必须使用IOPlatformSerialNumber和/或内置MAC地址。有关详细信息和警告,请参阅此处:http://developer.apple.com/library/mac/#technotes/tn1103/_index.html