Zoltán Papp 4315697fc3 Bind the VPN service with AUTO_CREATE so a config relaunch cannot kill it
A theme change relaunches MainActivity; the old instance's unbindService
reaches the service after the new instance has already bound, so the
service's stopSelf destroys it under the fresh binding. Without
BIND_AUTO_CREATE the binding neither keeps the service alive nor brings
it back, and onServiceDisconnected silently nulls mBinder — every action
afterwards fails with "VPN binder is null" until a full stop/start
cycle. AUTO_CREATE keeps the service alive while bound and rebinds it
after any real death; onServiceDisconnected now logs a warning too.
2026-09-01 11:14:16 +02:00
2025-06-05 20:37:51 +02:00
2026-08-07 19:06:33 +02:00
2026-08-25 19:44:07 +02:00
2025-06-05 20:37:51 +02:00
2025-11-21 15:33:42 +01:00
2026-08-07 19:06:33 +02:00
2024-02-28 19:21:08 +01:00
2025-06-05 20:37:51 +02:00
2025-06-05 20:37:51 +02:00
2025-06-05 20:37:51 +02:00
2024-02-28 19:21:08 +01:00


Start using NetBird at netbird.io
See Documentation
Join our Slack channel


NetBird Android client

The NetBird Android client allows connections from mobile devices running Android to private resources in the NetBird network.

Screenshots

mainscreen peer-overview peer-detail

Install

You can download and install the app from the Google Play Store:

Get it on Google Play

Building from source

Requirements

We need the following software:

  • Java 1.11. Usually comes with Android Studio
  • android studio initialized with jdk and emulator (not covered here, is a req from android-client project)
  • gradle (https://gradle.org/install/)

Prepare development environment

  1. Close all repositories:

assuming you use a path like ~/projects locally

mkdir ~/projects
cd projects
# clone netbird repo
git clone --recurse-submodules git@github.com:netbirdio/android-client.git
  1. Checkout the repositories to the branches you want to test. If you want the latest, check the status information on your IDE or on https://github.com and verify the branch list and commit history.
  2. Export JDK and Android home vars, on macOS they are: (please contribute with Linux equivalent)
# replace <USERNAME> with your name
export ANDROID_HOME=/Users/<USERNAME>/Library/Android/sdk
export JAVA_HOME=/Applications/Android Studio.app/Contents/jbr/Contents/Home
  1. Install NDK and CMake
cd ~/projects/android-client
$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "ndk;23.1.7779620"

Generate debug bundle

Follow the steps to run locally until the step 5 then run the following steps:

  1. Build Go agent library
cd ~/projects/android-client
./build-android-lib.sh
  1. Run gradlew
cd ~/projects/android-client/android
./gradlew bundleDebug  -PversionCode=123 -PversionName=1.2.3
Languages
Java 96.8%
HTML 1.5%
CSS 1%
Shell 0.7%