bg443/JetBird
11
71
Fork
You've already forked JetBird
6
An unofficial, FLOSS, native Android NetBird client built with privacy in mind
  • Kotlin 98%
  • Shell 1.6%
  • C 0.3%
  • CMake 0.1%
Find a file
bg443 3f30779dba
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
Update Netbird
2026年07月09日 18:24:53 +01:00
.gitea/issue_template JetBird 2024年08月18日 16:28:44 +01:00
.idea Update NetBird 2026年04月13日 19:44:42 +01:00
app Update Gradle scripts 2026年07月09日 18:23:01 +01:00
assets Update metadata 2025年06月04日 18:23:43 +01:00
fastlane/metadata/android/en-US Update NetBird to v0.74.3 2026年07月08日 17:27:13 +01:00
gradle Add local network permission on Android 17+ ( #118 ) 2026年07月03日 20:54:52 +01:00
jni Update cmake paths 2025年05月28日 11:18:51 +01:00
lib JetBird 2024年08月18日 16:28:44 +01:00
netbird @7cd5c1732b Update Netbird 2026年07月09日 18:24:53 +01:00
patches Implement profile renaming 2026年06月25日 18:55:39 +01:00
scripts Update Gradle and downgrade compileSdk 2026年06月10日 19:26:43 +01:00
.gitignore Implement JNI SIGSYS handler 2025年02月24日 22:49:47 +00:00
.gitmodules JetBird 2024年08月18日 16:28:44 +01:00
.woodpecker.yml Update JDK 2026年05月01日 23:31:58 +01:00
build.gradle.kts Add local network permission on Android 17+ ( #118 ) 2026年07月03日 20:54:52 +01:00
gradle.properties Add local network permission on Android 17+ ( #118 ) 2026年07月03日 20:54:52 +01:00
gradlew JetBird 2024年08月18日 16:28:44 +01:00
gradlew.bat JetBird 2024年08月18日 16:28:44 +01:00
LICENCE.md JetBird 2024年08月18日 16:28:44 +01:00
README.md Add local network permission on Android 17+ ( #118 ) 2026年07月03日 20:54:52 +01:00
settings.gradle.kts JetBird 2024年08月18日 16:28:44 +01:00

JetBird banner

An unofficial, FLOSS, native Android NetBird client built with privacy in mind

About

JetBird is an implementation of the NetBird client for Android.

It has been built with privacy in mind and contains no blobs or trackers.

Features

  • Native UI
  • Use SSO or setup keys
  • Use pre-shared keys
  • See all logs in real time
  • Quick tile
  • Exclude apps from the tunnel
  • Exit nodes (with selection and client-side customisation)
  • Tablet support
  • Reconnect on restart
  • Relay support from JetBird v1.0.4+ (with NetBird v0.29.0+ peers)
  • TV support (QR code login)
  • Lazy connection support - NetBird docs
  • External broadcast receiver for automation (e.g. via Tasker)
  • Profiles

Differences

There are a few differences between NetBird official Android client and JetBird. Some of these features rely on patches to the NetBird source (these are in patches/):

  • See all peer info
  • Use setup keys even with SSO support
  • Rosenpass support
  • Split tunneling via routes and/or per app
  • l18n

Install

Prebuilt binaries

  • Available to download in the releases tab
  • You can see the steps of the build on JetBird's CI page
  • Where possible, download the specific build for your device's architecture because the NetBird client is ~25MB and downloading the universal version will download all 4 architectures regardless of if you need them

APK Signature

dev.bg.jetbird
39:56:53:3C:54:22:18:34:9B:5F:3F:7F:3D:3A:69:26:06:0C:1A:0C:DF:32:D6:E5:8E:A1:DE:3A:36:C2:12:13

Build from source

  1. Build NetBird
./scripts/build_netbird.sh

JetBird's NetBird client patches will be applied automatically.

  1. Build APK
./gradlew :app:assembleRelease

Privacy

JetBird does not, and never will, call home.

JetBird/NetBird has to talk to your management server, which will have it's own privacy policy.

In the NetBird management portal, admins will be able to see:

  • You are using JetBird
  • JetBird and NetBird versions
  • Device model e.g. Pixel 9 Pro Fold
  • Operating system e.g. Android 14

JetBird makes no extra connections or requests outside of the NetBird client.

Permissions

JetBird requires a few permissions in order to function:

  • INTERNET
  • FOREGROUND_SERVICE/FOREGROUND_SERVICE_SYSTEM_EXEMPTED - used to run the VPN service
  • ACCESS_NETWORK_STATE/CHANGE_NETWORK_STATE - used to monitor network to check if VPN is already running etc.
  • ACCESS_LOCAL_NETWORK - used to talk to hosts within a local network - required on Android 17 or greater
  • POST_NOTIFICATIONS - used for notifications when JetBird is running and when upstream sends new routes
  • QUERY_ALL_PACKAGES - used so you can choose which apps aren't tunneled
  • RECEIVE_BOOT_COMPLETED - used to start the tunnel when the device reboots - this is disabled by default in the manifest and will enable itself once you enable it in settings

Notifications

Notifications are optional but Android requires JetBird to show a notification when the tunnel is running. This is dismissible on Android 13+.

Screenshots

Phone

Tablet

Issues

As JetBird is just a wrapper around the official NetBird client, most connection/peer/management issues will reside with upstream.

Please open an issue using the template provided if you believe you have found a bug or have a feature request!

Translations

You can contribute to JetBird translations here

Translation status

Libraries

See a full list of libraries used here

License


JetBird is free software: you can redistribute it and/or modify it under the terms of the GNU GPL-3.0-or-later License as published by the Free Software Foundation.

This software is provided with no warranty.

Other

"NetBird" and the "NetBird" logo are copyright owned by or licensed to Wiretrustee UG.

"WireGuard" and the "WireGuard" logo are registered trademarks of Jason A. Donenfeld.

"IzzyOnDroid" and the "IzzyOnDroid" logo are registered trademarks of IzzySoft.