Skip to content

Automatically manages gnirehtet reverse tethering for Quest and other Android VR headsets over USB.

License

Notifications You must be signed in to change notification settings

Swmarly/TetherMate

Repository files navigation


Logo

TetherMate (WIP)

Automatically manages gnirehtet reverse tethering for Quest and other Android VR headsets over USB.
Explore the docs »

Download · Report Bug · Request Feature

TetherMate

TetherMate is a Windows 10/11 desktop app that automatically manages adb + gnirehtet reverse tethering for compatible Android-based VR headsets (Meta Quest 2 and similar). It lets you use a wired network connection over USB while still supporting Wi‑Fi–based streaming apps like Virtual Desktop.

Table of contents

What it does

TetherMate provides a stable, low-latency wired alternative for VR streaming by managing reverse tethering over USB. It watches connected ADB devices, selects a target device, and keeps gnirehtet running only when the device is ready.

How it works

  • The app bundles the adb and gnirehtet binaries already in this repository.
  • On startup it extracts the binaries into %LOCALAPPDATA%\TetherMate\bin.
  • A background monitor refreshes the device list via adb devices -l and probes ready devices using adb shell getprop.
  • A device is considered ready when:
    • ADB reports it in device state, and
    • It responds to adb shell getprop probes.
  • gnirehtet auto-starts when the selected device becomes ready and stays ready for a few seconds (debounce).
  • gnirehtet auto-stops when the selected device is disconnected, unauthorized, offline, or otherwise not ready.
  • If you change the selected target device, the app stops the current session and starts a new one if the new device is ready.

Requirements

  • Windows 10/11
  • .NET 8 SDK (build-time only)

Usage

Select a target device

  1. Connect your headset/device via USB and accept the ADB authorization prompt inside the headset.
  2. The device will appear in the Connected ADB devices list.
  3. Use the Target device dropdown to select the device to manage.
  4. Manual Start / Stop / Restart controls are provided for overrides.

Enable ADB debugging

The headset must have Developer Mode enabled and USB/ADB debugging turned on, or the app will never see it as ready.

Meta Quest 2/3 (and similar)

  1. Enable Developer Mode for the headset in the Meta Quest mobile app (Device settings → Developer Mode).
  2. On the headset, open Settings → System → Developer and toggle USB debugging on.
  3. Connect the headset via USB and accept the Allow USB debugging prompt inside the headset.

Troubleshooting

  • Unauthorized: Put on the headset/device and accept the USB debugging prompt.
  • Offline: Replug the USB cable or toggle USB debugging in the headset settings.
  • No devices listed:
    • Ensure USB debugging is enabled.
    • Try a different USB cable/port.
    • Verify that the headset is powered on and awake.
  • gnirehtet errors: Check the log panel for the exact error output.

Build & package (single-file EXE)

One-command build

./build.ps1

This produces a single, self-contained EXE at:

./dist/TetherMate.exe

Manual build command

dotnet publish src/TetherMate/TetherMate.csproj -c Release -r win-x64 -p:PublishSingleFile=true -p:SelfContained=true -p:IncludeAllContentForSelfExtract=true -o dist

Compatibility notes

  • The app targets Windows 10/11 and uses WPF for a native UI.
  • The gnirehtet CLI is invoked with the -s <serial> argument to target the selected device.

License

This project is licensed under the Apache License 2.0. See LICENSE.

Third-party licenses

  • gnirehtet is licensed under the Apache License 2.0. See licenses/gnirehtet-LICENSE.txt.
  • Android platform tools (adb.exe, AdbWinApi.dll, AdbWinUsbApi.dll) ship with third-party licenses. See NOTICE.txt, which includes Apache-2.0, MIT, BSD, ISC, OpenSSL/SSLeay, GPLv2, LGPLv2.1, and other license texts.

Built with

  • C# / .NET 8
  • WPF (Windows Presentation Foundation)
  • adb + gnirehtet

About

Automatically manages gnirehtet reverse tethering for Quest and other Android VR headsets over USB.

Resources

License

Stars

Watchers

Forks

Packages

No packages published