iiordanov / remote-desktop-clients

VNC, RDP, SPICE, and oVirt/RHEV/Proxmox Clients for Android and Blackberry 10
GNU General Public License v3.0
2.04k stars 562 forks source link

Intro

This is the source code for bVNC, aRDP, aSPICE and Opaque, four remote desktop clients for Android.

Please see the LICENSE file for information on how the source is licensed.

Links to App Stores

bVNC is a VNC client. It's released as a donation version at bVNC Pro, and a free version at bVNC

aRDP is a RDP client. It's released as a donation version at, aRDP Pro, and a free version at aRDP

aSPICE is a SPICE Protocol client. It's available as a donation version at, aSPICE Pro, and a free version at aSPICE

Opaque is an oVirt, RHEV, and Proxmox client available at Opaque

The donation versions are also available on Amazon App Store at bVNC, aRDP, aSPICE, Opaque.

Building

There are different ways to build the applications depending on OS and whether you are using pre-built libraries, or building them from scratch.

On Linux and WSL2

These instructions should work on Ubuntu 18.04, 20.04, and Windows Subsystem for Linux 2. Builds are likely to also work on MacOS, feedback is welcome.

Pick one of I-a, I-b, or I-c below, then move onto II.

I-a With Prebuilt Libraries

Building the projects with pre-built dependencies.

    ./download-prebuilt-dependencies.sh
    ./bVNC/prepare_project.sh --skip-build libs nopath

I-b From Scratch with Docker

Make sure you're running the commands below from the root of the project. Ensure ANDROID_SDK is set to the path to your SDK.

export ANDROID_SDK=${HOME}/Android/Sdk
echo "USER_UID=$(id -u)" > docker/.env
echo "USER_GID=$(id -g)" >> docker/.env
echo "ANDROID_SDK=${ANDROID_SDK}" >> docker/.env
echo "CURRENT_WORKING_DIR=$(pwd)" >> docker/.env
docker-compose -f docker/docker-compose.yml up

I-c From Scratch

Building from scratch and working in Android Studio.

On Windows with Git Bash

These instructions are for Windows without WSL2 installed. For now, only pre-build dependencies are supported in this configuration.

II Importing projects into Android Studio

This should be as simple as selecting "Open an existing Android Studio project" on the Welcome screen, browsing to the remote-desktop-clients directory and selecting it.

Custom Certificate Authority

You can add custom CAs for aSPICE and Opaque in remoteClientLib/certificate_authorities/. They will be merged with the ca-bundle.crt provided to the app to validate your self-signed server certs if you have any.

Generating Keyboard Layouts for aSPICE and Opaque

The directory bVNC/layouts contains a utiliy convert.py that can be used to generate new layouts for the desktop clients.

sudo apt install qemu-keymaps
cd bVNC/layouts
python3 ./convert.py

If you would like to add a layout, the best way to do so would be to create a file with the correct format in /usr/share/qemu/keymaps/. Ideally, you should submit this file to the qemu project so everybody would be able to benefit from the new layout.

III Building "Custom" VNC clients

It is possible to programmatically build additional customized clients based on the VNC client contained in this project without altering any of the source code of the project.

Bugs

Please post any bugs you find at the GitHub issue tracker:

https://github.com/iiordanov/remote-desktop-clients/issues

Support Forum

Questions and general discussion should be posted at the following forum:

https://groups.google.com/forum/#!forum/bvnc-ardp-aspice-opaque-remote-desktop-clients