Git Product home page Git Product logo

android's Introduction

Introduction

This is the eduVPN / Let's Connect! for Android application.

You can clone this repository by executing the following command (provided you have git installed):

git clone --recurse-submodules https://github.com/eduvpn/android.git

Or if your git version is below 2.13:

git clone --recursive https://github.com/eduvpn/android.git

Download the app

Get it on F-Droid Get it on Google Play

Running with Android Studio

First install the swig and go packages with your operating system package manager.

Make sure you have the latest stable version of Android Studio installed, you can download it from here. Open the project by opening the build.gradle in the root of this repository with Android Studio. Make sure that you have the following packages installed in the SDK Manager (Tools -> SDK Manager):

  • SDK Platforms - Android 10
  • SDK Tools - Android SDK Build Tools
  • SDK Tools - LLDB
  • SDK Tools - CMake
  • SDK Tools - Android SDK Platform-Tools
  • SDK Tools - Android SDK Tools
  • SDK Tools - NDK - 26.1.10909125 version (a later version might work, but is untested)

To find a specific version of a package (for the NDK), check the option 'Show Package Details' in the bottom-lower corner of the SDK Manager.

The app should now build when selecting Run -> Run 'app', or clicking the green play button next to the device selector.

Building

NOTE: building Android applications takes a lot of resources. The VM used to build the Let's Connect! application has 6GB of memory and 50G disk. Anything lower was not tested, but 1GB of memory definitely does not work.

The builder will spew a lot of backtraces/warnings, but does seem to complete eventually.

We last tested this on 2023-10-20 with Fedora 38.

We removed the Debian instructions as building on Debian no longer works on Debian 11 (as of 2023-03-06) and I have no desire to investigate fixing this.

Dependencies

Fedora

$ sudo dnf -y install \
    unzip \
    tar \
    git \
    swig \
    go \
    java-17-openjdk \
    java-17-openjdk-devel \
    ncurses-compat-libs \
    ninja-build \
    cmake \
    pv

Key Store

Generate a key store for signing the Android application:

$ keytool \
    -genkey \
    -keystore ${HOME}/android.jks \
    -keyalg RSA \
    -keysize 4096 \
    -sigalg SHA256withRSA \
    -dname "CN=eduVPN for Android" \
    -validity 10000 \
    -alias eduVPN

Additional documentation here.

Setup

$ ./builder_setup.sh

Build

Git

To build the app from git, i.e. tag, branch or commit, use the following after modifying the file if necessary. Use this if you want to build a test or development release.

$ ./build_app_git.sh

You'll find the signed output APK in ${HOME}/Projects.

Tar

To build the app from tar, i.e. the archive that contains the full source code including all submodules, use the following after modifying the file if necessary. Use this if you want to use an official release.

$ ./build_app_tar.sh

You'll find the signed output APK in ${HOME}/Projects.

Testing

To run all tests, execute the following command:

$ ./gradlew :app:connectedBasicDebugAndroidTest

android's People

Contributors

dzolnai avatar fantostisch avatar efef avatar jja2000 avatar kakopedreros avatar tribut avatar elbuit avatar poussinou avatar

Watchers

 avatar

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.