Objective-C - 检查 OS X 中的 FileVault 状态

Objective-C - Check FileVault status in OS X

我正在开发一个 Cocoa 应用程序 (Objective-C),它需要确定 FileVault 是否已打开。我尝试在 .plist 中搜索 FileVault 但没有成功。

如有任何帮助,我们将不胜感激,

提前致谢:)干杯

通过 NSTask 相当简单:

@autoreleasepool {
    NSTask *task = [[NSTask alloc] init];
    [task setLaunchPath:@"/usr/bin/fdesetup"];
    [task setArguments:[NSArray arrayWithObjects:@"status", nil]];

    NSPipe *pipe = [NSPipe pipe];
    [task setStandardOutput: pipe];

    NSFileHandle *file = [pipe fileHandleForReading];
    [task launch];

    NSData *data = [file readDataToEndOfFile];
    NSString *string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];

    NSLog (@"%@", string); // FileVault is Off/On.
}

可能有一种方法可以通过 SecKeychain 进行检查,但快速检查可能有点矫枉过正。