gpt4 book ai didi

c - Apple Hypervisor在MacOS Big Sur beta 11.0.1上完全损坏

转载 作者:行者123 更新时间:2023-12-03 16:10:05 27 4
gpt4 key购买 nike

我正在尝试制作一个基本的命令行工具,该工具可制作VM并使用Apple Hypervisor运行某些程序。
当我尝试运行hv_vm_create(HV_VM_DEFAULT)时,给我一个错误代码-85377023。
我尝试强制执行A​​pp Sandbox并相应地为Big Sur编译目标设置了权利,现在我在控制台中得到以下输出:

Killed
据我了解,这是AMFI杀死了我的过程。这是错误还是我的问题?
当我决定钻研兔子时,我发现在MacOS Big Sur 11.0.1 beta发行说明中,它们 不推荐使用 hv_vm_run(_:),而API文档则说此功能处于beta中。
我没有用内核标志禁用AMFI,但是我几乎可以肯定这不是预期的行为。而且,无论如何, hv_vm_run(_:)可以永远不被弃用 ,也可以不处于beta状态。我确信此功能早在Big Sur之前就已经存在。
如果有人可以帮助我或者只是给我答复,请这样做。不要让我处于黑暗中,因为我不想浪费时间在可能会损坏的东西上。
谢谢你。
附注:我知道Apple Developer论坛中已经有一个主题,我是发布该主题的人。但是,没有人在那儿回答问题,因为他们的社区甚至还不及Stack Overflow那么大。

最佳答案

您看到的此错误代码在macOS方面只是一个糟糕的UX:真正要传达的是 com.apple.security.hypervisor 权利缺失。
如果您使用的是Xcode,则可以这样添加:

  • 按⌘N并创建一个新的属性列表文件。
  • 添加一个新属性,其键值为com.apple.security.hypervisor,并将 bool 值设置为YES
  • 转到项目目标build设置签名代码签名权利,并确保它使用了新创建的权利文件。

  • 或者,您可以使用命令行:
    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):
    setting Xcode deployment target in the General tab
    之所以很有用,是因为向后兼容,因此请记住,这可能会在将来的macOS版本中或在新推出的平台(如Apple Silicon)上发生变化。

    关于c - Apple Hypervisor在MacOS Big Sur beta 11.0.1上完全损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64642062/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com