簡體   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