Skip to content

alananisimov/olcbox

Repository files navigation

Olcbox

olcrtc configurator built with Kotlin Multiplatform and Compose.

Olcbox home screen Olcbox location settings screen Olcbox split tunneling settings screen

Status

Alpha version. Not intended for production use.

Support

Support options are not publicly listed. Contact the author if needed.

Автор ничего не продаёт.
Не продаются приложение, доступ, конфигурации, подписки или услуги поддержки.
Возможен только добровольный донат.

Legal Notice

This software is intended for development, testing and research purposes only.

The author does not provide any guarantees regarding:

  • availability of network access
  • compatibility with specific services
  • compliance with any external restrictions

Users are solely responsible for how they use this software and must comply with applicable laws.

Usage Restrictions

This software is not intended to be used for bypassing access restrictions or violating applicable laws. The author does not support or encourage such use.

Features

  • One-tap tunnel start/stop with live relay status.
  • Saved connection profiles with active location selection.
  • Providers: Jazz, Telemost, WB Stream, Jitsi.
  • Transports: DataChannel, VP8, SEI.
  • VP8 tuning: FPS and batch size.
  • Connectivity checks for individual locations.
  • Config import from clipboard/file and export to clipboard.
  • Diagnostics log view with log export.
  • Android TUN/proxy modes, SOCKS5 credentials, split tunneling.
  • Network migration, reconnect handling, and watchdog recovery.

Platform Matrix

Platform Modes Runtime
Android TUN, proxy VpnService, hev-socks5-tunnel, local olcrtc SOCKS5
iOS Proxy local olcrtc SOCKS5 hosted by a Swift shell
macOS Proxy local olcrtc SOCKS5 with OS PAC settings
Windows TUN local olcrtc SOCKS5, hev-socks5-tunnel, Wintun
Linux TUN local olcrtc SOCKS5, hev-socks5-tunnel, policy routes

Requirements

Area Requirement
JVM JDK 17+
Android Android Studio, Android SDK, Android NDK
Desktop native assets Go and local olcrtc fork
Linux TUN iproute2, /dev/net/tun, root/Polkit/sudo privileges
Windows TUN UAC elevation when TUN starts and bundled Wintun runtime

Default local olcrtc path:

../olcrtc

Override it with OLCRTC_REPO:

OLCRTC_REPO=/path/to/olcrtc ./gradlew :desktopApp:run

Relative OLCRTC_REPO values are resolved from the olcbox project root:

OLCRTC_REPO=../olcrtc-ansible-deploy/olcrtc ./gradlew :androidApp:assembleRelease
$env:OLCRTC_REPO="C:\path\to\olcrtc"
.\gradlew.bat :desktopApp:run

Commands

Task Command
Android debug APK ./gradlew :androidApp:assembleDebug
Install Android debug APK ./gradlew :androidApp:installDebug
iOS simulator app xcodebuild -project iosApp/iosApp.xcodeproj -scheme iosApp -sdk iphonesimulator -configuration Debug build
Run desktop app ./gradlew :desktopApp:run
Run desktop app with hot reload ./gradlew :desktopApp:hotRun --auto
Build desktop native assets ./gradlew :desktopApp:buildDesktopNativeAssets
Package current host OS ./gradlew :desktopApp:packageReleaseDistributionForCurrentOS
Main checks ./gradlew :sharedUI:jvmTest :desktopApp:compileKotlin :androidApp:assembleDebug
JVM tests ./gradlew :sharedUI:jvmTest

Build Outputs

Target Command Output
Android debug ./gradlew :androidApp:assembleDebug androidApp/build/outputs/apk/debug/androidApp-debug.apk
Android release ./gradlew :androidApp:assembleRelease androidApp/build/outputs/apk/release/androidApp-release.apk
iOS simulator xcodebuild -project iosApp/iosApp.xcodeproj -scheme iosApp -sdk iphonesimulator -configuration Debug build Xcode DerivedData app product
macOS DMG ./gradlew :desktopApp:packageReleaseDmg desktopApp/build/compose/binaries/main-release/dmg/Olcbox-1.0.0.dmg
Windows EXE .\gradlew.bat :desktopApp:packageReleaseExe desktopApp\build\compose\binaries\main-release\exe\Olcbox-1.0.0.exe
Windows MSI .\gradlew.bat :desktopApp:packageReleaseMsi desktopApp\build\compose\binaries\main-release\msi\Olcbox-1.0.0.msi
Linux AppImage ./gradlew :desktopApp:packageReleaseLinuxAppImage desktopApp/build/compose/binaries/main-release/appimage/Olcbox-1.0.0-amd64.AppImage

Native Assets

Asset Path
macOS olcrtc desktopApp/build/generated/desktopNativeResources/native/olcrtc-darwin-arm64
Linux olcrtc desktopApp/build/generated/desktopNativeResources/native/olcrtc-linux-amd64
Linux olcrtc ARM desktopApp/build/generated/desktopNativeResources/native/olcrtc-linux-arm64
Windows olcrtc desktopApp/build/generated/desktopNativeResources/native/olcrtc-windows-amd64.exe
Linux hev-socks5-tunnel desktopApp/build/generated/desktopNativeResources/native/hev-socks5-tunnel-linux-amd64
Linux hev-socks5-tunnel ARM desktopApp/build/generated/desktopNativeResources/native/hev-socks5-tunnel-linux-arm64
Windows hev-socks5-tunnel desktopApp/build/generated/desktopNativeResources/native/hev-socks5-tunnel-windows-amd64.exe
Windows Wintun runtime desktopApp/build/generated/desktopNativeResources/native/wintun.dll

Notes

  • Android native ABIs: armeabi-v7a, arm64-v8a, x86_64.
  • Android release builds require keystore.properties in the repository root.
  • macOS DMG output is not notarized unless signing/notarization is configured separately.
  • Windows installers must be built on Windows with jpackage and WiX available.
  • Linux TUN interface: olcbox0.
  • Linux stop removes policy routes and reverts systemd-resolved settings when resolvectl is available.

keystore.properties:

storeFile=/absolute/path/to/release.keystore
storePassword=...
keyAlias=...
keyPassword=...

Linux privilege override:

Linux privilege override:

OLCBOX_LINUX_PRIVILEGE=sudo ./gradlew :desktopApp:run
OLCBOX_LINUX_PRIVILEGE=pkexec ./gradlew :desktopApp:run

About

multiplatform olcrtc client. original code on codeberg

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors