Changes: * Android system log is now dumped into $ANDROID_DATA/system.log so it can be accessed without adb and logcat * Fix SEGV in art on newer kernels with CVE-2017-1000364 fixed Fixes #337
158 lines
4 KiB
YAML
158 lines
4 KiB
YAML
name: anbox
|
|
version: 3
|
|
version-script: |
|
|
if [ "$SNAPCRAFT_GRADE" = "stable" ]; then
|
|
echo $SNAPCRAFT_PROJECT_VERSION
|
|
else
|
|
echo $SNAPCRAFT_PROJECT_VERSION-$(git rev-parse --short HEAD)
|
|
fi
|
|
summary: Android in a Box
|
|
description: |
|
|
Runtime for Android applications which runs a full Android system
|
|
in a container using Linux namespaces (user, ipc, net, mount) to
|
|
separate the Android system fully from the host.
|
|
confinement: devmode
|
|
grade: devel
|
|
|
|
apps:
|
|
anbox:
|
|
command: bin/anbox-wrapper.sh
|
|
container-manager:
|
|
command: bin/container-manager.sh start
|
|
stop-command: bin/container-manager.sh stop
|
|
daemon: simple
|
|
|
|
parts:
|
|
android-images:
|
|
plugin: dump
|
|
# This needs to be any directory but not the root one as if we use
|
|
# it we get superious permissions errors with the copied .git tree
|
|
source: data
|
|
build-packages:
|
|
- wget
|
|
install: |
|
|
IMAGE_PATH=
|
|
IMAGE_NAME=
|
|
ARCH=$(uname -m)
|
|
|
|
case "$ARCH" in
|
|
x86_64)
|
|
IMAGE_PATH="2017/07/07"
|
|
IMAGE_NAME="android_2_amd64"
|
|
;;
|
|
arm*)
|
|
IMAGE_PATH="2017/06/12"
|
|
IMAGE_NAME="android_1_armhf"
|
|
;;
|
|
esac
|
|
|
|
if [ -z "$IMAGE_PATH" ] || [ -z "$IMAGE_NAME" ]; then
|
|
echo "ERROR: Unknown architecture $ARCH"
|
|
exit 1
|
|
fi
|
|
|
|
# FIXME: downloading with a source: field doesn't work as snapcraft
|
|
# expects the downloaded file to be an archive it can extract.
|
|
wget http://build.anbox.io/android-images/$IMAGE_PATH/$IMAGE_NAME.img
|
|
mv $IMAGE_NAME.img $SNAPCRAFT_PART_INSTALL/android.img
|
|
prime:
|
|
- android.img
|
|
anbox-common:
|
|
plugin: dump
|
|
source: scripts
|
|
organize:
|
|
snap-wrapper.sh: bin/anbox-wrapper.sh
|
|
container-manager.sh: bin/container-manager.sh
|
|
anbox-bridge.sh: bin/anbox-bridge.sh
|
|
prime:
|
|
- bin/anbox-bridge.sh
|
|
- bin/anbox-wrapper.sh
|
|
- bin/container-manager.sh
|
|
apparmor:
|
|
plugin: nil
|
|
stage-packages:
|
|
- apparmor
|
|
lxc:
|
|
source: https://github.com/lxc/lxc
|
|
source-type: git
|
|
source-tag: lxc-2.0.7
|
|
build-packages:
|
|
- libapparmor-dev
|
|
- libcap-dev
|
|
- libgnutls28-dev
|
|
- libseccomp-dev
|
|
- pkg-config
|
|
plugin: autotools
|
|
configflags:
|
|
- --disable-selinux
|
|
- --disable-python
|
|
- --disable-lua
|
|
- --disable-tests
|
|
- --disable-examples
|
|
- --disable-doc
|
|
- --disable-api-docs
|
|
- --disable-bash
|
|
- --disable-cgmanager
|
|
- --disable-apparmor
|
|
- --disable-seccomp
|
|
- --enable-capabilities
|
|
- --with-rootfs-path=/var/snap/anbox/common/lxc/
|
|
- --libexecdir=/snap/anbox/current/libexec/
|
|
organize:
|
|
snap/anbox/current/libexec: libexec
|
|
prime:
|
|
- lib/liblxc.so.1
|
|
- lib/liblxc.so.1.2.0
|
|
- libexec/lxc/lxc-monitord
|
|
anbox:
|
|
plugin: cmake
|
|
after:
|
|
- lxc
|
|
source: .
|
|
configflags:
|
|
# FIXME: Anbox currently has some paths with hard coded prefixes. Once
|
|
# that is fixed we can avoid using a prefix here.
|
|
- -DCMAKE_INSTALL_PREFIX:PATH=/usr
|
|
- -DANBOX_VERSION=$SNAPCRAFT_PROJECT_VERSION
|
|
build-packages:
|
|
- build-essential
|
|
- cmake
|
|
- cmake-data
|
|
- cmake-extras
|
|
- 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
|
|
- libdbus-1-dev
|
|
- libdbus-cpp-dev
|
|
- libegl1-mesa-dev
|
|
- libgles2-mesa-dev
|
|
- libglib2.0-dev
|
|
- libglm-dev
|
|
- libgtest-dev
|
|
- libprotobuf-dev
|
|
- libproperties-cpp-dev
|
|
- libsdl2-dev
|
|
- libsdl2-image-dev
|
|
- pkg-config
|
|
- protobuf-compiler
|
|
stage-packages:
|
|
- libegl1-mesa
|
|
- libgles2-mesa
|
|
- libgl1-mesa-glx
|
|
- libsdl2-2.0-0
|
|
- libsdl2-gfx-1.0-0
|
|
install: |
|
|
make test
|
|
prime:
|
|
- usr/bin/anbox
|
|
- usr/share/anbox
|
|
- usr/lib/*-linux-*/
|