This is a specialized custom fork of ALVR (Air Light VR) designed to bypass hardcoded hardware limitations, specifically tailored for the Oculus Quest 1 and similar devices.
The official ALVR builds strictly restrict the Oculus Quest 1 to 72Hz, forcing a fallback even if 90Hz is requested or forcefully set via root/ADB on the device.
- Server-Side Modification: Removed the
streaming_caps.refresh_ratescheck in the ALVR Streamer. The server now unconditionally pushes the user's preferred refresh rate (e.g., 90Hz) without falling back. - Client-Side OpenXR Patch: Removed the crash/panic triggered when OpenXR returns
ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB. The client now silently ignores the OS-level rejection and continues rendering and streaming at 90Hz logically, effectively bypassing the hardcoded hardware limitation check.
The default ALVR Android client uses the VoiceCommunication audio preset, which forces aggressive Android hardware-level DSP (Noise Suppression, Echo Cancellation, and Automatic Gain Control). This results in a frustrating "noise gate" effect where your voice fades in and out while speaking in VRChat.
- Client-Side Audio Patch: Changed the microphone input preset from
VoiceCommunicationtoUnprocessedinclient_core/src/audio.rs. This disables the hardware DSP entirely, transmitting raw, unaltered microphone audio directly to the PC.
Since this is a custom fork, you must use the specifically compiled server (Streamer) and client (APK) together to experience these features.
-
Install the Custom Client (APK): Use SideQuest or ADB to install the custom compiled
alvr_client_android.apkonto your headset. Make sure to uninstall the official ALVR client first to avoid signature mismatch errors (INSTALL_FAILED_UPDATE_INCOMPATIBLE).adb uninstall alvr.client.dev adb install -r -d alvr_client_android.apk
-
Run the Custom Server: Launch
ALVR Dashboard.exefrom the custom Windows build folder. Set your Video refresh rate to 90 Hz, and verify your Microphone settings are pointing to CABLE Output (VB-Audio Virtual Cable).
To build this custom fork yourself:
- Follow the standard ALVR Build Guide to set up Rust, Android NDK/SDK, and dependencies.
- Clone this repository.
- Build the streamer (PC Server):
cargo xtask build-streamer --release
- Build the Android Client (Headset APK):
cargo xtask prepare-deps --platform android --ci cargo xtask build-client --release
(Note: Use the --ci flag on Windows to bypass UAC prompts during prepare-deps if unzip is available in your PATH).
- Running a Quest 1 at 90Hz requires the headset to be rooted or explicitly forced into 90Hz mode via system commands. Otherwise, the physical panels will refresh at 72Hz while ALVR processes frames at 90Hz.
- Because the Android hardware-level microphone DSP is disabled, you might need to use Discord's or VRChat's software noise suppression to prevent picking up heavy background noise or fan sounds.
- When the headset screen turns off (proximity sensor), Android will still mute the microphone at the hardware level. This is an OS restriction, not an ALVR restriction.
- Original ALVR Project: alvr-org/ALVR
- ALVR is licensed under the MIT License.