From b764671f1de75585ecdb5b03fcf082ca69afa217 Mon Sep 17 00:00:00 2001 From: Simon Fels Date: Sat, 26 May 2018 17:42:06 +0200 Subject: [PATCH] scripts: add script to get a shell inside the Android container --- scripts/anbox-shell.sh | 36 ++++++++++++++++++++++++++++++++++++ snap/snapcraft.yaml | 4 ++++ 2 files changed, 40 insertions(+) create mode 100755 scripts/anbox-shell.sh diff --git a/scripts/anbox-shell.sh b/scripts/anbox-shell.sh new file mode 100755 index 0000000..10016f0 --- /dev/null +++ b/scripts/anbox-shell.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +if [ "$(id -u)" -ne 0 ]; then + echo "ERROR: You need to run this script as root!" + exit 1 +fi + +CONTAINER_PATH="$SNAP_COMMON/containers" +CONTAINER_NAME=default + +if [ -z "$SNAP" ] ; then + CONTAINER_PATH=/var/lib/anbox/containers +fi + +state=$(lxc-info -P "$CONTAINER_PATH" -n "$CONTAINER_NAME" -s | cut -d':' -f 2 | tr -d '[:space:]') +if [ "$state" != "RUNNING" ] ; then + echo "ERROR: Cannot attach to container as it is not running" + exit 1 +fi + +echo "NOTE: This shell will give you full root access inside the Android" +echo " container. Be careful with what you're doing!" +echo + +exec lxc-attach \ + -q \ + --clear-env \ + -P "$CONTAINER_PATH" \ + -n "$CONTAINER_NAME" \ + -v PATH=/sbin:/system/bin:/system/sbin:/system/xbin \ + -v ANDROID_ASSETS=/assets \ + -v ANDROID_DATA=/data \ + -v ANDROID_ROOT=/system \ + -v ANDROID_STORAGE=/storage \ + -v ASEC_MOUNTPOINT=/mnt/asec \ + -v EXTERNAL_STORAGE=/sdcard -- /system/bin/sh diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index e767e85..2602396 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -37,6 +37,8 @@ apps: daemon: simple collect-bug-info: command: bin/collect-bug-info.sh + shell: + command: bin/anbox-shell.sh android-settings: command: desktop-launch $SNAP/bin/app-android-settings.sh desktop: desktop/android-settings.desktop @@ -159,8 +161,10 @@ parts: collect-bug-info.sh: bin/collect-bug-info.sh app-android-settings.sh: bin/app-android-settings.sh app-appmgr.sh: bin/app-appmgr.sh + anbox-shell.sh: bin/anbox-shell.sh prime: - bin/anbox-bridge.sh + - bin/anbox-shell.sh - bin/anbox-wrapper.sh - bin/container-manager.sh - bin/collect-bug-info.sh