Giter VIP home page Giter VIP logo

netbirdio / android-client Goto Github PK

View Code? Open in Web Editor NEW
39.0 6.0 8.0 46.52 MB

Connect your devices into a single secure private WireGuard®-based mesh network with SSO/MFA and simple access controls.

Home Page: https://netbird.io

License: GNU General Public License v3.0

Shell 0.27% Objective-C 1.23% Swift 0.11% JavaScript 1.97% Ruby 1.70% TypeScript 60.40% Java 33.80% Objective-C++ 0.52%
android golang gomobile mesh mesh-networks netbird vpn wireguard wireguard-vpn zero-trust-network-access

android-client's Introduction


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

menu peer-overview mainscreen

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/)
  • npm 1.18, yarn and nvm:
# download and install nvm https://github.com/nvm-sh/nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
#
nvm install v19
nvm use v19
npm install -g yarn
npm install -g npx

run locally

  1. close all repositories:

assuming you use a path like ~/projects locally

mkdir ~/projects
cd projects
# clone netbird repo
git clone [email protected]:netbirdio/netbird.git
# clone react native app repo
git clone [email protected]: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"
  1. Build the gomobile lib and the Android client lib:
cd ~/projects/android-client
bash -x build-android-lib.sh ~/projects/netbird
  1. Install the react native app dependencies
yarn install
yarn add file:./react/netbird-lib
  1. Run the dev version
yarn start
  1. select a to install it on your Android phone or emulator

Generate debug bundle

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

  1. run npx from react native app repo
cd ~/projects/android-client
npx react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
  1. run gradlew
cd ~/projects/android-client/android
./gradlew bundleDebug

android-client's People

Contributors

hammyhavoc avatar lixmal avatar mlsmaycon avatar pappz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

android-client's Issues

Anyone working on a F-droid build?

I have never contributed an app to F-droid but since I get all of my apps from F-droid I would like to jump start the process. However, I do not want to duplicate efforts so I am reaching out to see who else has started working on adding Netbird to F-droid. If someone would like to help out I am more than willing to collaborate. I see that adding Netbird to F-droid is on the Netbird roadmap so if the Netbird developers want me to hold off I will me more than happy to comply. Either way, the existence of this repository is a great step in the right direction. Way to go Netbird!

Missing repo

In the built instructions there is the following repo:

git clone [email protected]:netbirdio/react-native-app.git

However, it seems that this repo is either private or non existent. Is this a mistake or am I missing something?

Netbird android client versioning

The most recent version of Netbird for Android is 0.0.20 from February 6, 2024

Screenshot_20240418-090552

https://play.google.com/store/apps/details?id=io.netbird.client

With this version installed, the Netbird peer list page shows the Netbird version as 0.25.6 and indicates that there is an update available

Screenshot from 2024-04-18 09-07-10

The Netbird peer list says that there is a version 0.27.3 available for Android.

Screenshot from 2024-04-18 09-10-43

I'm assuming that this is just some kind of mismatch / disconnect between the peer list's assumptions about what versions of each client are out there and what's actually available this repo or in the play store

What is the relationship between the android app version (0.0.20) and the netbird app version (0.25.6)?

Is the problem here that the Netbird peer list assumes that all clients newest version is the same?

Or is the problem that the newest version of the android app should actually be surfacing itself as version 0.27.3?

I'm unsure if the problem is with the Android app's version or with the website peer list.

Connected but no pears, sometimes troubles reconnecting

This PR is created to increase the visibility of a major Android client problem, making it unusable.

Android client seems connected but sees no peers and there is no internet access. Sometimes its impossible to reconnect and one need to change server and go back to netbird's one to make it connect again.

Pixel 6, graphene os, no battery optimization.

See details posted in the main repo by @europacafe netbirdio/netbird#1512

[Feature Request] Dark mode

Parity with iOS client. Should ideally automatically respond to system dark mode, and have a manual toggle for those who want to change it.

Terrible download but not upload

Im on Galaxy S21Fe (netbird 0.0
23) and my
Download speed is 0.2Mbps
Upload speed is 4.3Mbps

On macbook i get 100x download and 2-5x upload (newest netbird)
Same with windows (newest netbird)
(Hotspot with same phone)

When using plain old wireguard app on my phone, my download and upload are both good

Unsure how to fix or where to report?

Run Conditions

I recently had the Netbird client enabled while flying, and found my phone was chewing up battery trying to connect repeatedly while in Airplane Mode.

I've seen other apps (e.g., Syncthing) resolve this by defining run conditions (run on wifi only, run on wifi/mobile data only, etc.).

Has anyone else experienced this?

[Feature Request] Wireguard Kernel Module Support

This is probably the last piece that stops me from migrating all my network setup towards Netbird. Currently using a wireguard server and a custom router to manage my traffic. Android native kernel modules generally have better performance and power consumption compared to user space lib implementation and also with global start-on boot support. Quite useful as the global and always on VPN for mobile devices. It would be great if Netbird provided an option to use a kernel module. Some reference codes can be found at wireguard-android.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.