这类似于这里提出的问题:
唯一的区别是我想将其更改为特定值,而不是随机值。hfs.util 似乎只是随机的。
我考虑修改hfs.util 源以允许我指定值。当我在代码中寻找从哪里开始进行更改时,我想起了为什么 C不是我最喜欢的语言。后来几次编译错误和段错误,我失去了尝试修改这个工具的热情。我愿意在休息后再次尝试,但我认为必须有一种更简单的方法来更改我只是不知道的卷的 UUID。
所以在我浪费时间之前,有没有人知道一种简单的方法来做到这一点?或者有没有 C 专家愿意加入我的努力,让 hfs.util 将 UUID 更改为指定值?
以下是我为了能够从源 OS X 10.6.8 编译该工具所做的更改:
hfsutil_jnl.c:
47: #include <hfs_fsctl.h>
Run Code Online (Sandbox Code Playgroud)
hfsutil_main.c:
80: #include <uuid/uuid.h>
81: /* REMOVED */
Run Code Online (Sandbox Code Playgroud)
并且,正如本文所暗示的,将fs.c 中第 166 行的以下内容添加到 hfsutil_main.c(因为 namespace.h 不在系统中的任何位置):
static unsigned char kFSUUIDNamespaceSHA1[] = {0xB3,0xE2,0x0F,0x39,0xF2,0x92,0x11,0xD6,0x97,0xA4,0x00,0x30,0x65,0x43,0xEC,0xAC};
Run Code Online (Sandbox Code Playgroud)
最后,我抓取了这个文件并将其添加到工作目录http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/hfs/hfs_fsctl.h