Skip to content

yash-srivastava/Overdrive-release

OverDrive Logo

OverDrive

Advanced Sentry Mode for BYD Vehicles

Download AlphaWebsiteDiscordFeaturesSetup GuideHome AssistantTranslate

Crowdin localization status

Free, open-source dashcam and sentry mode app built specifically for BYD vehicles with DiLink v3. All data stays on your device — no cloud, no accounts, no subscriptions.


Click to Watch OverDrive Demo


Quick Start (Use Pre-built APK)

Download the latest APK from GitHub Releases and install it directly on your BYD head unit.

1. Prerequisites

  • Ensure Wireless ADB is enabled on your device before launching the app.

2. Initial Configuration

  1. Authorize ADB: On first launch, accept the ADB authentication prompt on your device screen.
  2. Background Persistence: In Settings, ensure the "Disable Autostart" toggle is unchecked. This is critical for reliable background operation.

⚠️ CRITICAL: Hard Reboot Required After the first installation and initial run, you must hard reboot the device: Press and hold the Volume Down button for 5 seconds. Wait for the system to fully restart. This step is necessary to finalize the installation.

3. Network & Tunnel Setup

Enable your preferred tunnel (Zrok, Cloudflared or Tailscale).

Telegram Notifications Setup

  1. Message @BotFather on Telegram → /newbot → follow prompts → get your bot token
  2. Message @userinfobot/start → copy your Chat ID
  3. In OverDrive: Settings → Notifications → enter bot token & chat ID

Why OverDrive?

Feature OverDrive Other Apps
CPU Usage <28% 70–90%
Proximity Recording ✅ Market First
Real-time Performance Monitor ✅ Built-in
ISP Blocklist Bypass ✅ Via BYD SIM ❌ Requires WiFi Hotspot
Remote Access 4 methods (LAN, Cloudflared, Zrok, Tailscale) Usually 1 (if any)
ADB Shell Runner
Telegram Notifications ✅ Free Paid or None
Data Privacy 100% On-Device Often Cloud-Required
Price Free Forever $5–50/month

Features

  • Optimized Recording Pipeline — <28% CPU, ~150MB memory, <3s boot time
  • Proximity Recording (Market First) — Uses BYD's 8 parking radar sensors to trigger recording only when objects approach. Configurable trigger levels, pre-event buffer, and 500ms debouncing.
  • Advanced Sentry Mode — 24/7 surveillance with motion detection and AI object recognition
  • Real-time Performance Monitor — CPU, GPU, memory usage, and battery voltage dashboard
  • ISP Blocklist Bypass — Browse via BYD's built-in SIM card without a dedicated hotspot
  • ADB Shell Runner — Built-in terminal for running commands, checking processes, and viewing logs
  • Telegram Notifications — Instant alerts for motion detection, recording events, and low battery
  • Recording Library — Calendar view for browsing and managing recordings

Remote Access

Three options for viewing your car's cameras remotely:

Local Network (LAN)

Access at http://<car-ip>:8080 when on the same WiFi. Zero setup, fastest streaming.

Cloudflare Tunnel

Access from anywhere via https://<random>.trycloudflare.com. No port forwarding, HTTPS by default. Video streaming can be slow due to Cloudflare limitations.

Zrok Tunnel (Recommended)

Free, open-source tunneling with no bandwidth limits at https://<your-share>.share.zrok.io. Best for video streaming.

Quick Zrok setup:

  1. Sign up at zrok.io
  2. Get your invite token from email
  3. Enter token in OverDrive settings
  4. Done — tunnel URL is auto-generated

Tailscale Tunnel

Free, with no bandwidth limits. Connect from any device connected to tailscale.

Quick Tailscale setup:

  1. Sign up at tailscale.com
  2. Open tailscale settings in Overdrive
  3. Generate a login URL and login
  4. Optionally, disable key expiry in tailscale if you would not like to log in every 6 months

Tailscale proxy

With tailscale enabled, the tailscale proxy can be enabled from the tailscale settings. This allows accessing an MQTT server through tailscale without port forwarding. This can be accessed via the tailscale IP or a subnet that has been advertised on tailscale.

Home Assistant Integration

OverDrive can publish your vehicle's live telemetry to Home Assistant over MQTT and let Home Assistant send commands back to the car (climate, windows, seats, charge limit, and more). Entities appear in Home Assistant automatically — no YAML editing required.

Everything is local. Commands are sent straight to the car's own software (the BYD SDK on the head unit). They never go through the BYD cloud. Your data and controls stay between your car and your Home Assistant.

What you get

  • Sensors (read-only): battery %, range, speed, location (as a device tracker on your HA map), tyre pressures, cabin/battery temperature, charging state, doors/windows status, and more.
  • Controls (optional, off by default): climate on/off + temperature + fan, windows, tailgate, sunroof/sunshade, seat heating/ventilation, daytime running lights, charge limit, child lock, wireless phone charger, and assorted car settings.

Before you start — what you need

  1. A running MQTT broker. If you use the Mosquitto add-on in Home Assistant, you already have one.
  2. The MQTT integration enabled in Home Assistant (Settings → Devices & Services → Add Integration → MQTT).
  3. Your broker's address and port (default port is 1883, or 8883 for TLS), and a username/password if your broker requires one.
  4. Your car and Home Assistant able to reach each other on the network. If they're not on the same LAN, enable the Tailscale proxy (see Tailscale proxy above) so the car can reach your broker without port forwarding.

Step 1 — Add the connection in OverDrive

Open OverDrive → MQTT (sidebar or app drawer) → Add Connection, then fill in:

Field What to enter
Connection Name Anything, e.g. Home Assistant
Broker URL Your broker's host, e.g. 192.168.1.10 (or mqtts://... for TLS)
Port 1883 (plain) or 8883 (TLS)
Username / Password Only if your broker requires login (leave blank otherwise)
Topic Leave the default overdrive/vehicle/telemetry unless you have a reason to change it

Self-signed / Mosquitto TLS certificate? Enable the trust self-signed certificates option on the connection so OverDrive accepts your broker's cert.

Step 2 — Turn on Home Assistant discovery

  1. Switch on Home Assistant discovery.
  2. Leave Discovery prefix as homeassistant (this matches Home Assistant's default — only change it if you customised yours).
  3. Save. Within a few seconds a new OverDrive device appears in Home Assistant under Settings → Devices & Services → MQTT, with all the sensors already populated.

That's it for read-only telemetry. ✅

Step 3 — Enable controls (optional)

By default OverDrive only publishes data — it ignores any command. To let Home Assistant actually control the car:

  1. On the same MQTT connection, turn on Allow vehicle control (this option only appears once Home Assistant discovery is enabled).
  2. Save. The controllable entities (climate, windows, seats, charge limit, …) now show up on the OverDrive device in Home Assistant, and you can operate them from any dashboard, automation, or voice assistant.

⚠️ Safety: "Allow vehicle control" is off by default and is a real control path to your car. Some actions move physical parts (windows, tailgate, sunroof). Only enable it on a broker you trust, behind a username/password, and ideally on a private network or your Tailscale tailnet.

Using the controls

Once discovery + control are on, the entities are standard Home Assistant entities — drag them onto a dashboard, call them from automations, or ask your voice assistant. No topic juggling needed.

Advanced: sending commands manually

Under the hood every control listens on <topic>/<key>/set (where <topic> is the connection's Topic from Step 1, default overdrive/vehicle/telemetry). Handy for testing with mosquitto_pub or for templated automations:

# Climate: turn on, set 21 °C, fan speed 3
mosquitto_pub -t 'overdrive/vehicle/telemetry/climate/mode/set'        -m 'auto'
mosquitto_pub -t 'overdrive/vehicle/telemetry/climate/temperature/set' -m '21'
mosquitto_pub -t 'overdrive/vehicle/telemetry/climate/fan_mode/set'    -m '3'

# Vent the cabin / open windows
mosquitto_pub -t 'overdrive/vehicle/telemetry/windows_all/set' -m 'OPEN'   # or CLOSE / STOP

# Charge limit: enable and cap at 80 %
mosquitto_pub -t 'overdrive/vehicle/telemetry/charge_cap_enabled/set' -m '1'
mosquitto_pub -t 'overdrive/vehicle/telemetry/charge_cap_percent/set' -m '80'

# Daytime running lights on
mosquitto_pub -t 'overdrive/vehicle/telemetry/drl/set' -m 'on'

Full list of controllable entities and their accepted payloads:

Control Key Payloads
Climate mode climate/mode off, auto
Climate temperature climate/temperature 1733 (°C)
Climate fan climate/fan_mode 07
Windows windows_all OPEN, CLOSE, STOP
Tailgate tailgate OPEN, CLOSE, STOP
Sunroof sunroof OPEN, CLOSE, STOP
Sunshade sunshade OPEN, CLOSE, STOP
Driver / passenger seat heating seat_heat_driver, seat_heat_passenger off, low, medium, high
Driver / passenger seat ventilation seat_vent_driver, seat_vent_passenger off, low, medium, high
Recall driver seat memory seat_memory_driver PRESS
Daytime running lights drl on / off (or 1 / 0)
Speed-limit warning adas_slw on / off
Charge limit on/off charge_cap_enabled 1 / 0
Charge limit % charge_cap_percent 50100 (step 5)
Child lock child_lock 1 / 0
Phone wireless charger wireless_charging 1 / 0
Car settings setting_<name> depends on setting (on/off, a number, or a fixed list)

Troubleshooting

  • No OverDrive device in Home Assistant? Check the MQTT connection shows Connected in OverDrive, confirm the Discovery prefix matches HA's (default homeassistant), and make sure the HA MQTT integration points at the same broker.
  • Sensors show but controls are missing? "Allow vehicle control" isn't enabled — see Step 3 (it only appears after discovery is on).
  • A command does nothing? The car must be awake/accessible to the head-unit SDK for that action. OverDrive optimistically updates the entity, then the next telemetry refresh reconciles the true state.
  • Broker on a different network? Enable the Tailscale proxy so the car can reach it without port forwarding.

Tech Specs

Category Detail
Resolution Up to 2560×1920
Codec H.264 / H.265 (HEVC)
Bitrate 2–12 Mbps (configurable)
FPS 15–30 fps
CPU Usage <28% (optimized)
Memory ~150MB
Streaming Latency <100ms
Boot Time <3 seconds
AI Detection Hardware accelerated, real-time (vehicles, people, objects)
Tested On BYD Seal (Global)
Platform DiLink v3
Android 10+ (API 29+)
Architecture arm64-v8a

Should work on all BYD vehicles with DiLink v3 and panoramic camera system.

Building from Source

git clone https://github.com/yash-srivastava/Overdrive-release.git

Set up signing by exporting these environment variables before building:

export KEYSTORE_FILE=/path/to/your/release.jks
export KEYSTORE_PASSWORD=your_password
export KEY_PASSWORD=your_key_password
export KEY_ALIAS=your_alias

Then build with Gradle:

./gradlew assembleRelease

VLESS Proxy Setup (Optional)

The ISP blocklist bypass feature uses a VLESS Reality proxy. The app ships with placeholder credentials — you need to supply your own.

  1. Edit app/src/main/cpp/secrets/secrets.json and fill in your VLESS server details:

    "proxy": {
      "PROXY_SERVER_IP": "your.server.ip",
      "PROXY_SERVER_PORT": "443",
      "PROXY_UUID": "your-uuid-here",
      "PROXY_SHORT_ID": "your-short-id",
      "PROXY_PUBLIC_KEY": "your-public-key",
      "PROXY_SNI": "google.com"
    }
  2. Encrypt each value using the helper script:

    pip install pycryptodome
    python3 generate_safe_enc.py "your.server.ip"
  3. Replace the corresponding Safe.s("...") values in app/src/main/java/com/overdrive/app/daemon/GlobalProxyDaemon.java (lines 71–79).

  4. Rebuild the app.

If you don't need the proxy feature, you can skip this — the app works fine without it.

Zrok Token Setup (Optional)

If you want to use Zrok tunneling for remote access, you need your own Zrok invite token:

  1. Sign up at zrok.io and get your invite token from email
  2. Enter the token in the app: Daemons → Zrok settings
  3. If building from source, also replace YOUR_ZROK_TOKEN in app/src/main/java/com/overdrive/app/daemon/telegram/DaemonCommandHandler.java with your token (this is only used for the Telegram bot's /tunnel zrok command)

Privacy

  • 100% local storage — all recordings saved on device
  • No account required
  • No cloud upload — remote viewing is direct via tunnels
  • Open source — audit the code yourself

Translations

OverDrive's UI is translated through Crowdin. The app currently ships in 16 languages (English, German, Spanish, French, Hindi, Italian, Japanese, Korean, Dutch, Norwegian Bokmål, Brazilian Portuguese, Russian, Thai, Turkish, Vietnamese, Simplified Chinese, Traditional Chinese), with another ~14 languages open for community translation (Polish, Czech, Romanian, Catalan, Swedish, Finnish, Danish, Greek, Hungarian, Hebrew, Arabic, Serbian, Ukrainian, Afrikaans).

How to help

  1. Sign up at crowdin.com (free).
  2. Visit the OverDrive project and click Join.
  3. Pick a language and translate strings directly in Crowdin's web editor — no GitHub or coding required.

New strings get auto-pre-translated by AI; translators just need to review and correct rather than start from scratch. Brand names (BYD, OverDrive, Tailscale, etc.) are protected — Crowdin's glossary marks them "do not translate".

When you save translations they enter as suggestions. Once enough community translators agree, or a proofreader approves, they land in the next release via an automated pull request.

Want proofreader access?

If you've contributed substantial translations for a language, open an issue or DM the maintainer for Proofreader role — that lets you approve translations directly without waiting for review.

Community

Acknowledgments

  • Native Bangcle Crypto Engine — Full Java port of BYD's proprietary white-box AES encryption, based on the reverse engineering work by Niek/BYD-re and jkaberg/pyBYD. Zero new dependencies — uses the existing OkHttp stack and Java crypto libraries.
  • 3D BYD Vehicle Models — Vehicle Control page uses base models from ddiaz-design's BYD collection on Sketchfab.

Changelog

v12 — May 2026: Vehicle Control, ROI Scheduling & Cloud Sync

✨ New Features

  • Vehicle Control Page — Interactive dashboard featuring a 3D BYD Seal model with customizable body color, real-time remote controls (lock/unlock, trunk, windows, AC, seat heating/cooling via BYD Cloud + local HAL), live state sync with animated indicators, and an experimental 3D surround view using fisheye camera projection (might not work or lag)
  • Surveillance ROI & Schedule Selection — Define regions of interest and time-based schedules for surveillance activation, reducing unnecessary recordings and false triggers
  • MQTT Listener Updates from BYD Cloud — Real-time push notifications from BYD Cloud via MQTT subscription, enabling state sync

⚡ Optimizations & Fixes

  • Fixed Wrong Camera Bug — Resolved camera feed mismatch issue; added manual camera ID selection option for vehicles with non-standard configurations
  • Improved Surveillance Accuracy — Reduced false positives through refined motion detection and AI gating logic
  • Improved SOH Calculation — Enhanced State of Health estimation logic with option to reset SOH for recalibration after battery service or firmware updates
  • Fixed No Video Signal in OEM Dashcam — Resolved issue where the OEM dashcam feed would show no signal under certain initialization conditions

v11 — May 2026: BYD Cloud Deterrent, Sentry Mode Alarm & Pipeline Fixes

✨ New Features

  • BYD Cloud Deterrent — When surveillance detects a confirmed threat, OverDrive can now automatically flash the car's headlights or honk the horn via BYD's cloud API. Three modes available: Silent (record only), Flash Lights, and Horn + Lights. Recurring triggers every 15 seconds while motion continues
  • BYD Cloud Account Setup — One-time setup in Surveillance Settings to connect your BYD app account. Supports all 14 overseas server regions (EU, India, Australia, Singapore, Brazil, Japan, Korea, Saudi Arabia, Turkey, Mexico, Indonesia, Vietnam, Norway, Uzbekistan). Credentials are stored locally on the device and never sent to any third-party server — all communication goes directly to BYD's official API
  • Native Bangcle Crypto Engine — Full Java port of BYD's proprietary white-box AES encryption, based on the reverse engineering work by Niek/BYD-re and jkaberg/pyBYD. Zero new dependencies — uses the existing OkHttp stack and Java crypto libraries. No Python runtime, no JavaScript bridge, no bloat
  • Test Connection Button — Verify your BYD Cloud setup works by flashing the car's lights directly from the settings page

⚡ Optimizations & Fixes

  • Camera/Recording Pipeline Optimizations — Reduced memory allocations and improved frame throughput in the GPU surveillance and recording pipelines
  • SOH & Charging Info Fixes — Fixed State of Health and charging data not displaying correctly on some BYD models

v10 — April 2026: Surveillance Overhaul, Camera Re-Config & MQTT SSL

✨ New Features

  • Camera Re-Configuration — New setup flow to identify and assign the correct camera and video feeds for different BYD vehicles. Helps resolve mismatched or swapped camera inputs across trims and model years
  • Status Pill Overlay — Persistent floating indicator showing real-time recording and trip status. Automatically hides when ACC is off to save resources, reappears when you start the car
  • MQTT SSL/TLS Support — Secure connections to MQTT brokers now work properly. Home Assistant, Mosquitto with TLS, and other SSL-enabled brokers are fully supported
  • Surveillance Detection Overhaul — Major rework of the motion detection pipeline:
    • Select any combination of cameras to trigger motion events
    • Improved detection algorithm with significantly fewer false positives
    • New filter settings for sensitivity, cooldown, and minimum motion area
    • Preset configurations (Parking, Outdoor, etc.) for quick setup

⚡ Optimizations & Fixes

  • BYD Camera "No Signal" Fix — Resolved the native camera signal loss issue that could occur when OverDrive is running alongside the BYD dashcam
  • CPU Performance — Reduced CPU cycles across the recording and surveillance pipeline, yielding roughly 10–15% lower CPU usage compared to the last release
  • Event Deletion — Fixed a bug where automated event deletion was not properly removing files from storage
  • SOH & Energy Display — Corrected State of Health estimation calculations, fixed kWh consumption showing incorrect values on trip details, and charging power now displays correctly

v9 — April 2026: MQTT Telemetry, PHEV Support & Camera Reliability

✨ New Features

  • MQTT Telemetry — Connect to up to 5 MQTT brokers to publish vehicle telemetry with configurable intervals, QoS, and proxy support. Full web UI with live status and telemetry preview, accessible from sidebar and Android drawer
  • PHEV & Sealion 6 DM-i Support — Plug-in hybrids now show correct remaining kWh, charging power, and battery health
  • Terrain-Aware Driving Scores — Driving DNA adjusts scoring thresholds based on GPS altitude (flat, hilly, climb, descent). Elevation visible on trip cards
  • Trip Consumption Display — Average consumption (kWh/100km) in trip summaries and detail view, with %/100km fallback for PHEVs
  • Battery Health & SOH — Battery health tracking with voltage history, cell temperatures, SOH estimation, and ABRP battery temperature uploads
  • Zrok Token Reset — Zrok reserved tunnel token can now be reset directly from the UI
  • BYD Camera Arbitration — OverDrive registers with the BYD camera service so the native dashcam no longer loses video signal

🐛 Bug Fixes

  • Fixed "no video signal" on the native BYD AVM camera when OverDrive is running
  • Fixed double-recording and streaming issues across drive mode switches and camera interruptions
  • Fixed trips being lost on ACC OFF and improved trip distance accuracy with GPS fallback
  • Fixed SOC reading wrong source, charging power showing 0 kW, and SOH estimation accuracy
  • Fixed driving score penalties for one-pedal driving and smoothness jitter
  • Fixed performance chart time filters affecting the wrong chart
  • Fixed MP4 corruption on surveillance stop and video playback of deleted recordings
  • Fixed surveillance toggle and sentry state management across reboots and mode changes
  • Improved daemon stability — watchdog retries on transient crashes, fixed Telegram and Zrok launch issues

v8 — April 2026: BYD Yuan Pro Support, Network Awareness & Sentry Reliability

⚡ Network Display

  • Added a network status indicator on the left nav panel across all pages
  • Displays WiFi SSID, IP address, or Mobile Data connectivity status
  • Icon dynamically switches between WiFi, cellular, and disconnected states

🚗 BYD Yuan Pro Support

  • Added full support for BYD Yuan Pro — sentry mode, surveillance, live streaming, ABRP telemetry, and all vehicle data features work out of the box

🎥 Sentry

  • Fixed ACC status getting stuck on "ON" after turning off the car via BYD app
  • Resolved a gap in power level detection where the ON → ACC transition during BYD app shutdown was not triggering sentry mode re-entry

📹 Events & Recordings

  • Fixed events page showing deleted or inaccessible ghost recordings from unmounted SD card paths
  • Videos that no longer exist on disk are now properly filtered out instead of showing as unplayable entries
  • Eliminated duplicate entries when the same recording exists across SD card and internal storage

🐛 Bug Fixes

  • 🔋 ACC State Reliability: Hardened the ACC state notification path so CameraDaemon always receives the correct state, even when surveillance is disabled or suppressed by safe zones
  • 💾 Storage Integrity: Calendar date highlights and storage statistics now accurately reflect only readable, valid files on disk

v7 — April 2026

  • 🔓 Open sourced the project
  • 🧹 Removed hardcoded credentials (keystore, VPS, VLESS, Zrok token)
  • 🔧 Signing config now uses environment variables
  • 🔐 VLESS proxy credentials replaced with placeholders
  • 🛠️ Added generate_safe_enc.py helper for encrypting your own secrets
  • 📄 Added comprehensive README with setup guide
  • 📝 Added .gitignore for clean repo hygiene

v1.0.0 — January 2026

  • 🚀 Optimized pipeline: <28% CPU usage
  • 🎯 Market first: Proximity recording using BYD radar sensors
  • 📊 Real-time performance monitor
  • 🛡️ Advanced Sentry Mode with motion detection
  • 🤖 AI-powered object detection
  • ☁️ 3 remote access options (LAN, Cloudflared, Zrok)
  • 📱 Telegram bot notifications
  • 🔧 ADB shell console
  • 🌐 ISP blocklist bypass via BYD SIM
  • 📹 H.265 (HEVC) codec support
  • 📚 Recording library with calendar view

License

Open source under MIT License. Your data stays on your device.

About

Advanced Sentry Mode for BYD Vehicles

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors