All Projects → anbox → Anbox

anbox / Anbox

Licence: gpl-3.0
Anbox is a container-based approach to boot a full Android system on a regular GNU/Linux system

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Makefile
30231 projects
java
68154 projects - #9 most used programming language
shell
77523 projects
CMake
9771 projects

Projects that are alternatives of or similar to Anbox

packages
Docker Image, Flatpak, Windows, and Ubuntu SNAP packages for a few OSS projects
Stars: ✭ 16 (-99.78%)
Mutual labels:  snap
subjx
Drag/Resize/Rotate Javascript library
Stars: ✭ 155 (-97.85%)
Mutual labels:  snap
Slack Dark Mode
Slack Dark Mode for macOS Desktop
Stars: ✭ 439 (-93.92%)
Mutual labels:  snap
app-builder
Generic helper tool to build app in a distributable format
Stars: ✭ 83 (-98.85%)
Mutual labels:  snap
introduction-to-computer-science
Microsoft TEALS Program - Introduction to Computer Science
Stars: ✭ 93 (-98.71%)
Mutual labels:  snap
Bauh
Graphical user interface for managing your Linux applications. Supports AppImage, Arch (repositories/AUR), Flatpak, Snap and native Web applications.
Stars: ✭ 280 (-96.12%)
Mutual labels:  snap
duolingo-desktop
Desktop client for the Duolingo language learning application
Stars: ✭ 34 (-99.53%)
Mutual labels:  snap
Microk8s
MicroK8s is a small, fast, single-package Kubernetes for developers, IoT and edge.
Stars: ✭ 6,017 (-16.71%)
Mutual labels:  snap
openra
No description or website provided.
Stars: ✭ 21 (-99.71%)
Mutual labels:  snap
Snap.swift
Snapshot testing in a snap 🎨
Stars: ✭ 420 (-94.19%)
Mutual labels:  snap
setup-linux-debian
Installs essential JavaScript development programs.
Stars: ✭ 16 (-99.78%)
Mutual labels:  snap
microk8s-kube-bench
MicroK8s analyzed with kube-bench
Stars: ✭ 17 (-99.76%)
Mutual labels:  snap
Electronplayer
An Electron Based Web Video Services Player. Supporting Netflix, Youtube, Twitch, Floatplane, Hulu And More
Stars: ✭ 292 (-95.96%)
Mutual labels:  snap
NetsBlox
a networked visual programming language based on Snap!
Stars: ✭ 59 (-99.18%)
Mutual labels:  snap
Argos Translate
Open source neural machine translation in Python. Designed to be used either as a Python library or desktop application. Uses OpenNMT for translations and PyQt for GUI.
Stars: ✭ 475 (-93.42%)
Mutual labels:  snap
winbox
Snap package with winbox from MikroTik (https://mikrotik.com)
Stars: ✭ 31 (-99.57%)
Mutual labels:  snap
Pyrosar
framework for large-scale SAR satellite data processing
Stars: ✭ 274 (-96.21%)
Mutual labels:  snap
React Fullpage
Official React.js wrapper for fullPage.js https://alvarotrigo.com/react-fullpage/
Stars: ✭ 707 (-90.21%)
Mutual labels:  snap
Tauonmusicbox
The Linux desktop music player from the future! 🌆
Stars: ✭ 494 (-93.16%)
Mutual labels:  snap
Pagepiling.js
pagePiling plugin by Alvaro Trigo. Create a scrolling pile of sections. http://alvarotrigo.com/pagePiling/
Stars: ✭ 3,993 (-44.73%)
Mutual labels:  snap

Snap Status Build Status

Anbox

Anbox is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu. In other words: Anbox will let you run Android on your Linux system without the slowness of virtualization.

Overview

Anbox uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a full Android system in a container and provide Android applications on any GNU/Linux-based platform.

The Android inside the container has no direct access to any hardware. All hardware access is going through the anbox daemon on the host. We're reusing what Android implemented within the QEMU-based emulator for OpenGL ES accelerated rendering. The Android system inside the container uses different pipes to communicate with the host system and sends all hardware access commands through these.

For more details have a look at the following documentation pages:

Anbox is currently suited for the desktop use case but can be used on mobile operating systems like Ubuntu Touch or postmarketOS (installation instructions). However this is still a work in progress.

The Android runtime environment ships with a minimal customized Android system image based on the Android Open Source Project. The used image is currently based on Android 7.1.1

Installation

See our installation instructions for details.

Supported Linux Distributions

At the moment we officially support the following Linux distributions:

  • Ubuntu 18.04 (bionic)
  • Ubuntu 20.04 (focal)

However all other distributions supporting snap packages should work as well as long as they provide the mandatory kernel support (see documentation).

Install and Run Android Applications

You can install Android applications from the command line using adb.

adb install xyz.apk

The apk files you will sometimes find on the internet tend to only have arm support, and will therefore not work on x86_64.

You may want to install F-Droid to get applications graphically. Note that the Google Play Store will not work as is, because it relies on the proprietary Google Play Services, which are not installed.

Build from source

Requirements

To build the Anbox runtime itself there is nothing special to know. We're using cmake as build system. A few build dependencies need to be present on your host system:

  • libdbus
  • google-mock
  • google-test
  • libboost
  • libboost-filesystem
  • libboost-log
  • libboost-iostreams
  • libboost-program-options
  • libboost-system
  • libboost-test
  • libboost-thread
  • libcap
  • libexpat1-dev
  • libsystemd
  • mesa (libegl1, libgles2)
  • libglm
  • libsdl2
  • libprotobuf
  • protobuf-compiler
  • python3
  • lxc (>= 3.0)

On an Ubuntu system you can install all build dependencies with the following command:

$ sudo apt install build-essential cmake cmake-data debhelper dbus google-mock \
    libboost-dev libboost-filesystem-dev libboost-log-dev libboost-iostreams-dev \
    libboost-program-options-dev libboost-system-dev libboost-test-dev \
    libboost-thread-dev libcap-dev libexpat1-dev libsystemd-dev libegl1-mesa-dev \
    libgles2-mesa-dev libglm-dev libgtest-dev liblxc1 \
    libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev lxc-dev \
    pkg-config protobuf-compiler python3-minimal

We recommend Ubuntu 20.04 (focal) as your build environment.

Build

Afterwards you can build Anbox with

$ git clone https://github.com/anbox/anbox.git --recurse-submodules
$ cd anbox
$ mkdir build
$ cd build
$ cmake ..
$ make

A simple

$ sudo make install

will install the necessary bits into your system.

If you want to build the anbox snap instead you can do this with the following steps:

$ ARCH=$(uname -m)
$ cp /path/to/android.img data/android-images/android-$ARCH.img
$ snapcraft

The result will be a .snap file you can install on a system supporting snaps

$ snap install --dangerous --devmode anbox_1_amd64.snap

Run Anbox

Running Anbox from a local build requires a few more things you need to know about. Please have a look at the "Runtime Setup" documentation.

Documentation

You will find additional documentation for Anbox in the docs subdirectory of the project source.

Interesting things to have a look at

Reporting bugs

If you have found an issue with Anbox, please file a bug.

Get in Touch

If you want to get in contact with the developers please feel free to join the #anbox IRC channel on Libera.Chat.

Copyright and Licensing

Anbox reuses code from other projects like the Android QEMU emulator. These projects are available in the external/ subdirectory with the licensing terms included.

The Anbox source itself, if not stated differently in the relevant source files, is licensed under the terms of the GPLv3 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].