Files
osyandGemini 9d34c595f7 vm(apple): implement USB passthrough for Apple Virtualization
This change implements USB device passthrough for macOS 15+ using the
Virtualization framework private APIs.

Changes include:
- `UTMIOUSBHostManager`: Uses IOKit to dynamically manage connected USB devices.
  Instead of relying on private framework headers, it uses Objective-C reflection
  to safely instantiate `_VZIOUSBHostPassthroughDeviceConfiguration` and
  `_VZIOUSBHostPassthroughDevice`, and configures delegates for `VZUSBController`.
- `UTMIOUSBHostDevice`: Represents an IOKit USB device, conforming to `NSSecureCoding`
  and `NSCopying`. It safely reads properties such as location ID and port directly
  from the IORegistry.
- `UTMAppleVirtualMachine`: Now initializes `UTMIOUSBHostManager` and restores captured
  USB devices asynchronously before VM startup. State is archived directly into the registry.
- `VMDisplayAppleWindowController`: Added a new USB menu populated with current devices
  to allow interactively connecting and disconnecting USB devices on the fly.
- `UTMRegistryEntry`: Extended to support archiving and unarchiving of connected USB devices.

Co-authored-by: Gemini <[email protected]>
2026-02-25 19:54:25 -08:00
..
2025-04-07 18:21:20 -07:00
2024-11-21 13:26:13 +09:00
2025-09-15 12:03:49 -07:00
2026-02-24 09:33:46 -08:00