> For the complete documentation index, see [llms.txt](https://docs.ovrtechnology.com/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ovrtechnology.com/home/ovr-plugin-unreal/platform-specific-requirements.md).

# Platform Specific Requirements

Current platform requirements for Windows x64, Android and Meta Quest, macOS, iOS, and Companion WebSocket deployments.

The descriptor implements Win64, macOS, Android, and iOS runtime targets. Meta Quest uses the Android implementation. Platform support describes implemented targets; applications must still be validated on the intended OS, native toolchain, and physical OVR hardware before release.

### Windows x64

Windows 10 and Windows 11 support direct Bluetooth Low Energy, USB serial, and the optional Companion WebSocket transport.

* The plugin build rules stage `BleWinrtDll.dll` automatically for editor and packaged-game runtime use. Do not manually copy a differently named DLL in a normal build/package workflow.
* USB serial may require the official [Silicon Labs CP210x VCP driver](https://www.silabs.com/software-and-tools/usb-to-uart-bridge-vcp-drivers) if the Omara adapter does not appear as a COM port.
* Wine and Proton, including Steam Deck Windows compatibility layers, are not supported for Omara BLE or USB serial.

### Android and Meta Quest

Android and Meta Quest use the plugin's Android BLE implementation; there is no separate Oculus runtime module.

* The Android UPL supplies the required Bluetooth/location manifest permissions and Companion Device integration.
* Runtime permission checks and requests use Epic's Android Permission plugin, which is enabled automatically.
* The system Companion Device picker and standard BLE scan workflows are supported.
* Validate the generated manifest, target SDK, runtime permission results, association reuse/cancellation, and any Location Services prerequisite exposed by the Android version before shipping.

The plugin does not require **Full Rebuild** as a blanket Android installation step.

### macOS

macOS supports direct BLE and the optional Companion WebSocket transport.

* Direct BLE requires **macOS 13.3 or newer**.
* The packaged `libMacBLEDynamicLib.dylib` is linked and staged by the plugin build rules.
* Provide appropriate Bluetooth usage text for the selected SDK.
* Sandboxed applications require the Bluetooth entitlement `com.apple.security.device.bluetooth`.
* Build, sign, and test the final application with a native Mac toolchain and physical OVR hardware.

### iOS

iOS supports direct BLE through the bundled `UnityCoreBluetooth` framework.

* The plugin ships `UnityCoreBluetooth.embeddedframework.zip` and registers it with Unreal as **LinkAndCopy**. A normal plugin build should not require downloading or manually adding the framework in Xcode.
* The iOS UPL inserts default `NSBluetoothPeripheralUsageDescription` and `NSBluetoothAlwaysUsageDescription` entries.
* Review and customize the final generated Info.plist wording for the application.
* Verify framework embedding, code signing, provisioning, permissions, lifecycle behavior, and physical-device operation using a native macOS/iOS toolchain.

### Companion WebSocket transport

The Companion WebSocket transport is implemented on Windows and macOS. The default endpoint is `ws://127.0.0.1:8080`.

It is separate from the native BLE and serial transports. Custom or remote endpoints require the applicable host, port, firewall, and network-policy configuration. If the Companion bridge is unavailable, direct native transports remain available.
