繁体   English   中英

Apple Hypervisor 在 MacOS Big Sur beta 11.0.1 上完全崩溃

[英]Apple Hypervisor is completely broken on MacOS Big Sur beta 11.0.1

我正在尝试制作一个基本的命令行工具,该工具可以制作 VM 并使用 Apple Hypervisor 运行某些东西。

当我尝试运行hv_vm_create(HV_VM_DEFAULT)它给了我一个错误代码 -85377023。

我尝试强制执行 App Sandbox 并相应地为 Big Sur 编译目标设置权利,现在我在控制台中得到了这个输出:

Killed

据我了解,这是 AMFI 扼杀了我的进程。 这是错误还是我的问题?

当我决定深入研究时,我发现在 MacOS Big Sur 11.0.1 测试版发行说明中,他们弃用了hv_vm_run(_:) ,而 API 文档说该功能处于测试阶段。

我没有使用内核标志禁用 AMFI,但我几乎可以肯定这不是预期的行为。 而且,无论如何, hv_vm_run(_:)永远不会被弃用或处于测试阶段。 我确信这个功能在 Big Sur 之前就已经存在了。

如果有人可以帮助我解决这个问题或只是做出回应,请这样做。 不要让我陷入黑暗,因为我不想在可能损坏的东西上浪费时间。

谢谢你。

PS:我知道苹果开发者论坛上已经有一个帖子了,我是发帖的人。 尽管如此,没有人回答那里,因为他们的社区甚至没有 Stack Overflow 那么大。

您看到的这个错误代码只是 macOS 方面的一个糟糕的用户体验:它真正想要传达的是缺少com.apple.security.hypervisor权利。

如果您使用的是 Xcode,则可以像这样添加它:

  1. ⌘N并创建一个新的属性列表文件。
  2. 添加一个键为com.apple.security.hypervisor且布尔值设置为YES的新属性。
  3. 转到ProjectTargetBuild SettingsSigningCode Signing Entitlements并确保它使用您新创建的权利文件。

或者,您可以使用命令行:

codesign -s - --entitlements app.entitlements --force path/to/your/binary

其中app.entitlements内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.hypervisor</key>
    <true/>
</dict>
</plist>

解决此问题的另一种方法是简单地在 Xcode 的设置中将部署目标设置为10.13 (支持Alexander Pinske ):

在 General 选项卡中设置 Xcode 部署目标

这样做的原因很可能是由于向后兼容性,因此请记住,这可能会在未来的 macOS 版本中发生变化,或者可能在 Apple Silicon 等新推出的平台上发生变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM